122 Commits

Author SHA1 Message Date
Tim Eisele
f576783ae1
Fix distinction queries (#14007) 2025-04-26 18:49: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
gnattu
c69e9d8f2c Gate the macOS only functions 2025-03-28 21:30:39 +08: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
Nyanmisaka
3ceb8337e7
Fix check for format option in scale_cuda filter (#12874) 2024-10-25 12:52:27 -06: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
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
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
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
gnattu
1f32f95b9c Add tonemapx to filter list
Signed-off-by: gnattu <gnattuoc@me.com>
2024-07-12 23:15:49 +08:00
gnattu
4044431610
Fix broken hardware encoder and filter for trickplay (#11506) 2024-05-07 07:23:28 -06:00
gnattu
6b6aab04ce
Fix apple audio codecs (#11315) 2024-04-08 07:42:47 -06:00
nyanmisaka
deb36eeeda Add HWA video transpose support (+-90/180)
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-30 06:09:58 +08:00
gnattu
b1870792b1
fix: use Metal tonemap instead of OpenCL (#11198) 2024-03-24 08:20:05 -06:00
nyanmisaka
ae7c0c83e9 Bump the required minimum ffmpeg version to 4.4
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-03-17 21:30:42 +08:00
gnattu
1cb7264f0d feat: fully support videotoolbox hardware filters
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-28 17:56:59 +08:00
gnattu
44cb9f5fdd feat: add hw scale filter for videotoolbox
Signed-off-by: gnattu <gnattuoc@me.com>
2024-02-15 21:52:41 +08:00
nyanmisaka
52da00c3c7 Register RKMPP HW codecs and filters
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-02-01 18:59:27 +08:00
Bond_009
635d67d458 Revert "Use System.Net.IPNetwork"
This reverts commit 117d05d288da1d412159a29c0cb8d5c8259e48ae.
2023-11-14 21:16:33 +01:00
Stepan Goremykin
3259d484ff Use generated regex 2023-10-08 01:16:00 +02:00
Claus Vium
956e3dab43
fix: accessing Standard* of a Process requires manually disposing them afterwards (#10125) 2023-08-20 20:06:57 +02:00
Bond-009
b95fa294c9
Merge pull request #9799 from Bond-009/genregex 2023-07-06 19:56:00 +02:00
Bond_009
b5f0760db8 Use RegexGenerator where possible 2023-06-28 17:07:57 +02:00
nyanmisaka
be01aeecd9 Add AV1 hardware and software encoding
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2023-06-20 03:50:02 +08:00
Stepan Goremykin
910617bbc3 Remove redundant 'else' keywords 2023-04-06 19:38:34 +02:00
Stepan Goremykin
779a22a76a Remove redundant Cast 2023-04-06 19:17:27 +02:00
Shadowghost
f3840e0fdb Fix encoder checks for DTS and TrueHD 2023-02-26 22:38:00 +01:00
Bond_009
48263078b4 Reduce string allocations by regex 2023-02-17 15:00:06 +01:00
gnattu
ef4ae9a2dd
Implement hardware filters for videotoolbox, use Apple AAC encoder when available (#7807) 2023-02-08 23:42:17 +01:00
Bond_009
52194f56b5 Replace != null with is not null 2022-12-05 15:01:13 +01:00
Bond_009
c7d50d640e Replace == null with is null 2022-12-05 15:00:20 +01:00
nyanmisaka
560d0838c7 Add Vulkan filtering support for AMD VAAPI (Vega/gfx9+)
This requires:
- VK_EXT_image_drm_format_modifier extension
- Linux kernel version >= 5.15
- jellyfin-ffmpeg5 >= 5.0.1-2

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2022-10-16 23:08:59 +08:00
nyanmisaka
0309c5622e Backport pull request #8213 from jellyfin/release-10.8.z
Fix high single thread usage in throttler

Original-merge: ba026716c1609941ec50a26e50ef5e68cc84d0c0

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

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2022-09-23 23:09:35 -04:00
Cody Robibero
a65397ae14 Merge pull request #7950 from nyanmisaka/brighter-vpp-tonemap
(cherry picked from commit b36543275f8e1c380f5c247a04a48d5d96eb5836)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
2022-06-29 01:26:15 -04:00
nyanmisaka
bfc27e494b Remove the deprecated OMX and MMAL HWA 2022-03-05 21:47:59 +08:00
nyanmisaka
b2d85a02c2 Apply suggestions from code review
Co-authored-by: Cody Robibero <cody@robibe.ro>
Co-authored-by: Claus Vium <cvium@users.noreply.github.com>
Co-authored-by: Bond_009 <bond.009@outlook.com>
2021-12-24 17:03:57 +08:00
nyanmisaka
4b9c84c52e EncodingHelper hwaccel pipelines refactor
separate the HW pipeline according to HWA method for maintainability.
2021-12-24 17:03:57 +08:00
Claus Vium
ae031fdd28
Merge branch 'master' into tonemap-overlay 2021-08-30 20:02:31 +02:00
Bond_009
963ab2dab6 Simplify the way we choose our ffmpeg
* no longer search $PATH
* no longer require a full path
* don't fall back
2021-08-30 15:40:52 +02:00
nyanmisaka
3beda02d92 add support for cuda tonemap and overlay 2021-07-25 00:52:16 +08:00
Bond_009
26d7fc8280 Enable nullable reference types for MediaBrowser.MediaEncoding.Subtitles 2021-05-20 22:10:19 +02:00
nyanmisaka
b0e0e19468 add cuda format converter 2021-02-06 13:21:40 +08:00
Stéphane Senart
28ee4f0a7f [AudioTranscoding] Add FLAC as supported target audio format and be able to define the corresponding target sample rate 2020-10-22 11:09:59 +02:00