From 9a056b3070727f9c17d8330a1308d6356354cde3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Kacprzak?= Date: Fri, 23 Oct 2026 23:05:57 +0200 Subject: [PATCH] Preserve channel resolution through continuity slates up to UHD --- .../Configuration/PluginConfiguration.cs | 1 + .../Configuration/configPage.html | 2 +- Jellyfin.Plugin.Enigma2/ContinuityStreams.cs | 23 ++-- Jellyfin.Plugin.Enigma2/ContinuityTimeline.cs | 2 +- .../Jellyfin.Plugin.Enigma2.csproj | 4 +- README.md | 9 ++ Tests/ContinuityE2E.cs | 6 +- Tests/NativeResolutionPolicyTests.cs | 41 +++++++ Tests/Program.cs | 3 + Tests/ResolutionE2E.cs | 102 ++++++++++++++++++ build.yaml | 2 +- deploy-plugin-only.py | 2 +- experiments/run-continuity-e2e.py | 5 +- experiments/verify-continuity-recording.py | 4 +- 14 files changed, 182 insertions(+), 24 deletions(-) create mode 100644 Tests/NativeResolutionPolicyTests.cs create mode 100644 Tests/ResolutionE2E.cs diff --git a/Jellyfin.Plugin.Enigma2/Configuration/PluginConfiguration.cs b/Jellyfin.Plugin.Enigma2/Configuration/PluginConfiguration.cs index 23dd312..dbe0e52 100644 --- a/Jellyfin.Plugin.Enigma2/Configuration/PluginConfiguration.cs +++ b/Jellyfin.Plugin.Enigma2/Configuration/PluginConfiguration.cs @@ -33,6 +33,7 @@ namespace Jellyfin.Plugin.Enigma2.Configuration public bool EnableAutomaticChannelSync { get; set; } = true; public bool ShowNativeStartupMessages { get; set; } = true; public bool EnableContinuitySlates { get; set; } = false; + public bool PreserveSourceResolution { get; set; } = true; public PluginConfiguration() diff --git a/Jellyfin.Plugin.Enigma2/Configuration/configPage.html b/Jellyfin.Plugin.Enigma2/Configuration/configPage.html index 7637a68..41c6d03 100644 --- a/Jellyfin.Plugin.Enigma2/Configuration/configPage.html +++ b/Jellyfin.Plugin.Enigma2/Configuration/configPage.html @@ -157,7 +157,7 @@ Podtrzymuj stream planszą FFmpeg podczas oczekiwania i przerw -
Ponawia odbiór aż do zatrzymania przez widza. Jeden proces odbioru na kanał; język planszy według interfejsu użytkownika, następnie profilu i ustawień Jellyfina. Normalizuje obraz do H264 Full HD 50 kl./s i dźwięk do AAC stereo; wymaga dodatkowego CPU, nie zachowuje 4K, HDR, dźwięku przestrzennego ani dodatkowych ścieżek. Nie dotyczy nagrań.
+
Ponawia odbiór aż do zatrzymania przez widza. Jeden proces odbioru na kanał; język planszy według interfejsu użytkownika, następnie profilu i ustawień Jellyfina. Zachowuje rozdzielczość obrazu źródła, również 4K, przy kodowaniu H264 50 kl./s i AAC stereo. Wymaga CPU; nie zachowuje HDR, dźwięku przestrzennego ani dodatkowych ścieżek. Nie dotyczy nagrań.