12 Commits

Author SHA1 Message Date
Attila Szakacs
c693da94ce Fix parallel use of not thread-safe SubtitleFormat instance
`SubtitleFormat`'s `LoadSubtitle()` function is
not thread-safe.

A `SubtitleEditParser` instance's `Parse()`
function can be called from multiple threads at
the same time.

`SubtitleFormat`s are cached in the constructor
of each `SubtitleEditParser`, and the same
instances are used for each possibly parallel
`Parse()` function call, which causes subtitle
parse problems.

This patch modifies the code, so we only cache
the extension -> `SubtitleFormat` type/class
mapping and create a new `SubtitleFormat`
instance in each `Parse()` call, so no
`SubtitleFormat` instance is accessed from
multiple threads.

Fixes #12113

Kudos for everyone investigating the issue there,
most notably @RenV123 for PoC-ing the solution.

Signed-off-by: Attila Szakacs <szakacs.attila96@gmail.com>
2025-01-18 21:16:35 +01:00
Łukasz
1451cbc39e
Add subtitle parser errors to log if available (#12479) 2024-09-06 07:47:06 -06:00
Bond_009
635d67d458 Revert "Use System.Net.IPNetwork"
This reverts commit 117d05d288da1d412159a29c0cb8d5c8259e48ae.
2023-11-14 21:16:33 +01: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: 7323ccfc232d31797af3ceb8bad93cae1ea0898d
2022-08-01 14:25:42 -04:00
Bond_009
4643fd5dcb Address comments 2021-09-25 18:15:46 +02:00
Bond_009
13fbfe6091 Target net6.0 2021-09-24 20:15:46 +02:00
Cody Robibero
ea3e66e918 Fix namespace 2021-09-13 06:32:26 -06:00
Bond_009
6f8ccab788 Move non-jellyfin extensions to separate project 2021-06-19 18:04:46 +02:00
Bond_009
26d7fc8280 Enable nullable reference types for MediaBrowser.MediaEncoding.Subtitles 2021-05-20 22:10:19 +02: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