Let HLS fallback to mpegts in case device reported unsupported container

This commit is contained in:
gnattu 2019-12-31 22:33:14 -05:00
parent e476125cf8
commit 167549f5f1

View File

@ -300,6 +300,9 @@ namespace MediaBrowser.Api.Playback
var transcodingProfile = deviceProfile.TranscodingProfiles[0];
//HLS Segment container can only be mpegts or fmp4 per ffmpeg documentation
var supoortedHLSContainer = new string[] { "mpegts", "fmp4" };
var newRequest = new GetMasterHlsAudioPlaylist
{
AudioBitRate = isStatic ? (int?)null : Convert.ToInt32(Math.Min(request.MaxStreamingBitrate ?? 192000, int.MaxValue)),
@ -312,7 +315,8 @@ namespace MediaBrowser.Api.Playback
PlaySessionId = playbackInfoResult.PlaySessionId,
StartTimeTicks = request.StartTimeTicks,
Static = isStatic,
SegmentContainer = request.TranscodingContainer,
//fallback to mpegts if device reports some wierd value that is not supported by HLS
SegmentContainer = Array.Exists(supoortedHLSContainer, element => element == request.TranscodingContainer) ? request.TranscodingContainer : "mpegts",
AudioSampleRate = request.MaxAudioSampleRate,
MaxAudioBitDepth = request.MaxAudioBitDepth,
BreakOnNonKeyFrames = transcodingProfile.BreakOnNonKeyFrames,