Commit Graph

167 Commits

Author SHA1 Message Date
Mark Cilia Vincenti f26fc7dfb2 Merge changes 2024-02-03 08:45:14 +01:00
Attila Szakacs ce81e2aeab Add alltilla to CONTRIBUTORS.md
Signed-off-by: Attila Szakacs <szakacs.attila96@gmail.com>
2024-01-31 19:18:38 +01:00
Attila Szakacs 8fea819b51 Extract all subtitle streams simultaneously
Extracting a subtitle stream is a disk I/O bottlenecked operation as
ffmpeg has to read through the whole file, but usually there is nothing
CPU intensive to do.

If a file has multiple subtitle streams, and we want to extract more
of them, extracting them one-by-one results in reading the whole file
again and again.

However ffmpeg can extract multiple streams at once.

We can optimize this by extracting the subtitle streams all at once
when only one of them gets queried, then we will have all of them
cached for later use.

It is useful for people switching subtitles during playback.

It is even more useful for people who extract all the subtitle streams
in advance, for example with the "Subtitle Extract" plugin.
In this case we reduce the extraction time significantly based on the
number of subtitle streams in the files, which can be 5-10 in many
cases.

Signed-off-by: Attila Szakacs <szakacs.attila96@gmail.com>
2024-01-18 17:29:45 +01:00
Mark Cilia Vincenti d1677dc680 AsyncKeyedLock migration 2024-01-03 16:47:25 +01:00
Bond_009 635d67d458 Revert "Use System.Net.IPNetwork"
This reverts commit 117d05d288da1d412159a29c0cb8d5c8259e48ae.
2023-11-14 21:16:33 +01:00
Bond_009 a9ef103c95 Add IDisposableAnalyzers to more projects 2023-11-05 02:01:14 +01:00
Bond_009 4757ce105b Use Process.WaitForExitAsync added in .NET 5 2023-10-10 00:18:50 +02:00
sleepycatcoding 62be2a2ea9 Fix subtitle encoder if webvtt is requested 2023-08-02 15:15:41 +03:00
Stepan Goremykin 910617bbc3 Remove redundant 'else' keywords 2023-04-06 19:38:34 +02:00
Stepan Goremykin 1c0bb828d2 Fix argument is not used in message template warning 2023-04-06 19:17:28 +02:00
Bond-009 81c8890b6d
Fix all warnings in MediaBrowser.MediaEncoding (#9073) 2023-01-11 17:22:01 -07:00
Bond_009 b366dc2e6e Use ArgumentException.ThrowIfNullOrEmpty 2022-12-07 16:43:59 +01:00
Bond_009 71982c7297 Fix build errors 2022-12-07 16:42:28 +01:00
Bond_009 52194f56b5 Replace != null with is not null 2022-12-05 15:01:13 +01:00
Bond_009 a9a5fcde81 Use ArgumentNullException.ThrowIfNull helper method
Did a simple search/replace on the whole repo (except the RSSDP project)
This reduces LOC and should improve performance (methods containing a throw statement don't get inlined)

```
if \((\w+) == null\)
\s+\{
\s+throw new ArgumentNullException\((.*)\);
\s+\}
```

```
ArgumentNullException.ThrowIfNull($1);
```
2022-10-06 20:21:23 +02:00
Cody Robibero 6004060b4e Fix build errors from new warnings 2022-09-09 07:44:14 -06:00
Cody Robibero fdd728e9f8
Merge pull request #8259 from RealGreenDragon/subtitle-extraction-timeout 2022-08-16 21:23:39 -06:00
MagicGreenDragon 7391b001ef increased subtitle extraction timeout to 30 min 2022-08-14 08:53:00 +02:00
Shadowghost 3e5cf9395f Backport pull request #8182 from jellyfin/release-10.8.z
Extract external subs from container before determining characterset

Original-merge: 1faee43b11

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

Backported-by: Joshua Boniface <joshua@boniface.me>
2022-08-13 21:46:33 -04: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
Joshua M. Boniface 3061446c87 Merge pull request #7984 from crobibero/dotnet-6.0.6
Upgrade to dotnet 6.0.6, update remaining dependencies

(cherry picked from commit 56e7b323de)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
2022-06-29 01:26:36 -04:00
Joshua M. Boniface e61c80fed7 Merge pull request #7960 from Shadowghost/subrip-encoder-fix
(cherry picked from commit ae79bbc34c)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
2022-06-29 01:26:15 -04:00
Cody Robibero eb55f47f2e Merge pull request #7810 from Bond-009/unaccpattern
(cherry picked from commit 5e343d30e1)
Signed-off-by: crobibero <cody@robibe.ro>
2022-06-06 09:16:11 -04:00
Cody Robibero efcdab116f Merge pull request #7529 from Shadowghost/strm-ffprobe-external-fix
(cherry picked from commit 60affd0965)
Signed-off-by: crobibero <cody@robibe.ro>
2022-05-20 18:30:56 -04:00
Victor Gambier dbf9e49258
Increase timeout for subtitle extraction to 30min (#7153) 2022-02-14 16:33:11 +01:00
Cody Robibero b6489e73ab
Merge pull request #7241 from Bond-009/async5 2022-02-06 15:25:48 -07:00
SenorSmartyPants 509d66dcb5
Fix #7147: Don't return subtitles in mismatched format (#7149) 2022-02-02 23:24:10 +01:00
Bond_009 e7be01d7a5 Flush to disk async where possible 2022-01-22 23:36:42 +01:00
Cody Robibero 7bfc6b5679 Remove more warnings 2021-12-27 07:38:06 -07:00
Bond_009 1d19a5be61 Fix some warnings
down to 580
2021-11-09 22:29:33 +01:00
Dmitry Lyzo c26e6d89b4 Move FfmpegException to MediaBrowser.Common 2021-10-10 19:48:11 +03:00
Bond_009 9af16fcb6c Remove workaround for dotnet/runtime#42790 2021-10-03 19:52:38 +02:00
Bond_009 f31224fa8f Remove sync FileStream hack 2021-09-25 19:44:40 +02:00
Bond_009 34b38454e0 Fix SubtitleEncoder and add regression tests 2021-09-18 15:23:55 +02:00
Bond_009 e3dac4fda2 Use async FileStreams where it makes sense 2021-09-02 14:02:04 +02:00
Bond_009 26d7fc8280 Enable nullable reference types for MediaBrowser.MediaEncoding.Subtitles 2021-05-20 22:10:19 +02:00
Bond_009 9ed7f429c0 FxCop -> Net Analyzers (part 1) 2021-03-09 03:04:47 +01:00
David 60ffa6f514 Use FileShare.None when creating files 2021-03-07 14:43:28 +01:00
Claus Vium 64730b5661
Merge pull request #5278 from BaronGreenback/STRMFix
Fix for #5168
2021-02-27 20:07:45 +01:00
BaronGreenback 473a995650
Update SubtitleEncoder.cs 2021-02-21 15:53:20 +00: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
Joshua M. Boniface a6199f821b
Merge pull request #4169 from stanionascu/bdiso-playback
Playback (direct-stream/transcode) of BDISO/BDAV containers
2020-12-01 22:36:04 -05:00
Bond_009 4b1c9dc9ea Pass cancellation where possible 2020-11-17 19:43:00 +01:00
crobibero 01355e0498 Fix nullability errors in Jellyfin.Api (part 1) 2020-11-13 09:04:31 -07:00
Stanislav Ionascu cd4641dca0 Remove PlayableStreamFileNames as unused
Since ffmpeg can play and transcode ISO files and BDMV folders directly,
there's no use of that property.
2020-10-01 22:20:34 +02:00
Stanislav Ionascu 3ad6232973 Add probe / direct-stream / transcoding support for BluRays
This commit (and ffmpeg built with libbluray support), adds support
for playback of bluray images (bd-iso) and bluray folders.
2020-10-01 21:59:57 +02:00
crobibero 30ba35a33b Use HttpClientFactory in SubtitleEncoder 2020-08-31 11:07:40 -06:00
Bond_009 ab2147751f Make MediaBrowser.MediaEncoding warnings free 2020-08-20 12:16:24 +02:00
Bond_009 2b400c99ef Fix warnings 2020-08-19 17:50:50 +02:00