aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas B <6439218+YouKnowBlom@users.noreply.github.com>2020-03-11 18:16:57 +0100
committerAndreas B <6439218+YouKnowBlom@users.noreply.github.com>2020-03-19 23:39:33 +0100
commit8a990d1d95aa22840bae5c3494cb5371bcf2b4d8 (patch)
tree36782718a616e293a6bd08823eba0b1aec4a9831
parentf2858878d166df214aee20f2dc0710b766285c91 (diff)
Add FRAME-RATE field to HLS master playlist
-rw-r--r--MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs28
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=\"")