softworkz
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
softworkz
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
softworkz
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
softworkz
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
softworkz
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
softworkz
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
softworkz
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
softworkz
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
Michael Niedermayer
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
Michael Niedermayer
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
Michael Niedermayer
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
Michael Niedermayer
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
Michael Niedermayer
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
Michael Niedermayer
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
Michael Niedermayer
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
Michael Niedermayer
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
Michael Niedermayer
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
Michael Niedermayer
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
Michael Niedermayer
d28bec8c4d
avformat/imf_cpl: fix indention after previous commit
2025-05-15 03:03:55 +02:00
Michael Niedermayer
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
Michael Niedermayer
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
Michael Niedermayer
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
Michael Niedermayer
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
Michael Niedermayer
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
Romain Beauxis
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
Romain Beauxis
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
Andreas Rheinhardt
0d7172a9ff
avcodec/cbs: Avoid branch
...
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2025-05-15 01:51:34 +02:00
Andreas Rheinhardt
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
Andreas Rheinhardt
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
Andreas Rheinhardt
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
Andreas Rheinhardt
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
Andreas Rheinhardt
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
Andreas Rheinhardt
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
Timo Rothenpieler
889e7f2c5c
compat/cuda: add device side printf function
2025-05-14 22:08:33 +02:00
James Almer
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
Nuo Mi
3004835850
checkasm: hevc sao, use checkasm_check_padded
2025-05-14 20:55:39 +08:00
Nuo Mi
5150d26e0a
checkasm: hevc sao_edge, benchmarking inside the width loop is meaningless
2025-05-14 20:55:39 +08:00
Shaun Loo
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
Shaun Loo
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
Shaun Loo
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
Shaun Loo
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
Nuo Mi
62f3d7e027
x86/vvcdec: misc, reordered functions in dsp_init for improved readability
2025-05-14 20:55:39 +08:00
James Almer
038314bc6b
avcodec/exr: reindent after the previous change
...
Signed-off-by: James Almer <jamrial@gmail.com >
2025-05-14 00:17:02 -03:00
Mark Thompson
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
Mark Thompson
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
Mark Thompson
1ad57a847e
lavc: Add unit test for APV entropy decode
2025-05-13 19:37:53 +01:00
Mark Thompson
a3c8fba5da
apv_decode: Multisymbol entropy decode
2025-05-13 19:37:49 +01:00
Michael Niedermayer
9980a0b9b1
avformat/iamfdec: Check side_substream_id before use
...
Fixes: poc-iamf-2025-04
Found-by: 苏童 <220235212@seu.edu.cn >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-13 00:26:24 +02:00
Michael Niedermayer
74fd2c3ddb
avcodec/h264_mb: Fix tmp_cr for arm
...
When decoding a bitstream with weighted-bipred enabled,
the results on ARM and x86 platforms may differ.
The reason for the inconsistency is that the value of
STRIDE_ALIGN differs between platforms. And STRIDE_ALIGN
is set to the buffer stride of temporary buffers for U
and V components in mc_part_weighted.
If the buffer stride is 32 or 64 (as on x86 platforms),
the U and V pixels can be interleaved row by row without
overlapping, resulting in correct output.
However, on ARM platforms where the stride is 16,
the V component did overwrite part of the U component's pixels,
leading to incorrect predicted pixels.
The bug can be reproduced by the following bitstream.
https://trac.ffmpeg.org/attachment/ticket/11357/inter_weighted_bipred2.264
Fixes: ticket 11357
Commit-msg-mostly-by: Bin Peng <pengbin@visionular.com >
Reviewed-by: Bin Peng <pengbin@visionular.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-13 00:20:23 +02:00
Michael Niedermayer
fd5a3c5fed
avcodec/vorbisdec: Dont treat overread as error
...
This differs from libvorbis by
stddev: 2.44 PSNR: 88.58 MAXDIFF: 41 bytes: 834304/ 834304
for the file from the ticket
Fixes: Ticket11427
Regression since: dc89cf804a
This is a similar solution to what james proposed earlier in
[FFmpeg-devel] [PATCH] avcodec/vorbisdec: don't abort on EOD when decoding residuals
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2025-05-13 00:08:02 +02:00