e2f39671ae
avfilter/avfilter: Add avfilter_link_get_hw_frames_ctx()
...
Signed-off-by: softworkz <softworkz@hotmail.com >
2025-05-15 23:04:44 +02:00
34bb7f5d87
fftools/ffmpeg_filter: Move some declaration to new header file
...
to allow filtergraph printing to access the information.
Signed-off-by: softworkz <softworkz@hotmail.com >
2025-05-15 23:04:44 +02:00
b71b444a3a
fftools/textformat: Add flags param to function avtext_print_integer()
...
Make this function work analog to avtext_print_string() which already
has a flags parameter.
Signed-off-by: softworkz <softworkz@hotmail.com >
2025-05-15 23:04:44 +02:00
bb3a14489e
fftools/tf_internal: Use av_default_item_name
...
Reviewed-by: Stefano Sabatini <stefasab@gmail.com >
Signed-off-by: softworkz <softworkz@hotmail.com >
2025-05-15 23:04:44 +02:00
cee7b8a051
fftools/textformat: Introduce common header and deduplicate code
...
Also change writer_printf signature in AVTextWriter to use va_list,
so that it can be called by the new function writer_printf()
in tf_internal.h.
Reviewed-by: Stefano Sabatini <stefasab@gmail.com >
Signed-off-by: softworkz <softworkz@hotmail.com >
2025-05-15 23:04:44 +02:00
e4830b8c5e
fftools/textformat: Introduce AVTextFormatOptions for avtext_context_open()
...
This allows future addition of options without
changes to the signature of avtext_context_open().
Reviewed-by: Stefano Sabatini <stefasab@gmail.com >
Signed-off-by: softworkz <softworkz@hotmail.com >
2025-05-15 23:04:44 +02:00
4ff90f05c7
fftools/avtextformat: Re-use BPrint in loop
...
Instead of initializing a new BPrint in case of UTF decode error,
re-use the same BPrint struct and just clear it
for each iteration.
Reviewed-by: Stefano Sabatini <stefasab@gmail.com >
Signed-off-by: softworkz <softworkz@hotmail.com >
2025-05-15 23:04:44 +02:00
d225928703
fftools/textformat: Rename name param to key for API consistency
...
Reviewed-by: Stefano Sabatini <stefasab@gmail.com >
Signed-off-by: softworkz <softworkz@hotmail.com >
2025-05-15 23:04:44 +02:00
4baeb9ffe9
fftools/textformat: Remove unused print_rational() pointer from AVTextFormatter
...
Reviewed-by: Stefano Sabatini <stefasab@gmail.com >
Signed-off-by: softworkz <softworkz@hotmail.com >
2025-05-15 23:04:44 +02:00
5f90eea8a8
fftools/textformat: Apply quality improvements
...
Perform multiple improvements to increase code robustness.
In particular:
- favor unsigned counters for loops
- add missing checks
- avoid possible leaks
- move variable declarations to inner scopes when feasible
- provide explicit type-casting when needed
Signed-off-by: softworkz <softworkz@hotmail.com >
2025-05-15 23:04:44 +02:00
8f42d90413
fftools/textformat: Apply formatting and whitespace changes
...
Reviewed-by: Stefano Sabatini <stefasab@gmail.com >
Signed-off-by: softworkz <softworkz@hotmail.com >
2025-05-15 23:04:44 +02:00
f51c385a8e
tools/merge-all-source-plugins: Check that there are no uncommited changes
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 16:19:59 +02:00
a06b86a09b
tools/merge-all-source-plugins: Try merging a tag or branch matching the current version
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 16:19:58 +02:00
12b853530a
Add tools/merge-all-source-plugins
...
Simple script to merge all source plugins.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 12:17:04 +02:00
23592f942d
swscale/output: fix integer overflow in yuv2rgba64_full_1_c_template()
...
Fixes: signed integer overflow: -293650 * 16525 cannot be represented in type 'int'
Fixes: 408304111/clusterfuzz-testcase-minimized-ffmpeg_SWS_fuzzer-4762210299871232
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 03:03:58 +02:00
05f8c8c4c2
avformat/matroskadec: check that channels fit in signed 32bit int
...
Fixes: signed integer overflow: -1384566925600903168 * 16 cannot be represented in type 'long'
Fixes: 407069502/clusterfuzz-testcase-minimized-ffmpeg_dem_WEBM_DASH_MANIFEST_fuzzer-5159255372267520
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 03:03:57 +02:00
8e6db875af
avcodec/takdec: Check remaining space for first predictors
...
Fixes: Timeout
Fixes: 403673829/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TAK_fuzzer-5498240154009600
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 03:03:57 +02:00
4a9d907b5e
avcodec/4xm: Check frame_4cc before allocation
...
Fixes: Timeout
Fixes: 403402798/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_FOURXM_fuzzer-5012819292782592
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 03:03:57 +02:00
8168ebdcc5
tools/target_dec_fuzzer: Adjust threshold for WEBP
...
Fixes: Timeout
Fixes: 403345121/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WEBP_fuzzer-6408323910139904
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 03:03:56 +02:00
c06f5b3ab9
avcodec/svq3: Check there are bits left before decompression
...
Fixes: out of array read
Fixes: 402587670/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SVQ3_fuzzer-6343867775647744
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 03:03:56 +02:00
fd0a792766
avcodec/sonic: Check num_taps
...
The encoder uses max 128 taps, which is quiet a lot already
If work is done to improve sonic, it will be more radical than changing the taps
Fixes: Timeout
Fixes: 402539974/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SONIC_fuzzer-6122944271286272
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 03:03:56 +02:00
d28bec8c4d
avformat/imf_cpl: fix indention after previous commit
2025-05-15 03:03:55 +02:00
39800d78b0
avformat/imf_cpl: do not continue looping forever
...
Fixes: infinite loop
Fixes: 401658595/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5756875014733824
Regression since: 61fa1e14e4
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 03:03:55 +02:00
9fc2702f6f
avformat/mov: reject negative ELST durations
...
Fixes: multiple integer overflows
Fixes: 401016767/clusterfuzz-testcase-minimized-ffmpeg_dem_MOV_fuzzer-6242067591790592
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 03:03:55 +02:00
76e29bb8bf
avcodec/dnxuc_parser: Use ff_parse_close()
...
Fixes: buffer leak
Fixes: 398894512/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-6716597473705984
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 03:03:54 +02:00
6a47046981
avformat/avidec: Ignore duplicate GAB2
...
Fixes: memleak
Fixes: 398401912/clusterfuzz-testcase-minimized-ffmpeg_dem_AVI_fuzzer-4669849976766464
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 03:03:54 +02:00
1a5ed492e5
MAINTAINERS: Add entry for samples-request
...
This is based on discussion with the GA and its simply the people
who have done or tried to do some uploads recently.
Everyone who has a shell account on ffmpeg.org should have powers to
upload samples.
CC: compn <compn@ffmpeg.org >
CC: Thilo Borgmann <thilo.borgmann@mail.de >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 03:03:54 +02:00
a9d39d6eb9
libavformat/oggdec.{c, h}: Implement packet skip on packet return value of 1
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 03:03:53 +02:00
6d54af6599
libavformat/oggdec.h: Document packet function return value.
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-15 03:03:53 +02:00
0d7172a9ff
avcodec/cbs: Avoid branch
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2025-05-15 01:51:34 +02:00
f71d0f0559
avcodec/apv_parser: Mark close as av_cold
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2025-05-15 01:51:34 +02:00
d794ecd9d2
avcodec/vulkan_encode_hevc: Fix memleak on error
...
Reviewed-by: Lynne <dev@lynne.ee >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2025-05-15 01:51:28 +02:00
70fa44dfa8
avcodec/vulkan_encode_h264: Fix memleak on error
...
Reviewed-by: Lynne <dev@lynne.ee >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2025-05-15 01:26:07 +02:00
b18aaf209f
fftools/ffmpeg_dec: Always receive frames from decoder
...
Up until now if avcodec_send_packet() returned an error,
no attempt to receive a frame from the decoder would be made.
Instead the decoder was presumed to be drained, so that more
packets could be sent to it. Yet this need not be so:
It can happen that a packet would decode to multiple frames
and that decoding the first of these (the one that is decoded
during the avcodec_send_packet() call) returns an error,
in which case the decoder is not yet ready to receive more
input as the remaining parts of the packet have not been decoded
yet. In this case, an AERROR_BUG is triggered.
This happens in ticket #11553 with VP9 (which uses a BSF
to split VP9 superframes and is therefore affected by this).
Fix this by always calling avcodec_receive_frame() unless
xerror is set.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2025-05-15 01:23:41 +02:00
8588770367
avformat/av1dec: Avoid branch for setting position
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2025-05-15 01:20:46 +02:00
c914fd2977
avformat/av1dec: Remove redundant avio_tell()
...
AV1DemuxContext.temporal_unit_size is zero after reading the header,
so the position set when reading the header will not be used at all.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2025-05-15 01:20:46 +02:00
889e7f2c5c
compat/cuda: add device side printf function
2025-05-14 22:08:33 +02:00
3f94201324
avformat/iamf_parse: increase PutBytes buffer when writing AAC extradata
...
We may write up to 43 bits, so 5 bytes is not enough.
Fixes: Assertion n>=0 && n<=32 failed at ./libavcodec/get_bits.h:406
Fixes: 398527871/clusterfuzz-testcase-minimized-ffmpeg_dem_IAMF_fuzzer-6602025714647040
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: James Almer <jamrial@gmail.com >
2025-05-14 10:32:23 -03:00
3004835850
checkasm: hevc sao, use checkasm_check_padded
2025-05-14 20:55:39 +08:00
5150d26e0a
checkasm: hevc sao_edge, benchmarking inside the width loop is meaningless
2025-05-14 20:55:39 +08:00
45bea45c7b
checkasm: add vvc_sao
...
This is a part of Google Summer of Code 2023
AVX2:
- vvc_sao.sao_band [OK]
- vvc_sao.sao_edge [OK]
checkasm: all 54 tests passed
vvc_sao_band_8_8_c: 157.4 ( 1.00x)
vvc_sao_band_8_8_avx2: 30.7 ( 5.12x)
vvc_sao_band_8_10_c: 119.4 ( 1.00x)
vvc_sao_band_8_10_avx2: 29.2 ( 4.09x)
vvc_sao_band_8_12_c: 144.6 ( 1.00x)
vvc_sao_band_8_12_avx2: 30.0 ( 4.82x)
vvc_sao_band_16_8_c: 446.5 ( 1.00x)
vvc_sao_band_16_8_avx2: 103.3 ( 4.32x)
vvc_sao_band_16_10_c: 399.2 ( 1.00x)
vvc_sao_band_16_10_avx2: 64.3 ( 6.21x)
vvc_sao_band_16_12_c: 472.9 ( 1.00x)
vvc_sao_band_16_12_avx2: 56.5 ( 8.37x)
vvc_sao_band_32_8_c: 2430.9 ( 1.00x)
vvc_sao_band_32_8_avx2: 203.3 (11.96x)
vvc_sao_band_32_10_c: 1405.7 ( 1.00x)
vvc_sao_band_32_10_avx2: 208.5 ( 6.74x)
vvc_sao_band_32_12_c: 2054.3 ( 1.00x)
vvc_sao_band_32_12_avx2: 213.0 ( 9.64x)
vvc_sao_band_48_8_c: 3835.4 ( 1.00x)
vvc_sao_band_48_8_avx2: 604.2 ( 6.35x)
vvc_sao_band_48_10_c: 3624.6 ( 1.00x)
vvc_sao_band_48_10_avx2: 468.8 ( 7.73x)
vvc_sao_band_48_12_c: 3752.4 ( 1.00x)
vvc_sao_band_48_12_avx2: 477.5 ( 7.86x)
vvc_sao_band_64_8_c: 6061.1 ( 1.00x)
vvc_sao_band_64_8_avx2: 803.9 ( 7.54x)
vvc_sao_band_64_10_c: 6142.5 ( 1.00x)
vvc_sao_band_64_10_avx2: 827.3 ( 7.43x)
vvc_sao_band_64_12_c: 6106.6 ( 1.00x)
vvc_sao_band_64_12_avx2: 839.9 ( 7.27x)
vvc_sao_band_80_8_c: 9478.0 ( 1.00x)
vvc_sao_band_80_8_avx2: 1516.7 ( 6.25x)
vvc_sao_band_80_10_c: 10300.5 ( 1.00x)
vvc_sao_band_80_10_avx2: 1298.7 ( 7.93x)
vvc_sao_band_80_12_c: 8941.1 ( 1.00x)
vvc_sao_band_80_12_avx2: 1315.3 ( 6.80x)
vvc_sao_band_96_8_c: 13351.5 ( 1.00x)
vvc_sao_band_96_8_avx2: 1815.4 ( 7.35x)
vvc_sao_band_96_10_c: 13197.5 ( 1.00x)
vvc_sao_band_96_10_avx2: 1872.4 ( 7.05x)
vvc_sao_band_96_12_c: 11969.0 ( 1.00x)
vvc_sao_band_96_12_avx2: 1895.8 ( 6.31x)
vvc_sao_band_112_8_c: 19936.9 ( 1.00x)
vvc_sao_band_112_8_avx2: 2802.3 ( 7.11x)
vvc_sao_band_112_10_c: 19534.9 ( 1.00x)
vvc_sao_band_112_10_avx2: 2635.0 ( 7.41x)
vvc_sao_band_112_12_c: 16520.6 ( 1.00x)
vvc_sao_band_112_12_avx2: 2591.8 ( 6.37x)
vvc_sao_band_128_8_c: 25967.5 ( 1.00x)
vvc_sao_band_128_8_avx2: 3155.3 ( 8.23x)
vvc_sao_band_128_10_c: 24002.6 ( 1.00x)
vvc_sao_band_128_10_avx2: 3374.6 ( 7.11x)
vvc_sao_band_128_12_c: 20829.4 ( 1.00x)
vvc_sao_band_128_12_avx2: 3377.0 ( 6.17x)
vvc_sao_edge_8_8_c: 174.6 ( 1.00x)
vvc_sao_edge_8_8_avx2: 37.0 ( 4.72x)
vvc_sao_edge_8_10_c: 174.4 ( 1.00x)
vvc_sao_edge_8_10_avx2: 58.5 ( 2.98x)
vvc_sao_edge_8_12_c: 171.1 ( 1.00x)
vvc_sao_edge_8_12_avx2: 58.5 ( 2.93x)
vvc_sao_edge_16_8_c: 677.7 ( 1.00x)
vvc_sao_edge_16_8_avx2: 72.2 ( 9.39x)
vvc_sao_edge_16_10_c: 724.8 ( 1.00x)
vvc_sao_edge_16_10_avx2: 106.4 ( 6.81x)
vvc_sao_edge_16_12_c: 647.0 ( 1.00x)
vvc_sao_edge_16_12_avx2: 106.6 ( 6.07x)
vvc_sao_edge_32_8_c: 3001.8 ( 1.00x)
vvc_sao_edge_32_8_avx2: 157.6 (19.04x)
vvc_sao_edge_32_10_c: 3071.1 ( 1.00x)
vvc_sao_edge_32_10_avx2: 404.2 ( 7.60x)
vvc_sao_edge_32_12_c: 2698.6 ( 1.00x)
vvc_sao_edge_32_12_avx2: 398.8 ( 6.77x)
vvc_sao_edge_48_8_c: 6557.7 ( 1.00x)
vvc_sao_edge_48_8_avx2: 380.1 (17.25x)
vvc_sao_edge_48_10_c: 6319.9 ( 1.00x)
vvc_sao_edge_48_10_avx2: 896.3 ( 7.05x)
vvc_sao_edge_48_12_c: 6306.4 ( 1.00x)
vvc_sao_edge_48_12_avx2: 885.5 ( 7.12x)
vvc_sao_edge_64_8_c: 11510.7 ( 1.00x)
vvc_sao_edge_64_8_avx2: 504.1 (22.84x)
vvc_sao_edge_64_10_c: 10917.4 ( 1.00x)
vvc_sao_edge_64_10_avx2: 1608.3 ( 6.79x)
vvc_sao_edge_64_12_c: 11499.8 ( 1.00x)
vvc_sao_edge_64_12_avx2: 1586.4 ( 7.25x)
vvc_sao_edge_80_8_c: 18193.2 ( 1.00x)
vvc_sao_edge_80_8_avx2: 930.2 (19.56x)
vvc_sao_edge_80_10_c: 17984.3 ( 1.00x)
vvc_sao_edge_80_10_avx2: 2420.9 ( 7.43x)
vvc_sao_edge_80_12_c: 18289.4 ( 1.00x)
vvc_sao_edge_80_12_avx2: 2412.1 ( 7.58x)
vvc_sao_edge_96_8_c: 26361.8 ( 1.00x)
vvc_sao_edge_96_8_avx2: 1118.4 (23.57x)
vvc_sao_edge_96_10_c: 26162.2 ( 1.00x)
vvc_sao_edge_96_10_avx2: 3666.9 ( 7.13x)
vvc_sao_edge_96_12_c: 25926.6 ( 1.00x)
vvc_sao_edge_96_12_avx2: 3433.9 ( 7.55x)
vvc_sao_edge_112_8_c: 36562.9 ( 1.00x)
vvc_sao_edge_112_8_avx2: 1741.0 (21.00x)
vvc_sao_edge_112_10_c: 38126.4 ( 1.00x)
vvc_sao_edge_112_10_avx2: 5153.3 ( 7.40x)
vvc_sao_edge_112_12_c: 36345.7 ( 1.00x)
vvc_sao_edge_112_12_avx2: 4684.9 ( 7.76x)
vvc_sao_edge_128_8_c: 46379.8 ( 1.00x)
vvc_sao_edge_128_8_avx2: 2012.4 (23.05x)
vvc_sao_edge_128_10_c: 47029.5 ( 1.00x)
vvc_sao_edge_128_10_avx2: 6162.2 ( 7.63x)
vvc_sao_edge_128_12_c: 49647.3 ( 1.00x)
vvc_sao_edge_128_12_avx2: 6127.1 ( 8.10x)
Co-authored-by: Nuo Mi <nuomi2021@gmail.com >
2025-05-14 20:55:39 +08:00
bed1769957
x86/vvcdec: sao, add avx2 support
...
This is a part of Google Summer of Code 2023
Co-authored-by: Nuo Mi <nuomi2021@gmail.com >
2025-05-14 20:55:39 +08:00
69f63c6210
x86/hevcdec: refact, remove duplicate code in HEVC_SAO_{BAND, EDGE}_FILTER
...
This is a part of Google Summer of Code 2023
Co-authored-by: Nuo Mi <nuomi2021@gmail.com >
2025-05-14 20:55:39 +08:00
dbd859a186
x86/hevcdec: sao, refact out h26x macros
...
This is a part of Google Summer of Code 2023
Co-authored-by: Nuo Mi <nuomi2021@gmail.com >
2025-05-14 20:55:39 +08:00
62f3d7e027
x86/vvcdec: misc, reordered functions in dsp_init for improved readability
2025-05-14 20:55:39 +08:00
038314bc6b
avcodec/exr: reindent after the previous change
...
Signed-off-by: James Almer <jamrial@gmail.com >
2025-05-14 00:17:02 -03:00
527d5eaec7
apv_decode: Discard invalid run codes earlier
...
Caught by ubsan - would cause an invalid shift in constructing the
run value.
2025-05-13 20:52:35 +01:00
1753d41d4e
fate: Add test for APV 400-10 profile
...
Same setup as the 422-10 profile test, using the same content. FFmpeg
decoder output is identical to the reference decoder output.
2025-05-13 19:38:08 +01:00
1ad57a847e
lavc: Add unit test for APV entropy decode
2025-05-13 19:37:53 +01:00
a3c8fba5da
apv_decode: Multisymbol entropy decode
2025-05-13 19:37:49 +01:00