adjust params when burning in subtitles

This commit is contained in:
Luke Pulverenti 2017-10-01 20:13:12 -04:00
parent 8d4373af5e
commit a452bc23b2
2 changed files with 13 additions and 4 deletions

View File

@ -530,7 +530,8 @@ namespace MediaBrowser.Controller.MediaEncoding
{ {
var seconds = Math.Round(TimeSpan.FromTicks(state.StartTimeTicks ?? 0).TotalSeconds); 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.Empty
: string.Format(",setpts=PTS -{0}/TB", seconds.ToString(_usCulture)); : 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; var seconds = TimeSpan.FromTicks(state.StartTimeTicks ?? 0).TotalSeconds;

View File

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