<feed xmlns='http://www.w3.org/2005/Atom'>
<title>jellyfin/MediaBrowser.MediaEncoding/Subtitles/ISubtitleParser.cs, branch v12.0-rc3</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.b0n.dev/jellyfin/atom?h=v12.0-rc3</id>
<link rel='self' href='https://git.b0n.dev/jellyfin/atom?h=v12.0-rc3'/>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/'/>
<updated>2026-07-15T12:55:55Z</updated>
<entry>
<title>Fix race condition in concurrent subtitle conversion</title>
<updated>2026-07-15T12:55:55Z</updated>
<author>
<name>Piotr Niełacny</name>
<email>piotr.nielacny@gmail.com</email>
</author>
<published>2026-07-15T12:55:55Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=6e3c1874936b767754cd9267749f35b27f2ae65f'/>
<id>urn:sha1:6e3c1874936b767754cd9267749f35b27f2ae65f</id>
<content type='text'>
SubtitleEncoder.ConvertSubtitles parsed subtitles with libse's static
Subtitle.Parse, which iterates a statically cached list of shared
SubtitleFormat instances. Format parsers keep mutable per-parse state on
the instance, so concurrent subtitle requests corrupted each other's
output (cues mixed across streams and languages, truncated files) or
failed with NullReferenceException when format detection broke down and
Subtitle.Parse returned null.

Parse through the injected ISubtitleParser instead. SubtitleEditParser
instantiates a fresh format parser per call, so requests no longer share
state. Its Parse method now returns the libse Subtitle directly (the
SubtitleTrackInfo flattening was unused since the SubtitleEdit writer
rework) so the writers keep full fidelity such as ASS styling.
</content>
</entry>
<entry>
<title>Backport pull request #8087 from jellyfin/release-10.8.z</title>
<updated>2022-08-01T18:25:42Z</updated>
<author>
<name>Joshua Boniface</name>
<email>joshua@boniface.me</email>
</author>
<published>2022-08-01T18:25:42Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=38eefbbafa381ea2d87efaa3328c5e273b902732'/>
<id>urn:sha1:38eefbbafa381ea2d87efaa3328c5e273b902732</id>
<content type='text'>
feat: make subtitleeditparser generic

Authored-by: Claus Vium &lt;cvium@users.noreply.github.com&gt;

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

Original-merge: 7323ccfc232d31797af3ceb8bad93cae1ea0898d
</content>
</entry>
<entry>
<title>Enable TreatWarningsAsErrors for MediaBrowser.MediaEncoding</title>
<updated>2020-08-04T14:20:52Z</updated>
<author>
<name>Bond-009</name>
<email>bond.009@outlook.com</email>
</author>
<published>2020-08-04T14:20:52Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=18efa25a6fdcfab2326cb35bb5781138a83e9d56'/>
<id>urn:sha1:18efa25a6fdcfab2326cb35bb5781138a83e9d56</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Find+Sed BOM removal *.cs: MediaBrowser.LocalMetadata-MediaBrowser.Model</title>
<updated>2019-01-13T20:02:23Z</updated>
<author>
<name>Erwin de Haan</name>
<email>EraYaN@users.noreply.github.com</email>
</author>
<published>2019-01-13T20:02:23Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=8f41ba4d3aa0a7001748c0282e39baf50f0af13f'/>
<id>urn:sha1:8f41ba4d3aa0a7001748c0282e39baf50f0af13f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Port MediaEncoding and Api.Playback from 10e57ce8d21b4516733894075001819f3cd6db6b</title>
<updated>2018-12-14T16:32:54Z</updated>
<author>
<name>Mathieu Velten</name>
<email>matmaul@gmail.com</email>
</author>
<published>2018-12-14T09:40:55Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=1d7d52ff9e42c3efb4bb2c65e82a4a82faf9decb'/>
<id>urn:sha1:1d7d52ff9e42c3efb4bb2c65e82a4a82faf9decb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>consolidate emby.server.core into emby.server.implementations</title>
<updated>2017-08-09T19:56:38Z</updated>
<author>
<name>Luke Pulverenti</name>
<email>luke.pulverenti@gmail.com</email>
</author>
<published>2017-08-09T19:56:38Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=40442f887ba717ae47620b152315f21b252fe049'/>
<id>urn:sha1:40442f887ba717ae47620b152315f21b252fe049</id>
<content type='text'>
</content>
</entry>
<entry>
<title>update subtitle methods</title>
<updated>2015-07-20T03:43:13Z</updated>
<author>
<name>Luke Pulverenti</name>
<email>luke.pulverenti@gmail.com</email>
</author>
<published>2015-07-20T03:43:13Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=3178896004540c4a5884b9235a67ffbe3f58af0b'/>
<id>urn:sha1:3178896004540c4a5884b9235a67ffbe3f58af0b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fixes #674 - Support converting subtitles to webvtt</title>
<updated>2014-06-11T14:42:03Z</updated>
<author>
<name>Luke Pulverenti</name>
<email>luke.pulverenti@gmail.com</email>
</author>
<published>2014-06-11T14:42:03Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=77ad0fc3365d9e880a47472f5780796570a06cab'/>
<id>urn:sha1:77ad0fc3365d9e880a47472f5780796570a06cab</id>
<content type='text'>
</content>
</entry>
<entry>
<title>beginning remote subtitle downloading</title>
<updated>2014-05-07T02:28:19Z</updated>
<author>
<name>Luke Pulverenti</name>
<email>luke.pulverenti@gmail.com</email>
</author>
<published>2014-05-07T02:28:19Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=0d025f7fb620bf2a24ca9aa4e5994f132e02e7c0'/>
<id>urn:sha1:0d025f7fb620bf2a24ca9aa4e5994f132e02e7c0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>added subtitle parsing stubs</title>
<updated>2014-05-05T14:45:45Z</updated>
<author>
<name>Luke Pulverenti</name>
<email>luke.pulverenti@gmail.com</email>
</author>
<published>2014-05-05T14:45:45Z</published>
<link rel='alternate' type='text/html' href='https://git.b0n.dev/jellyfin/commit/?id=e1dd361c7bf05af49d9210ab679e85fa00870990'/>
<id>urn:sha1:e1dd361c7bf05af49d9210ab679e85fa00870990</id>
<content type='text'>
</content>
</entry>
</feed>
