浏览代码

update interlaced detection

Luke Pulverenti 9 年之前
父节点
当前提交
51df0b79f2
共有 1 个文件被更改,包括 18 次插入9 次删除
  1. 18 9
      MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs

+ 18 - 9
MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs

@@ -292,16 +292,25 @@ namespace MediaBrowser.MediaEncoding.Encoder
                 return false;
             }
 
-            // If the video codec is not some form of mpeg, then take a shortcut and limit this to containers that are likely to have interlaced content
-            if ((videoStream.Codec ?? string.Empty).IndexOf("mpeg", StringComparison.OrdinalIgnoreCase) == -1)
+            var formats = (video.Container ?? string.Empty).Split(',').ToList();
+            var enableInterlacedDection = formats.Contains("vob", StringComparer.OrdinalIgnoreCase) &&
+                                          formats.Contains("m2ts", StringComparer.OrdinalIgnoreCase) &&
+                                          formats.Contains("ts", StringComparer.OrdinalIgnoreCase) &&
+                                          formats.Contains("mpegts", StringComparer.OrdinalIgnoreCase) &&
+                                          formats.Contains("wtv", StringComparer.OrdinalIgnoreCase);
+            
+            // If it's mpeg based, assume true
+            if ((videoStream.Codec ?? string.Empty).IndexOf("mpeg", StringComparison.OrdinalIgnoreCase) != -1)
             {
-                var formats = (video.Container ?? string.Empty).Split(',').ToList();
-
-                if (!formats.Contains("vob", StringComparer.OrdinalIgnoreCase) &&
-                    !formats.Contains("m2ts", StringComparer.OrdinalIgnoreCase) &&
-                    !formats.Contains("ts", StringComparer.OrdinalIgnoreCase) &&
-                    !formats.Contains("mpegts", StringComparer.OrdinalIgnoreCase) &&
-                    !formats.Contains("wtv", StringComparer.OrdinalIgnoreCase))
+                if (enableInterlacedDection)
+                {
+                    return true;
+                }
+            }
+            else
+            {
+                // If the video codec is not some form of mpeg, then take a shortcut and limit this to containers that are likely to have interlaced content
+                if (!enableInterlacedDection)
                 {
                     return false;
                 }