Preserve native broadcast video and add patient shared stream startup

This commit is contained in:
2026-10-25 16:59:56 +01:00
parent bd7395f045
commit 11a34a5195
27 changed files with 708 additions and 139 deletions
+2 -2
View File
@@ -1246,14 +1246,14 @@ namespace Jellyfin.Plugin.Enigma2
streams = _streamProbe.LastKnown(streamUrl, programme);
_logger.LogWarning("[Enigma2] Broadcast track analysis unavailable; keeping continuity with {MetadataState} metadata", streams == null ? "unknown" : "last-known");
}
if (streams == null) throw new InvalidOperationException("Broadcast metadata unavailable; refusing a guessed status format");
// Rich programs use one explicitly ordered local transport, so native
// Jellyfin maps the chosen language/subtitle instead of auto-selecting audio and adding -sn.
var richProgram = streams != null && (streams.Count(s => s.Type == MediaStreamType.Audio) > 1 || streams.Any(s => s.Type == MediaStreamType.Subtitle));
if (_continuity != null && (useSlates || richProgram))
{
feedback?.Report("waiting_for_stream");
var tracks = streams == null ? BroadcastTracks.Fallback(Plugin.Instance.Configuration.PreserveSourceResolution)
: new BroadcastTracks(streams, useSlates, Plugin.Instance.Configuration.PreserveSourceResolution);
var tracks = new BroadcastTracks(streams);
return await _continuity.Open(streamUrl, feedback?.Language ?? "en", cancellationToken, tracks, useSlates).ConfigureAwait(false);
}