Commit Graph

24 Commits

Author SHA1 Message Date
Tim Eisele ed61acc19a Fix subtitle encoding for local files (#17281)
* Fix subtitle encoding

* Add short-circuit

* Use IsTextFormat

* Update MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs

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

---------

Co-authored-by: Bond-009 <bond.009@outlook.com>
2026-07-21 14:52:59 +02:00
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
Bond_009 941298ee81 Write subtitles using SubtitleEdit
We've been using SubtitleEdit to parse since 2021
https://github.com/jellyfin/jellyfin/pull/4984

I think it's time we start using it to write too
2026-05-30 21:09:10 +02:00
Hilmar Gústafsson 8ba9319f27 fix: retain subtitles spanning HLS segment boundaries (#16594)
fix: retain subtitles spanning HLS segment boundaries
2026-04-15 19:11:29 +02:00
Bond_009 03b6adf068 Fix xUnit1030: Do not call ConfigureAwait in test method 2023-09-18 17:55:52 +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
Bond-009 81c8890b6d Fix all warnings in MediaBrowser.MediaEncoding (#9073) 2023-01-11 17:22:01 -07:00
Hannes Braun 4edeccc5e0 Remove redundant using directives 2022-09-28 16:26:03 +02:00
Cody Robibero 6004060b4e Fix build errors from new warnings 2022-09-09 07:44:14 -06: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
KonH b6bf43af45 Fix warning: Using directive is not required by the code and can be safely removed (#2149) 2021-10-03 10:49:41 +07:00
Bond-009 8858d8e597 Merge branch 'master' into theorydata 2021-09-25 22:24:57 +02:00
Bond_009 dc1b726ef8 Add regression test for #5323 2021-09-22 02:00:17 +02:00
Bond_009 b0194bce6c Add regression test for issue #5168 2021-09-18 15:31:45 +02:00
Bond_009 34b38454e0 Fix SubtitleEncoder and add regression tests 2021-09-18 15:23:55 +02:00
ianjazz246 19b8bcaec4 Use TheoryData instead of MemberData and ClassData 2021-09-11 13:31:24 -07:00
Bond_009 ed0267252f Remove tests that are upstreamed
libse (the SSA parser we use) has these same tests now
2021-03-01 20:00:00 +01:00
Bond_009 9e5c4439b9 Comment out broken tests 2021-02-09 15:12:43 +01: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 45c6d79dc9 Merge pull request #4877 from jellyfin/ass 2021-01-08 21:43:45 +01:00
Bond_009 5ac36a8b58 Add tests for srt parser 2020-12-28 15:43:55 +01:00
Bond_009 07cc28946b Add tests for ass parser 2020-12-28 15:33:36 +01:00