diff options
| author | Andreas B <6439218+YouKnowBlom@users.noreply.github.com> | 2020-03-11 18:16:57 +0100 |
|---|---|---|
| committer | Andreas B <6439218+YouKnowBlom@users.noreply.github.com> | 2020-03-19 23:39:33 +0100 |
| commit | 8a990d1d95aa22840bae5c3494cb5371bcf2b4d8 (patch) | |
| tree | 36782718a616e293a6bd08823eba0b1aec4a9831 | |
| parent | f2858878d166df214aee20f2dc0710b766285c91 (diff) | |
Add FRAME-RATE field to HLS master playlist
| -rw-r--r-- | MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs index e6c921391..d56b5cbff 100644 --- a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs +++ b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs @@ -830,6 +830,32 @@ namespace MediaBrowser.Api.Playback.Hls } } + /// <summary> + /// Appends a FRAME-RATE field containing the framerate of the output stream. + /// </summary> + /// <seealso cref="AppendPlaylist(StringBuilder, StreamState, string, int, string)"/> + /// <param name="builder">StringBuilder to append the field to.</param> + /// <param name="state">StreamState of the current stream.</param> + private void AppendPlaylistFramerateField(StringBuilder builder, StreamState state) + { + double? framerate = null; + if (state.TargetFramerate.HasValue) + { + framerate = Math.Round(state.TargetFramerate.GetValueOrDefault(), 3); + } + else if (state.VideoStream.RealFrameRate.HasValue) + { + framerate = Math.Round(state.VideoStream.RealFrameRate.GetValueOrDefault(), 3); + } + + if (framerate.HasValue) + { + builder.Append(",FRAME-RATE=\"") + .Append(framerate.Value) + .Append('"'); + } + } + private void AppendPlaylist(StringBuilder builder, StreamState state, string url, int bitrate, string subtitleGroup) { builder.Append("#EXT-X-STREAM-INF:BANDWIDTH=") @@ -845,6 +871,8 @@ namespace MediaBrowser.Api.Playback.Hls AppendPlaylistCodecsField(builder, state); + AppendPlaylistFramerateField(builder, state); + if (!string.IsNullOrWhiteSpace(subtitleGroup)) { builder.Append(",SUBTITLES=\"") |
