Pārlūkot izejas kodu

Apply double rate option to hardware deinterlacers

Orry Verducci 4 gadi atpakaļ
vecāks
revīzija
ce51775e74

+ 10 - 1
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -2120,7 +2120,11 @@ namespace MediaBrowser.Controller.MediaEncoding
             {
             {
                 if (isVaapiH264Encoder)
                 if (isVaapiH264Encoder)
                 {
                 {
-                    filters.Add(string.Format(CultureInfo.InvariantCulture, "deinterlace_vaapi"));
+                    filters.Add(
+                        string.Format(
+                            CultureInfo.InvariantCulture,
+                            "deinterlace_vaapi=rate={0}",
+                            doubleRateDeinterlace ? "field" : "frame"));
                 }
                 }
             }
             }
 
 
@@ -2378,6 +2382,11 @@ namespace MediaBrowser.Controller.MediaEncoding
                         if (state.DeInterlace("h264", true))
                         if (state.DeInterlace("h264", true))
                         {
                         {
                             inputModifier += " -deint 1";
                             inputModifier += " -deint 1";
+
+                            if (!encodingOptions.DeinterlaceDoubleRate || (videoStream?.RealFrameRate ?? 60) > 30)
+                            {
+                                inputModifier += " -drop_second_field 1";
+                            }
                         }
                         }
                     }
                     }
                 }
                 }