From f624cb4cc54826d4fc5c56dc2de9120a0ea632ce Mon Sep 17 00:00:00 2001 From: p27ZuH6CNAdzr <317456640+p27ZuH6CNAdzr@users.noreply.github.com> Date: Tue, 13 Oct 2026 13:36:11 -0400 Subject: Backport pull request #18309 from jellyfin/release-12.z Fix crash when a subtitle charset has no .NET encoding Original-merge: 2f5be2df9be3d9ef44af4bf787a063f4d4166629 Merged-by: Bond-009 Backported-by: Bond_009 --- MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs') diff --git a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs index fba644b74a..27a987fefe 100644 --- a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs +++ b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs @@ -188,6 +188,14 @@ namespace MediaBrowser.MediaEncoding.Subtitles _logger.LogDebug("charset {CharSet} detected for {Path}", detected.EncodingName, fileInfo.Path); + // If encoding is not supported by .NET (e.g., ISO-8859-16), return stream as-is + // The charset name will be passed to ffmpeg via -sub_charenc if needed + if (detected.Encoding is null) + { + _logger.LogWarning("Encoding {Encoding} is not supported by .NET for {Path}, returning stream as-is", detected.EncodingName, fileInfo.Path); + return stream; + } + await using (stream.ConfigureAwait(false)) { using var reader = new StreamReader(stream, detected.Encoding); -- cgit v1.2.3