600 Commits

Author SHA1 Message Date
Bond-009
a52a230778
Merge pull request #14467 from jkhsjdhjs/keyframe-only-trickplay-extraction-fallback
Add fallback for keyframe-only trickplay extraction
2025-08-01 10:30:24 +02:00
jkhsjdhjs
663087b155
Fix trickplay extraction ffmpeg error-handling (#14493) 2025-07-22 17:13:38 -06:00
jkhsjdhjs
bf3f37e3d0
Add fallback for keyframe-only trickplay extraction
Keyframe-only trickplay image extraction can fail for some media
files. The current behavior is to skip the media file and try again
on the next run, which will fail again.

This adds a fallback to regular non-keyframe-only extraction for
failed runs, so the extraction can complete.
2025-07-14 00:09:43 +02:00
nyanmisaka
56231222df Enable OpenCL deinterlacer for AMF on Windows when available
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-20 22:07:00 +08:00
Tim Eisele
d976f13970
Recognize file changes and remove data on change (#13839) 2025-05-04 21:21:44 -06:00
Nyanmisaka
4199f7acc2
Fix the transparency issue of ASS subtitle rendering in HWA (#14024) 2025-05-03 08:21:08 -06:00
gnattu
f436743f9f Don't trim image extractor option 2025-04-27 21:37:44 +08:00
gnattu
77bb1a726e Use full range output for image 2025-04-27 21:36:57 +08:00
gnattu
6637102162 Correctly handle retry when I frame only failed 2025-04-27 21:30:02 +08:00
Tim Eisele
f576783ae1
Fix distinction queries (#14007) 2025-04-26 18:49:30 -06:00
gnattu
2e467f29de
Don't pass through timestamp for image extractor (#13999) 2025-04-26 09:36:40 -06:00
Nyanmisaka
e84826297d
Fix thumbnail extraction of mpegts videos in FFmpeg 7.1+ (#13942) 2025-04-19 10:41:30 -06:00
gnattu
49ac705867
Improve dynamic HDR metadata handling (#13277)
* Add support for bitstream filter to remove dynamic hdr metadata

* Add support for ffprobe's only_first_vframe for HDR10+ detection

* Add BitStreamFilterOptionType for metadata removal check

* Map HDR10+ metadata to VideoRangeType.cs

Current implementation uses a hack that abuses the EL flag to avoid database schema changes. Should add proper field once EFCore migration is merged.

* Add more Dolby Vision Range types

Out of spec ones are problematic and should be marked as a dedicated invalid type and handled by the server to not crash the player.

Profile 7 videos should not be treated as normal HDR10 videos at all and should remove the metadata before serving.

* Remove dynamic hdr metadata when necessary

* Allow direct playback of HDR10+ videos on HDR10 clients

* Only use dovi codec tag when dovi metadata is not removed

* Handle DV Profile 7 Videos better

* Fix HDR10+ with new bitmask

* Indicate the presence of HDR10+ in HLS SUPPLEMENTAL-CODECS

* Fix Dovi 8.4 not labeled as HLG in HLS

* Fallback to dovi_rpu bsf for av1 when possible

* Fix dovi_rpu cli for av1

* Use correct EFCore db column for HDR10+

* Undo outdated migration

* Add proper hdr10+ migration

* Remove outdated migration

* Rebase to new db code

* Add migrations for Hdr10PlusPresentFlag

* Directly use bsf enum

* Add xmldocs for SupportsBitStreamFilterWithOption

* Make `VideoRangeType.Unknown` explicitly default on api models.

* Unset default for non-api model class

* Use tuples for bsf dictionary for now
2025-04-02 18:06:02 -06:00
Bond-009
476a0d6932
Merge pull request #13194 from gnattu/av1-videotoolbox
Enable VideoToolbox AV1 decode
2025-03-30 23:12:53 +02:00
gnattu
c69e9d8f2c Gate the macOS only functions 2025-03-28 21:30:39 +08:00
gnattu
384134fd25 Use string literal 2025-03-28 21:22:00 +08:00
gnattu
1ebef57508 Backport pull request #13532 from jellyfin/release-10.10.z
Fix image encoding concurrency limit

Original-merge: 3f539472f3a7c216a6c7d34fb947a144e249f154

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Bond_009 <bond.009@outlook.com>
2025-02-13 09:49:58 -05:00
Josh Soref
044cf9fb85 chore: fix spelling
* a
* acceleration
* addition
* altogether
* api clients
* artist
* associated
* bandwidth
* cannot
* capabilities
* case-insensitive
* case-sensitive
* configuration
* delimiter
* dependent
* diacritics
* directors
* enable
* explicitly
* filters
* finish
* have
* hierarchy
* implicit
* include
* information
* into
* its
* keepalive
* localization
* macos
* manual
* matching
* metadata
* nonexistent
* options
* overridden
* parsed
* parser
* playback
* preferring
* processes
* processing
* provider
* ratings
* retrieval
* running
* segments
* separate
* should
* station
* subdirectories
* superseded
* supported
* system
* than
* the
* throws
* transpose
* valid
* was

link: forum or chat rooms

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2025-01-25 20:05:15 -05:00
Daniyar Alpyspayev
2614fecf8d move to new System.Threading.Lock type for better performance 2024-12-12 18:10:06 +05:00
gnattu
0fc288936d Enable VideoToolbox AV1 decode
This decoder differs from others provided by VideoToolbox in that it lacks any software fallback. To achieve consistent behavior with other VideoToolbox decoders, this PR implemented additional checking on the server to simulate the software fallback provided by VideoToolbox.

The current fallback checking mechanism is a temporary solution. In the long term, it should be replaced with a more capable hardware capability checking system.
2024-12-09 16:17:49 +08:00
gnattu
7f81bbd42f Backport pull request #13030 from jellyfin/release-10.10.z
Always cleanup trickplay temp for ffmpeg failures

Original-merge: 9e61a6fd729b2980832014ae42bd4f7d1f3afb69

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-11-19 15:43:31 -05:00
Nyanmisaka
3ceb8337e7
Fix check for format option in scale_cuda filter (#12874) 2024-10-25 12:52:27 -06:00
gnattu
18a621ec25
Extract DoVi thumbnail at 4000nit (#12771) 2024-10-04 06:51:17 -06:00
Nyanmisaka
b496f979f0
Clean up deprecated -vsync option (#12765) 2024-10-03 08:18:40 -06:00
gnattu
9ef7ccfc12
Add perf tradeoff mode to image extractor (#12744) 2024-09-29 20:21:46 -06:00
Dmitry Lyzo
8a456bf895
Escape quotes in the subtitle path (#12690) 2024-09-23 09:01:45 -06:00
nyanmisaka
7ab7f69916 Enable key-frame only decoding for RKMPP trickplay
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-09-20 03:22:53 +08:00
gnattu
0ff7f28753
Enable BWDIF VideoToolbox deint filter when available (#12634) 2024-09-12 09:52:24 -06:00
Nyanmisaka
36d934f4c0
Enable Rockchip MJPEG encoder for Trickplay (#12610) 2024-09-09 09:24:45 -06:00
Tim Eisele
0d85af019c
Use enums for encoding options (#12561) 2024-09-09 08:43:37 -06:00
gnattu
97ba12b8ef Fix FormattingStreamWriter type
Signed-off-by: gnattu <gnattuoc@me.com>
2024-09-08 11:45:38 +08:00
Bond-009
7631956451 Backport pull request #12550 from jellyfin/release-10.9.z
Create and use FormattingStreamWriter

Original-merge: cd2f2ca17800f71c8d94a6e043b49b7c4200e254

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-09-07 18:09:52 -04:00
gnattu
c7bb2fe137 Backport pull request #12531 from jellyfin/release-10.9.z
Don't apply chapter image settings to music

Original-merge: 2fe13f54eaf87eefefd27f4ccb2ace1371f5e886

Merged-by: nielsvanvelzen <nielsvanvelzen@users.noreply.github.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-09-07 18:08:41 -04:00
nyanmisaka
aecd294fd7 Enable the new BWDIF CUDA deint filter when available
this requires jellyfin-ffmpeg7

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-09-05 22:27:58 +08:00
Nyanmisaka
95f91e0263
Adapting AMD VAAPI-Vulkan pipeline to FFmpeg 7.0 (#12577) 2024-09-04 07:36:49 -06:00
gnattu
ae82a4eee0 Enable software tonemap for dolby vision
This applies software tonemapx filter for dolby vision videos that have no compatability fallback.

Due to the complexity of the reshaping process, this is quite CPU-intensive. For real-time transcoding and tonemapping of 4K 60fps content, a CPU with 16 cores of Zen3-level performance is recommended.

Signed-off-by: gnattu <gnattuoc@me.com>
2024-09-03 14:39:05 +08:00
Bond_009
95200ad225 Improve error message when image extraction times out
The exception will get logged higher up the call stack.
2024-08-28 23:09:17 +02:00
gnattu
6c8ca30f7f
Prevent server from starting if the ffmpeg path is invalid (#12463) 2024-08-28 12:43:37 -06:00
Bond-009
6281cd707d
Merge pull request #11250 from nyanmisaka/fix-hwa-video-rotation
Fix the broken video orientation (+-90/180)
2024-08-27 22:24:34 +02:00
gnattu
058a3dcc6a Remove legacy encoders
Signed-off-by: gnattu <gnattuoc@me.com>
2024-08-11 18:17:09 +08:00
gnattu
1f819d3382 Remove VPx encoders
Signed-off-by: gnattu <gnattuoc@me.com>
2024-08-11 17:38:11 +08:00
justinkb
21f1813d82 Backport pull request #12390 from jellyfin/release-10.9.z
fix SA1201 issue

Original-merge: 3f3145600c4335aee24da8c5ee5f064f85b5821b

Merged-by: nielsvanvelzen <nielsvanvelzen@users.noreply.github.com>

Backported-by: Bond_009 <bond.009@outlook.com>
2024-08-05 11:01:30 -04:00
nyanmisaka
7ee9c9b7a0 Backport pull request #12374 from jellyfin/release-10.9.z
Fix compatibility between TranscodingThrottler and FFmpeg 7.0

Original-merge: ee0094d889fe99cc3e27b556d5470e94b2521a3e

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Bond_009 <bond.009@outlook.com>
2024-08-05 11:01:28 -04:00
Nyanmisaka
00088c2954
Merge branch 'master' into fix-hwa-video-rotation 2024-07-23 15:37:33 +08:00
Bond-009
1dc0a1de6c Backport pull request #12296 from jellyfin/release-10.9.z
Properly escape paths in concat file for BDMV

Original-merge: 4afa6db108e2071a335e7f6f7bb3fa7b50d9b7f7

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-07-21 00:58:06 -04:00
gnattu
5262439300
Enable hardware Trickplay processing pipeline for VideoToolbox (#11510) 2024-07-17 13:50:32 -04:00
gnattu
8851ace543
Enable Dolby AC-4 decoder (#11486) 2024-07-17 12:35:40 -04:00
Cody Robibero
c207404089
Merge pull request #11511 from jellyfin/trickplay-keyframe-only 2024-07-17 12:28:58 -04:00
gnattu
e851bb869b
Simply AMF Windows checking
Co-authored-by: Nyanmisaka <nst799610810@gmail.com>
2024-07-17 22:25:28 +08:00
gnattu
b28d22545a Simplify condition check
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-17 21:25:29 +08:00