<feed xmlns='http://www.w3.org/2005/Atom'>
<title>jellyfin/MediaBrowser.MediaEncoding, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.b0n.dev/jellyfin/atom?h=master</id>
<link rel='self' href='https://git.b0n.dev/jellyfin/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/'/>
<updated>2026-07-17T21:23:57Z</updated>
<entry>
<title>Prevent ffmpeg from hanging extracting subtitles (#17297)</title>
<updated>2026-07-17T21:23:57Z</updated>
<author>
<name>Marc Brooks</name>
<email>IDisposable@gmail.com</email>
</author>
<published>2026-07-17T21:23:57Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=cab108a8395bca7afbc0f0b587b55c13d4bc0d2a'/>
<id>urn:sha1:cab108a8395bca7afbc0f0b587b55c13d4bc0d2a</id>
<content type='text'>
* Prevent ffmpeg from hanging extracting subtitles
Add `RunSubtitleExtractionProcess` to unify the external
_ffmpeg_ process handling and error management.
Add a `-nostdin` flag that prevents _ffmpeg_ from reading from
_stdin_ and blocking on an inherited stdin handle (e.g. when
Jellyfin runs as a service under NSSM), which otherwise hangs
subtitle extraction forever when _ffmpeg_ blocks on any
keyboard-interaction read until the timeout (30 minutes).
Close the redirected _stdin_ to ensure immediage EOF.
Drain the _stderr_ to a string and log it, to ensure we don't block
the _ffmpeg_ process on errors that exceed the pipe length.
Pass `-y` to _ffmpeg_ to ensure it overwrites any existing output file
without prompting for confirmation.

* Address review comments
Make sure we always drain stderr.
Make sure the timeout also honors the cancellationToken.
Make sure when we get cancelled we don't log it as a ffmpeg error.</content>
</entry>
<entry>
<title>Merge pull request #17288 from nyanmisaka/ffmpeg-log-utf8</title>
<updated>2026-07-17T20:28:49Z</updated>
<author>
<name>Bond-009</name>
<email>bond.009@outlook.com</email>
</author>
<published>2026-07-17T20:28:49Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=b809d964b36e05025f5986d7278d610fde36972f'/>
<id>urn:sha1:b809d964b36e05025f5986d7278d610fde36972f</id>
<content type='text'>
Fix potential garbled text in FFmpeg logs on Windows</content>
</entry>
<entry>
<title>Fix incorrect protocol used for subtitle charset detection</title>
<updated>2026-07-11T21:33:06Z</updated>
<author>
<name>theguymadmax</name>
<email>theguymadmax@proton.me</email>
</author>
<published>2026-07-11T21:33:06Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=e2d9d592bcf8ee0d6391d093f8e5d428145e9b6b'/>
<id>urn:sha1:e2d9d592bcf8ee0d6391d093f8e5d428145e9b6b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix potential garbled text in FFmpeg logs on Windows</title>
<updated>2026-07-10T06:46:27Z</updated>
<author>
<name>nyanmisaka</name>
<email>nst799610810@gmail.com</email>
</author>
<published>2026-07-10T06:46:27Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=631a314d24bd2c7e1b3e0b81aa65437586794ccd'/>
<id>urn:sha1:631a314d24bd2c7e1b3e0b81aa65437586794ccd</id>
<content type='text'>
Explicitly set StandardErrorEncoding and StandardOutputEncoding to
Encoding.UTF8 when invoking the FFmpeg subprocess.

This prevents log encoding issues and character corruption on Windows
environments that default to non-UTF8 ANSI code pages.

This fixes garbled metadata and font names in the FFmpeg logs.

Signed-off-by: nyanmisaka &lt;nst799610810@gmail.com&gt;
</content>
</entry>
<entry>
<title>Use InvariantCulture when parsing machine-generated dates</title>
<updated>2026-07-04T21:55:31Z</updated>
<author>
<name>Nils Lehnen</name>
<email>admin@nlehnen.de</email>
</author>
<published>2026-07-04T21:55:31Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=f8ffccae7fa65a27324667ccd156ca71fbfc89cd'/>
<id>urn:sha1:f8ffccae7fa65a27324667ccd156ca71fbfc89cd</id>
<content type='text'>
DateTime.TryParse without an IFormatProvider falls back to the current
thread culture, so the same string can parse differently (or fail)
depending on the server's locale. None of these call sites deal with
user-entered text - they parse dates that come from filenames, an
HTTP header, ffprobe metadata and values the app itself wrote to the
auth database - so InvariantCulture is the correct provider everywhere
here.

Fixes the S6580 / CA1305 warnings on these call sites.

Co-Authored-By: Claude Opus 4.8 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Rework bitrate reporting</title>
<updated>2026-06-23T15:47:17Z</updated>
<author>
<name>Shadowghost</name>
<email>Ghost_of_Stone@web.de</email>
</author>
<published>2026-06-23T15:47:17Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=d090c599391928bfabf0e91fb907a3c445b0ff38'/>
<id>urn:sha1:d090c599391928bfabf0e91fb907a3c445b0ff38</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Strip null-terminator</title>
<updated>2026-06-16T15:54:23Z</updated>
<author>
<name>Bond_009</name>
<email>bond.009@outlook.com</email>
</author>
<published>2026-06-16T15:54:23Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=e86b502cbc9d48c876cc125f3c316171c1113926'/>
<id>urn:sha1:e86b502cbc9d48c876cc125f3c316171c1113926</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add regression test</title>
<updated>2026-06-15T19:20:06Z</updated>
<author>
<name>Bond_009</name>
<email>bond.009@outlook.com</email>
</author>
<published>2026-06-15T19:20:06Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=0022508889adb8b60bde8bc5e69640d3ff8dd346'/>
<id>urn:sha1:0022508889adb8b60bde8bc5e69640d3ff8dd346</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix type of length arguments</title>
<updated>2026-06-15T19:01:28Z</updated>
<author>
<name>Bond_009</name>
<email>bond.009@outlook.com</email>
</author>
<published>2026-06-15T16:12:22Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=a9a02719abd0faefbd90550f6ba576d2f63db436'/>
<id>urn:sha1:a9a02719abd0faefbd90550f6ba576d2f63db436</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Follow native interoperability best practices</title>
<updated>2026-06-15T19:01:28Z</updated>
<author>
<name>Bond_009</name>
<email>bond.009@outlook.com</email>
</author>
<published>2026-06-14T12:35:26Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=d50205cc9f2a983e029e0b5c626f7510c1b4e7ec'/>
<id>urn:sha1:d50205cc9f2a983e029e0b5c626f7510c1b4e7ec</id>
<content type='text'>
https://learn.microsoft.com/en-us/dotnet/standard/native-interop/best-practices
</content>
</entry>
</feed>
