diff --git a/ErsatzTV/Controllers/IptvController.cs b/ErsatzTV/Controllers/IptvController.cs index f8f0ae9fb..a2b9c3b47 100644 --- a/ErsatzTV/Controllers/IptvController.cs +++ b/ErsatzTV/Controllers/IptvController.cs @@ -110,6 +110,16 @@ public async Task GetTransportStreamVideo( } } + // cached lineup and playlist urls can still carry the legacy mode + if (mode == "ts-legacy" && maybeChannel.Exists(c => c.StreamingEngine is StreamingEngine.Next)) + { + _logger.LogInformation( + "Channel {ChannelNumber} uses the next streaming engine; using ts instead of mode {Mode}", + channelNumber, + mode); + mode = "ts"; + } + FFmpegProcessRequest request = mode switch { "ts-legacy" => new GetConcatProcessByChannelNumber(Request.Scheme, Request.Host.ToString(), channelNumber), @@ -216,6 +226,17 @@ public async Task GetHttpLiveStreamingVideo( } } + // cached playlist urls can still carry the legacy mode + if (mode is not ("segmenter" or "segmenter-v2" or "segmenter-fmp4") && + maybeChannel.Exists(c => c.StreamingEngine is StreamingEngine.Next)) + { + _logger.LogInformation( + "Channel {ChannelNumber} uses the next streaming engine; using segmenter instead of mode {Mode}", + channelNumber, + mode); + mode = "segmenter"; + } + switch (mode) { case "segmenter":