Commit Graph
1960 Commits
Author SHA1 Message Date
Nyanmisaka d5ce24f5b4 Merge pull request #582 from nyanmisaka/dovi-l1-metadata v7.1.1-4 2025-05-29 02:00:41 +08:00
nyanmisaka f204bf3c06 Allow QSV Enc to bail out from unsupported low-power mode
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-28 23:33:58 +08:00
nyanmisaka c347f186b7 Build libunibreak for libass so that SRT subs wrap correctly
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-28 23:33:58 +08:00
nyanmisaka 7893dbdcc6 Update build scripts and dependencies
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-28 23:33:58 +08:00
nyanmisaka b48d05ff66 Apply DOVI L1 metadata when available
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-28 23:33:58 +08:00
Nyanmisaka 465502093d Merge pull request #581 from nyanmisaka/cuda-tonemap-3dlut 2025-05-22 11:45:09 +08:00
nyanmisaka 82cb49c4c4 Port 3DLUT based tonemapping to CUDA
Some entry-level GPU models should benefit a lot from this.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-22 00:33:58 +08:00
Nyanmisaka 824ccdfc65 Merge pull request #580 from nyanmisaka/fix-mem-free 2025-05-20 01:28:59 +08:00
nyanmisaka 138a3a2650 Fix potential double-free and unchecked-free issues
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-19 23:27:12 +08:00
Nyanmisaka 3164dd871b Merge pull request #579 from nyanmisaka/fix-dvhe-dav1-mp4 2025-05-19 18:01:09 +08:00
nyanmisaka 55236fe39b Fix missing dvhe and dav1 fourcc patches for movenc
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-19 16:04:00 +08:00
Nyanmisaka 0dd5381dc5 Merge pull request #578 from nyanmisaka/deint-opencl
Add OpenCL based YADIF & BWDIF deinterlacing filters
2025-05-19 00:38:28 +08:00
nyanmisaka cbeb45c452 Bump version to 7.1.1-4
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-18 22:29:01 +08:00
nyanmisaka 221ce1fcac Fix unused variable warnings
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-18 22:29:01 +08:00
nyanmisaka 3f68809694 Tune the default async_depth for AMF encoders
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-18 22:29:01 +08:00
nyanmisaka 9ab884d4f3 Add OpenCL based YADIF & BWDIF deinterlacing filters
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-18 22:29:01 +08:00
Nyanmisaka f48cda8fc8 Merge pull request #576 from nyanmisaka/update-mesa-patch
Update Mesa and Intel dependencies
v7.1.1-3
2025-05-15 21:01:29 +08:00
Nyanmisaka 46e77d3e72 Merge pull request #577 from jellyfin/qcom-scalar-reshape
avfilter/tonemap_opencl: add scalar reshaping for qcom gpu
2025-05-15 19:32:24 +08:00
gnattu 30dc67ad75 avfilter/tonemap_opencl: use MKTAG macro 2025-05-15 11:18:25 +08:00
nyanmisaka df8d8a4d47 Update Mesa and Intel dependencies
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-15 08:30:01 +08:00
gnattu d337d39a59 avfilter/tonemap_opencl: add scalar reshaping for qcom gpu 2025-05-14 17:24:27 +08:00
Nyanmisaka 7aa774badd Merge pull request #575 from jellyfin/vectorize-dovi-reshaping
Vectorize dovi reshaping
2025-05-13 21:00:09 +08:00
gnattu dcbf6cbbd9 avfilter/tonemap_opencl: explitly convert float4 2025-05-12 19:27:57 +08:00
gnattu 60e253d7a4 avfilter/tonemap_opencl: reduce memory load for mmr reshaping on p/t channel 2025-05-12 11:07:28 +08:00
gnattu 55bf543940 avfilter/tonemap_opencl: use macro to reduce duplication 2025-05-12 00:10:34 +08:00
gnattu 01866d77af avfilter/tonemap_opencl: vectorize dovi reshaping
avfilter/tonemap_opencl: vectorize Dolby Vision reshaping

Vectorize the Dolby Vision reshaping process to handle 4 pixels at a time, similar
to what is used in the tone mapping stage. This change allows us to read the dovi
buffer once and reuse parameters for 4 pixels which reduces memory load.
Most of the pipeline, including the common polynomial reshaping, benefits from
vectorization. The only exceptions are the coefficients lookup for intensity channel
and MMR reshaping: intensity lookup remains scalar because it processes 4 vec4
values that must be handled sequentially, and MMR reshaping cannot be vectorized
due to its inter-channel dot products.
With this optimization, 4K60 Dolby Vision tone mapping is now reliably achievable
on the RK3588.
2025-05-11 22:01:56 +08:00
gnattu e34b5cb73f avfilter/tonemap_opencl: manually unroll ipt loop
This is requried for GPU platforms with unideal compilers like
Qualcomm GPUs on Windows. When the compiler unrolls the IPT
reshaping loop badly the performance suffers a lot. Unroll it by
hand mitigates this, and I noticed no performance difference on
arm mali.
2025-05-11 13:32:32 +08:00
Nyanmisaka beb5ff1e1b Merge pull request #573 from nyanmisaka/suggest-intel-opencl-icd
Add intel-opencl-icd to control/Suggests
2025-05-10 00:57:37 +08:00
nyanmisaka 340e7adbfc Update changelog
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-09 20:49:54 +08:00
nyanmisaka 27a4a234e5 Update dependencies
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-09 20:49:54 +08:00
nyanmisaka 5787f714d4 Add intel-opencl-icd{,-legacy} to control/Suggests
So that users can install Intel OpenCL runtime more
conveniently by adding --install-suggests to apt-get.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-09 20:49:54 +08:00
Nyanmisaka e870db220f Merge pull request #572 from jellyfin/ffprobe-always-ifile-nb-streams
ffprobe: always use ifile->nb_streams for first vframe option
2025-05-09 10:00:50 +08:00
Nyanmisaka 107ef43d9d Merge pull request #570 from nyanmisaka/defer-dx11-ocl-map
Defer DX11 to OCL mapping for low startup latency
2025-05-08 23:06:55 +08:00
Nyanmisaka 1eff96e257 Merge pull request #569 from jellyfin/tonemapx-no-mix
avfilter/tonemapx: use cpu friendly conditional assignments
2025-05-08 21:14:44 +08:00
Nyanmisaka 2be569e73f Merge pull request #571 from jellyfin/remove-32bit-arm-runners
Remove 32bit arm runners
2025-05-08 19:50:46 +08:00
gnattu d56e9b8a47 ffprobe: always use ifile->nb_streams for first vframe option
The global static nb_streams is dynamic and can be extended to a
number that would cause out of bounds access. Always use the
nb_streams from the input file structure and stop rescaling our
checking bitmask with the dynamic nb_streams. This should still
work for all video files.
2025-05-08 06:05:13 +08:00
gnattu 9203c4ad94 Remove all armhf build configs 2025-05-08 01:37:32 +08:00
gnattu 11ac3cb82c Remove 32bit arm runners
The support for 32bit arm CPU is discontinued for 10.11. Remove the
runners for now.
2025-05-08 00:32:19 +08:00
nyanmisaka cf6e72f45a Defer DX11 to OCL mapping for low startup latency
D3D11VA and MSDK QSV decoders still only support fixed-size frame
pools. However, deriving OpenCL images from these arrayed DX11
textures takes a long time on Gen12.0 GFX. Defer mapping these
images until the decoder outputs it. This significantly reduces
startup latency - from 5s to 1s for a 4K transcoding w/ tonemap.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-07 23:58:04 +08:00
Nyanmisaka 5b8c6b6635 Merge pull request #567 from nyanmisaka/dovi-fp16
Add FP16 tradeoff for DOVI reshaping
2025-05-07 14:59:44 +00:00
gnattu 7aef430762 avfilter/tonemapx: use cpu friendly conditional assignments
The orignial logic ported from the GPU shader uses (fused) multiply
and add to compute the dovi coefficients. But we are not actually
blending the values, and we are selecting all lanes based on one
boolean condition, a simple conditional assignment is much faster
on CPU.

This commit also uses casting instead of extraction to get the low 128b
for the avx code path. Casting is free but extraction is an instruction
with 3-cycle latency.
2025-05-07 17:33:31 +08:00
gnattu adeb12c62a Merge pull request #568 from jellyfin/fix-cmake-macos
Fix CMake4.0+ on macOS
2025-05-07 17:26:33 +08:00
gnattu 5d4b800f2a Fix CMake4.0+ on macOS 2025-05-07 15:11:48 +08:00
nyanmisaka eb69aca262 Bump version to 7.1.1-3
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-07 11:54:20 +08:00
nyanmisaka 38ccc1c9e5 Handle NOPTS and no extradata in RKMPP decoders
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-07 11:54:20 +08:00
nyanmisaka ef2bb619bb Increase default frame pool size for D3D11VA AV1/VP9
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-07 11:54:20 +08:00
nyanmisaka 92dbdab999 Fix VUI full range flag in RKMPP encoded videos
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-07 11:54:20 +08:00
nyanmisaka 14a606e1cc Add FP16 tradeoff for DOVI reshaping
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2025-05-07 11:54:20 +08:00
Nyanmisaka 6a4cbad835 Merge pull request #564 from jellyfin/reduce-3dlut-overhead
avfilter/tonemap_opencl: reduce compute and memory load of 3dlut
2025-05-06 12:53:58 +00:00
gnattu 6dc1b41e6a avfilter/tonemap_opencl: always use eotf for lms2rgb
This actually improves the quality of the lut. The old problem is
due to an rkmpp bug, not the use of eotf.
2025-05-06 10:00:10 +08:00