Explorar o código

adjust params when burning in subtitles

Luke Pulverenti %!s(int64=7) %!d(string=hai) anos
pai
achega
a452bc23b2

+ 4 - 2
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -530,7 +530,8 @@ namespace MediaBrowser.Controller.MediaEncoding
         {
             var seconds = Math.Round(TimeSpan.FromTicks(state.StartTimeTicks ?? 0).TotalSeconds);
 
-            var setPtsParam = state.CopyTimestamps
+            // hls always copies timestamps
+            var setPtsParam = state.CopyTimestamps || state.TranscodingType != TranscodingJobType.Progressive
                 ? string.Empty
                 : string.Format(",setpts=PTS -{0}/TB", seconds.ToString(_usCulture));
 
@@ -1083,7 +1084,8 @@ namespace MediaBrowser.Controller.MediaEncoding
                 }
             }
 
-            if (state.SubtitleStream != null && state.SubtitleStream.IsTextSubtitleStream && state.SubtitleDeliveryMethod == SubtitleDeliveryMethod.Encode && !state.CopyTimestamps)
+            var isCopyingTimestamps = state.CopyTimestamps || state.TranscodingType != TranscodingJobType.Progressive;
+            if (state.SubtitleStream != null && state.SubtitleStream.IsTextSubtitleStream && state.SubtitleDeliveryMethod == SubtitleDeliveryMethod.Encode && !isCopyingTimestamps)
             {
                 var seconds = TimeSpan.FromTicks(state.StartTimeTicks ?? 0).TotalSeconds;
 

+ 9 - 2
MediaBrowser.Controller/MediaEncoding/EncodingJobInfo.cs

@@ -163,6 +163,14 @@ namespace MediaBrowser.Controller.MediaEncoding
 
         public bool DeInterlace(string videoCodec, bool forceDeinterlaceIfSourceIsInterlaced)
         {
+            var videoStream = VideoStream;
+            var isInputInterlaced = videoStream != null && videoStream.IsInterlaced;
+
+            if (!isInputInterlaced)
+            {
+                return false;
+            }
+
             // Support general param
             if (BaseRequest.DeInterlace)
             {
@@ -179,8 +187,7 @@ namespace MediaBrowser.Controller.MediaEncoding
 
             if (forceDeinterlaceIfSourceIsInterlaced)
             {
-                var videoStream = VideoStream;
-                if (videoStream != null && videoStream.IsInterlaced)
+                if (isInputInterlaced)
                 {
                     return true;
                 }