<feed xmlns='http://www.w3.org/2005/Atom'>
<title>jellyfin/MediaBrowser.MediaEncoding, branch v12.0-rc5</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.b0n.dev/jellyfin/atom?h=v12.0-rc5</id>
<link rel='self' href='https://git.b0n.dev/jellyfin/atom?h=v12.0-rc5'/>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/'/>
<updated>2026-08-04T16:33:42Z</updated>
<entry>
<title>Fix concurrent ffmpeg segment racing</title>
<updated>2026-08-04T16:33:42Z</updated>
<author>
<name>gnattu</name>
<email>gnattuoc@me.com</email>
</author>
<published>2026-08-04T16:33:42Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=e2586eed9b04d501cd5805711cb6ad5553c1816b'/>
<id>urn:sha1:e2586eed9b04d501cd5805711cb6ad5553c1816b</id>
<content type='text'>
This is a nasty one. The failure mode is:

1. Request A started FFmpeg and waited for a segment.
2. Request B requested an earlier or far away segment.
3. Jellyfin thought FFmpeg should to restart at a different position.
4. Request B killed the existing transcoding job.
5. Killing that job cancelled the same token request A was using.
6. The cancellation produced http 500 to request A.

To fix this:

we lock transcoding job state changes and segment handling per playlist, and use a thread safe counter to track how many http responses are still using each job’s segments. A job is only stopped or replaced once that counter reaches zero.
</content>
</entry>
<entry>
<title>Merge pull request #17399 from Shadowghost/fix-extra-year</title>
<updated>2026-07-25T16:52:51Z</updated>
<author>
<name>Cody Robibero</name>
<email>cody@robibe.ro</email>
</author>
<published>2026-07-25T16:52:51Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=7f26bd109171041f9e27a51f7cd3969fb2e8546d'/>
<id>urn:sha1:7f26bd109171041f9e27a51f7cd3969fb2e8546d</id>
<content type='text'>
Fix incorrect year on local trailers</content>
</entry>
<entry>
<title>Merge pull request #17419 from rwebster85/mp4-audio-subtitle-names</title>
<updated>2026-07-25T01:30:54Z</updated>
<author>
<name>Cody Robibero</name>
<email>cody@robibe.ro</email>
</author>
<published>2026-07-25T01:30:54Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=6ac64c531939e70d90903af60c59dbee4d2463e8'/>
<id>urn:sha1:6ac64c531939e70d90903af60c59dbee4d2463e8</id>
<content type='text'>
Check the "name" tag for audio/subtitle probe to fix MP4 not showing correctly - Fixes issue #17418</content>
</entry>
<entry>
<title>Drain stderr and stdout concurrently for encoder validation</title>
<updated>2026-07-24T12:01:01Z</updated>
<author>
<name>gnattu</name>
<email>gnattuoc@me.com</email>
</author>
<published>2026-07-24T11:58:31Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=d74babd8f37bafbeef32a99863cb19941910d7b4'/>
<id>urn:sha1:d74babd8f37bafbeef32a99863cb19941910d7b4</id>
<content type='text'>
Some ffmpeg build might output extremely long traces for its banner that consume all pipe capacity and hangs the process. We have to drain both streams regardless on which one we actually read.
</content>
</entry>
<entry>
<title>Update comment</title>
<updated>2026-07-23T10:57:34Z</updated>
<author>
<name>Richard Webster</name>
<email>16655270+rwebster85@users.noreply.github.com</email>
</author>
<published>2026-07-23T10:57:34Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=ca0cf763ffd4bbedd330247bdb3f05bea3d757ca'/>
<id>urn:sha1:ca0cf763ffd4bbedd330247bdb3f05bea3d757ca</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Clarify comment about MP4 track title workaround</title>
<updated>2026-07-23T09:13:04Z</updated>
<author>
<name>Richard Webster</name>
<email>16655270+rwebster85@users.noreply.github.com</email>
</author>
<published>2026-07-23T09:13:04Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=3d4c52092e9d78efab2f55ffe4da4d081a86c6aa'/>
<id>urn:sha1:3d4c52092e9d78efab2f55ffe4da4d081a86c6aa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Check the "name" tag, not just "title"</title>
<updated>2026-07-22T17:00:18Z</updated>
<author>
<name>Richard Webster</name>
<email>16655270+rwebster85@users.noreply.github.com</email>
</author>
<published>2026-07-22T17:00:18Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=474ae50c367959baa3e15f18b894fd8a2872c634'/>
<id>urn:sha1:474ae50c367959baa3e15f18b894fd8a2872c634</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Prefer null checks over HasValue everywhere</title>
<updated>2026-07-22T06:09:33Z</updated>
<author>
<name>Shadowghost</name>
<email>Ghost_of_Stone@web.de</email>
</author>
<published>2026-07-22T06:09:33Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=6382563440b69d816639abc2b4d03fca1d35eca2'/>
<id>urn:sha1:6382563440b69d816639abc2b4d03fca1d35eca2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge pull request #17160 from 854562/truncate-language-strings</title>
<updated>2026-07-21T15:22:32Z</updated>
<author>
<name>Cody Robibero</name>
<email>cody@robibe.ro</email>
</author>
<published>2026-07-21T15:22:32Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=65836cc844e6ef3d4b25b875668c4d32105a4dae'/>
<id>urn:sha1:65836cc844e6ef3d4b25b875668c4d32105a4dae</id>
<content type='text'>
Truncate ISO-639-2 language display names at first delimiter</content>
</entry>
<entry>
<title>Fix subtitle encoding for local files (#17281)</title>
<updated>2026-07-21T12:52:59Z</updated>
<author>
<name>Tim Eisele</name>
<email>Tim_Eisele@web.de</email>
</author>
<published>2026-07-21T12:52:59Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=ed61acc19a958ceaf8de6f6f0f481b2b5370463a'/>
<id>urn:sha1:ed61acc19a958ceaf8de6f6f0f481b2b5370463a</id>
<content type='text'>
* Fix subtitle encoding

* Add short-circuit

* Use IsTextFormat

* Update MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs

Co-authored-by: Bond-009 &lt;bond.009@outlook.com&gt;

---------

Co-authored-by: Bond-009 &lt;bond.009@outlook.com&gt;</content>
</entry>
</feed>
