diff options
Diffstat (limited to 'MediaBrowser.Api/Playback/BaseStreamingService.cs')
| -rw-r--r-- | MediaBrowser.Api/Playback/BaseStreamingService.cs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index 5b3221078..b97afc217 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -265,7 +265,7 @@ namespace MediaBrowser.Api.Playback if (cpuCount >= 4) { - return EncodingQuality.HighQuality; + //return EncodingQuality.HighQuality; } return EncodingQuality.HighSpeed; @@ -491,6 +491,16 @@ namespace MediaBrowser.Api.Playback return string.Format("{4} -vf \"{0}scale=trunc({1}/2)*2:trunc({2}/2)*2{3}\"", yadifParam, widthParam, heightParam, assSubtitleParam, copyTsParam); } + + // If Max dimensions were supplied + //this makes my brain hurt. For width selects lowest even number between input width and width req size and selects lowest even number from in width*display aspect and requested size + if (request.MaxWidth.HasValue && request.MaxHeight.HasValue) + { + var MaxwidthParam = request.MaxWidth.Value.ToString(UsCulture); + var MaxheightParam = request.MaxHeight.Value.ToString(UsCulture); + + return string.Format("{4} -vf \"{0}scale=trunc(min(iw\\,{1})/2)*2:trunc(min((iw/dar)\\,{2})/2)*2{3}\"", yadifParam, MaxwidthParam, MaxheightParam, assSubtitleParam, copyTsParam); + } var isH264Output = outputVideoCodec.Equals("libx264", StringComparison.OrdinalIgnoreCase); @@ -608,7 +618,7 @@ namespace MediaBrowser.Api.Playback // Don't re-encode ass/ssa to ass because ffmpeg ass encoder fails if there's more than one ass rectangle. Affect Anime mostly. // See https://lists.ffmpeg.org/pipermail/ffmpeg-cvslog/2013-April/063616.html - bool isAssSubtitle = string.Equals(state.SubtitleStream.Codec, "ass", StringComparison.OrdinalIgnoreCase) || string.Equals(state.SubtitleStream.Codec, "ssa", StringComparison.OrdinalIgnoreCase); + var isAssSubtitle = string.Equals(state.SubtitleStream.Codec, "ass", StringComparison.OrdinalIgnoreCase) || string.Equals(state.SubtitleStream.Codec, "ssa", StringComparison.OrdinalIgnoreCase); var task = MediaEncoder.ExtractTextSubtitle(inputPath, type, state.SubtitleStream.Index, isAssSubtitle, path, CancellationToken.None); @@ -1408,6 +1418,9 @@ namespace MediaBrowser.Api.Playback state.HasMediaStreams = mediaStreams.Count > 0; + state.SegmentLength = state.ReadInputAtNativeFramerate ? 3 : 10; + state.HlsListSize = state.ReadInputAtNativeFramerate ? 20 : 1440; + return state; } |
