Commit Graph

8 Commits

Author SHA1 Message Date
Piotr Niełacny 6e3c187493 Fix race condition in concurrent subtitle conversion
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.
2026-07-15 14:55:55 +02:00
Lehonti Ramos bc959270b7 Removed nesting levels through block-scoped using statement (#10025)
Co-authored-by: John Doe <john@doe>
Co-authored-by: Lehonti Ramos <lehonti@ramos>
2023-09-11 12:12:40 +02:00
Hannes Braun 4edeccc5e0 Remove redundant using directives 2022-09-28 16:26:03 +02:00
Joshua Boniface 38eefbbafa Backport pull request #8087 from jellyfin/release-10.8.z
feat: make subtitleeditparser generic

Authored-by: Claus Vium <cvium@users.noreply.github.com>

Merged-by: Bond-009 <bond.009@outlook.com>

Original-merge: 7323ccfc23
2022-08-01 14:25:42 -04:00
Bond_009 f81bcf7f35 Fix tests on windows 2021-02-09 15:12:43 +01:00
Bond_009 be965e35b6 Log subtitle errors 2021-02-09 15:12:43 +01:00
Bond_009 ed8fce2dce Use SubtitleEdit to parse subtitles 2021-02-09 15:12:41 +01:00
Bond_009 07cc28946b Add tests for ass parser 2020-12-28 15:33:36 +01:00