1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00
Commit Graph

117755 Commits

Author SHA1 Message Date
Nuo Mi
a144e7b92e avcodec/vvcdec: remove unused tb_pos_x0 and tb_pos_y0
This change will save approximately 531 MB for an 8K clip when processed with 16 threads.
The calculation is as follows:
7680 * 4320 * sizeof(int) * 2 * 2 * 16 / (4 * 4).
2024-10-16 20:28:09 +08:00
Nuo Mi
2e936f2c11 avcodec/vvdec: refact, ff_vvc_deblock_bs use CodingUnit/TransformUnit instead of fc->tabs
perf result for:
"perf record -F 99 ./ffmpeg_g -i  Tango2_3840x2160_60_10_420_27_LD.266 -f null -"

before: 5.24%
1.87%  ffmpeg_g  [.] vvc_deblock_bs_chroma
1.72%  ffmpeg_g  [.] ff_vvc_deblock_bs
1.65%  ffmpeg_g  [.] vvc_deblock_bs_luma

after: 3.48%
1.84%  ffmpeg_g  [.] vvc_deblock_bs_chroma
1.64%  ffmpeg_g  [.] ff_vvc_deblock_bs + vvc_deblock_bs_luma(inlined)
2024-10-16 20:28:09 +08:00
Nuo Mi
d78b43ecf8 avcodec/vvcdec: misc, move pcmf from min_tu_tl_init to min_cb_nz_tl_init
pcmf are cu level flags
2024-10-16 20:28:09 +08:00
Nuo Mi
634780f3cf avcodec/vvcdec: refact out deblock boundary strength stage
The deblock boundary strength stage utilizes ~5% of CPU resources for 8K clips.
It's worth considering it as a standalone stage. This stage has been relocated
to follow the parser process, allowing us to reuse CUs and TUs before releasing them.
2024-10-16 20:28:09 +08:00
David Rosca
48a1a12968 hw_base_encode: Free pictures on close
Fixes leaking recon surfaces with VAAPI.
2024-10-16 12:48:18 +02:00
Lynne
931d45d4d6
vulkan: do not create imageviews with video encode/decode usage
This function is only used for filtering and generic compute.
The issue is that a view inherits the usage flags from the image
by default, and the spec says the view format must be compatible
with the usage. VkImageViewUsageCreateInfo allows us to filter out
the indeded uses of the imageview.

Pffff.
2024-10-16 12:48:16 +02:00
Lynne
4b128de44a
vulkan: enable selecting a compatible representation of format
When using **integer** images inside shaders, it turns out
that conversion doesn't automatically happen, but we need to
explicitly use the imageviews to get the image exposed as
a suitable representation for the shader.

Finally enables bitexact image representations.
2024-10-16 12:48:15 +02:00
Lynne
76e8afa8a6
hwcontext_vulkan: always enable MUTABLE creation flag
We need it even for something as simple as bitexact opening
of images.
2024-10-16 12:48:13 +02:00
Lynne
98f6d43146
vulkan: keep track of mapped memory in the buffer structure
Can/could be useful to know which buffers are mapped.
2024-10-15 17:45:20 +02:00
Lynne
4d19be287f
libavfilter/Makefile: add a makefile for Vulkan shaders 2024-10-15 17:45:20 +02:00
Lynne
4e861ad8e0
libavcodec/Makefile: add a makefile for Vulkan shaders 2024-10-15 17:45:19 +02:00
Lynne
3afdfe830f
vulkan: add support for AV_PIX_FMT_RGB96 2024-10-15 17:45:19 +02:00
Lynne
903f7f053a
vulkan: add support for AV_PIX_FMT_RGBA128 2024-10-15 17:45:18 +02:00
Lynne
2336e68565
lavu: bump minor and add APIChanges entries for new 32bpc pixfmts 2024-10-15 17:45:18 +02:00
Lynne
4f387a1c4e
lavu/pixfmt: add AV_PIX_FMT_RGB96 2024-10-15 17:45:17 +02:00
Lynne
281bba1d26
lavu/pixfmt: add AV_PIX_FMT_RGBA128
This format is useful for doing certain lossless transforms on images,
RCT in particular, which require you to escalate the size from 16 to
32 bits to avoid overflows.

APIchanges will be done alongside when comitting.
2024-10-15 17:45:12 +02:00
Anton Khirnov
9ce63e65d6 lavc/avcodec: fix global/private option precendence
Broken after 7753a9d627. Apply only the
whitelist early, and the rest with a single call to av_opt_set_dict2()
with AV_OPT_SEARCH_CHILDREN, which should be equivalent to the original
behaviour.

Reported-by: Cameron Gutman <aicommander@gmail.com>
2024-10-15 10:40:15 +02:00
Anton Khirnov
c961a72926 lavfi/vf_scale: switch to query_func2() 2024-10-15 10:39:14 +02:00
Anton Khirnov
4d69398dda lavfi/vf_remap: switch to query_func2() 2024-10-15 10:39:14 +02:00
Anton Khirnov
dcd5a51e0a lavfi/vf_mergeplanes: switch to query_func2() 2024-10-15 10:39:14 +02:00
Anton Khirnov
989bc256a3 lavfi/vf_mergeplanes: remove redundant assignment
It is already done in init.
2024-10-15 10:39:14 +02:00
Anton Khirnov
c19f3fe61b lavfi/vf_quirc: use FILTER_PIXFMTS_ARRAY() instead of query_formats() 2024-10-15 10:39:14 +02:00
Anton Khirnov
d83d8a1643 lavfi/vf_premultiply: switch to query_func2() 2024-10-15 10:39:14 +02:00
Anton Khirnov
4faf6c6f0d lavfi/vf_paletteuse: switch to query_func2() 2024-10-15 10:39:14 +02:00
Anton Khirnov
18e43c2d39 lavfi/vf_palettegen: switch to query_func2() 2024-10-15 10:39:14 +02:00
Anton Khirnov
c8344737b6 lavfi/vf_pad: switch to query_func2() 2024-10-15 10:39:14 +02:00
Anton Khirnov
64035fe206 lavfi/vf_overlay_qsv: switch to query_func2() 2024-10-15 10:39:14 +02:00
Anton Khirnov
0c86bc32aa lavfi/vf_overlay: switch to query_func2() 2024-10-15 10:39:14 +02:00
Anton Khirnov
d50a63b04e lavfi/vf_noise: switch to query_func2() 2024-10-15 10:39:14 +02:00
Anton Khirnov
271ec2ab28 lavfi/vf_mix: switch to query_func2() 2024-10-15 10:39:14 +02:00
Anton Khirnov
4b2580c184 lavfi/vf_lut2: switch to query_func2() 2024-10-15 10:39:14 +02:00
Anton Khirnov
57e81f36a4 lavfi/vf_lut: switch to query_func2() 2024-10-15 10:39:14 +02:00
Anton Khirnov
92981320b3 lavfi/vf_libplacebo: convert to query_func2()
Drop a redundant error message for out_format, as it is already
validated in init.
2024-10-15 10:39:14 +02:00
Anton Khirnov
8160178dfc lavfi/vf_libplacebo: move vulkan initialization to init
avfilter API requires all the filter parameters, including hw context
(if present) to be available during init, so that is the proper place to
perform such setup.
2024-10-15 10:39:14 +02:00
Anton Khirnov
c4822228b0 lavfi/vf_il: switch to query_func2() 2024-10-15 10:39:13 +02:00
Anton Khirnov
6929fc8845 lavfi/vf_hwupload_cuda: switch to query_func2() 2024-10-15 10:39:13 +02:00
Anton Khirnov
848256677d lavfi/vf_hwupload: switch to query_func2() 2024-10-15 10:39:13 +02:00
Anton Khirnov
036336296c lavfi/vf_hwupload: validate the hw device in init
Rather than query_formats(). Init is a more appropriate place, as
query_formats() is supposed to be free of side-effects.
2024-10-15 10:39:13 +02:00
Anton Khirnov
01458a0c8f lavfi/vf_hwdownload: switch to query_func2() 2024-10-15 10:39:13 +02:00
Anton Khirnov
6db8279325 lavfi/vf_hflip: switch to query_func2() 2024-10-15 10:39:13 +02:00
Anton Khirnov
d26ef934f3 lavfi/vf_frei0r: switch to query_func2() 2024-10-15 10:39:13 +02:00
Anton Khirnov
9e2a231236 fftools/ffmpeg_filter: treat apad filter as a source
Ideally lavfi should have a dedicated API for detecting this.

Fixes #11168 and #11061
2024-10-15 10:38:48 +02:00
Anton Khirnov
79c47dfd25 lavc/hevcdec: unbreak WPP/progress2 code
The "progress2" API in pthread_slice.c currently associates a progress
value with a thread rather than a job, relying on the broken assumption
that a job's thread number is equal to its job number modulo thread
count.

This removes this API entirely, and changes hevcdec to use a
ThreadProgress-based implementation that associates a
mutex/cond/progress value with every job.

Fixes races and deadlocks in hevdec with slice threading, e.g. some of
those mentioned in #11221.
2024-10-15 10:37:44 +02:00
Martin Schitter
c50f79a0dc doc/APIchanges: add missing entry for adding RGBF16
The missing APIchanges entry requested by A.Khirnov.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2024-10-15 10:36:54 +02:00
Martin Storsjö
38d08f5c45 configure: Only try to use the -no_warn_duplicate_libraries flag on Darwin
While we only add the flag if the linker seems to support it,
it turns out that ld.bfd had a bug where the flag is accidentally
accepted, and the flag produces an output file named
"_warn_duplicate_libraries".

The ld.bfd bug was fixed in binutils 2.36, in
https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=3991c7acb29aa8d7d52150695eb3efa03a08dd50.

Signed-off-by: Martin Storsjö <martin@martin.st>
2024-10-15 09:53:14 +03:00
Michael Niedermayer
c1edec3a24
avcodec/ffv1enc: Fix RCT with RGB64
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2024-10-14 22:32:48 +02:00
Michael Niedermayer
10e5af15bf
avcodec/ffv1dec: Fix end computation with ec=2
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2024-10-14 22:31:26 +02:00
Michael Niedermayer
8e52b15258
avcodec/ffv1enc: Move slice termination into threads
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2024-10-14 22:29:33 +02:00
Michael Niedermayer
d9269fcacf
avcodec/ffv1enc: allow manually specifying the crc type
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2024-10-14 22:27:30 +02:00
Martin Schitter
d73b73af5e
swscale/input: add input support for RGBF16
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2024-10-14 20:46:24 +02:00