summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* aarch64/vvc: Bind h26x/sao filter implementation to vvcZhao Zhili2024-08-315-15/+48
| | | | Reviewed-by: Martin Storsjö <[email protected]>
* aarch64/hevc: Move sao to h26x directoryZhao Zhili2024-08-314-10/+39
| | | | | | So vvc can reuse the implementation. Reviewed-by: Martin Storsjö <[email protected]>
* lavc/vvc: Validate explicit subpic locationsFrank Plowman2024-08-311-11/+38
| | | | | | | | Implement the missing requirements from H.266 (V3) p. 106 on the position and size of subpictures whose dimensions are provided explicitly. Signed-off-by: Frank Plowman <[email protected]>
* lavc/vvc: Prevent OOB access in subpic_tilesFrank Plowman2024-08-311-2/+2
| | | | | | | | | | | | | | | | The previous logic relied on the subpicture boundaries coinciding with the tile boundaries. Per 6.3.1 of H.266 (V3), vertical subpicture boundaries are always tile boundaries however the same cannot be said for horizontal subpicture boundaries. Furthermore, it is possible to construct an illegal bitstream where vertical subpicture boundaries are not coincident with tile boundaries. In these cases, the condition of the while loop would never be satisfied resulting in an OOB read on col_bd/row_bd. Patch fixes this issue by replacing != with <, thereby not requiring subpicture boundaries and tile boundaries to be coincident. Signed-off-by: Frank Plowman <[email protected]>
* avcodec/vvcdec: format, fix indent for vvc_deblock_bsNuo Mi2024-08-311-6/+6
|
* avcodec/vvcdec: filter, fix uninitialized variables for YUV400 formatNuo Mi2024-08-311-2/+4
| | | | | | | | | | | fix ==135000== Conditional jump or move depends on uninitialised value(s) ==135000== at 0x169FF95: vvc_deblock_bs (filter.c:699) and ==135000== Conditional jump or move depends on uninitialised value(s) ==135000== at 0x16A2E72: ff_vvc_alf_filter (filter.c:1217) Reported-by: James Almer <[email protected]>
* checkasm: add vvc_bdof testNuo Mi2024-08-311-0/+50
| | | | | | | | | | | | | | | | | | | | | apply_bdof_8_8x16_c: 5776.5 apply_bdof_8_8x16_avx2: 396.2 apply_bdof_8_16x8_c: 5722.0 apply_bdof_8_16x8_avx2: 216.0 apply_bdof_8_16x16_c: 11213.2 apply_bdof_8_16x16_avx2: 434.5 apply_bdof_10_8x16_c: 5657.7 apply_bdof_10_8x16_avx2: 1096.0 apply_bdof_10_16x8_c: 5531.7 apply_bdof_10_16x8_avx2: 212.5 apply_bdof_10_16x16_c: 11043.7 apply_bdof_10_16x16_avx2: 1252.7 apply_bdof_12_8x16_c: 5680.0 apply_bdof_12_8x16_avx2: 1096.5 apply_bdof_12_16x8_c: 5646.2 apply_bdof_12_16x8_avx2: 624.5 apply_bdof_12_16x16_c: 11076.0 apply_bdof_12_16x16_avx2: 1241.5
* x86/vvcdec: inter, add optical flow avx2 codeNuo Mi2024-08-313-0/+407
| | | | | | | | | | | | | | | | BDoF used about 10%–25% of the CPU for some clips. Here are the FPS for one run; please ignore the negative values, as they may be due to round-to-round variation clips | before | after | delta --------------------------------------------|--------|-------|------ RitualDance_1920x1080_60_10_420_37_RA.266 | 310.0 | 363.0 | 14.60% NovosobornayaSquare_1920x1080.bin | 322.3 | 339.7 | 5.12% Tango2_3840x2160_60_10_420_27_LD.266 | 71.0 | 68.7 | -3.35% RitualDance_1920x1080_60_10_420_32_LD.266 | 250.0 | 245.3 | -1.92% Chimera_8bit_1080P_1000_frames.vvc | 359.3 | 422.7 | 15.00% BQTerrace_1920x1080_60_10_420_22_RA.vvc | 142.3 | 147.7 | 3.66% Reviewed-by: James Almer <[email protected]>
* avcodec/vvcdec: bdof, do not pad sources and gradients to simplify the codeNuo Mi2024-08-313-63/+31
|
* avcodec/vvcdec: misc, rename BDOF_BLOCK_SIZE to BDOF_MIN_BLOCK_SIZENuo Mi2024-08-312-7/+7
|
* avcodec/msmpeg4dec: init dc_pred_dirMichael Niedermayer2024-08-281-1/+1
| | | | | | | | Its not really used but its passed as a argument and then not used Fixes: 70965/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MSMPEG4V1_fuzzer-5583223747313664 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avformat/mvdec: Check if name was fully readMichael Niedermayer2024-08-281-1/+2
| | | | | | | | Fixes: use of uninitialized value Fixes: 70901/clusterfuzz-testcase-minimized-ffmpeg_dem_MV_fuzzer-6341913949569024 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/wmavoice: Do not use uninitialized pitch[0]Michael Niedermayer2024-08-281-0/+5
| | | | | | | | Fixes: use of uninitialized value Fixes: 70850/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WMAVOICE_fuzzer-4806127362048000 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* MAINTAINERS: some random updatingMichael Niedermayer2024-08-281-30/+30
| | | | | | | | | | | | Adding level to some of my entries Adding level to some random entries of other people who i have seen actively maintaining their code removing some people who have not been active where others where active For most we will need to contact people and ask if they are still available as maintainers (but for cases where patches are ignored for many months even with pings sent to the maintainer entries should be set to unmaintained) Signed-off-by: Michael Niedermayer <[email protected]>
* MAINTAINERS: Add a maintaince level fieldMichael Niedermayer2024-08-281-1/+6
| | | | | | | | | Text was stolen from the linux kernel This is thus identical to the kernel just a different more compact format. I am very happy also to switch the file entirely to the format of the linux kernel maintainer list if people prefer Signed-off-by: Michael Niedermayer <[email protected]>
* avformat/argo_brp: Check that ASF chunk header is completely readMichael Niedermayer2024-08-281-2/+2
| | | | | | | | Fixes: Use of uninitialized value Fixes: 71280/clusterfuzz-testcase-minimized-ffmpeg_dem_ARGO_BRP_fuzzer-4692991866896384 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* tools/target_swr_fuzzer: Check av_samples_fill_arrays() for failureMichael Niedermayer2024-08-281-2/+7
| | | | | | | | Fixes: use of uninitialized value Fixes: 71242/clusterfuzz-testcase-minimized-ffmpeg_SWR_fuzzer-4905557943713792 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/notchlc: Check bytes left before readingMichael Niedermayer2024-08-281-0/+3
| | | | | | | | Fixes: Use of uninitialized value Fixes: 71230/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_NOTCHLC_fuzzer-4624502095413248 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/vc1_block: propagate error codesMichael Niedermayer2024-08-281-19/+40
| | | | | | | | Fixes: use of uninitialized value Fixes: 71228/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VC1IMAGE_fuzzer-6188476880453632 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avformat/apetag: Check APETAGEXMichael Niedermayer2024-08-281-1/+2
| | | | | | | | Fixes: Use of uninitialized value Fixes: 71074/clusterfuzz-testcase-minimized-ffmpeg_IO_DEMUXER_fuzzer-5697034877730816 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/magicyuvenc: better slice heightMichael Niedermayer2024-08-281-1/+4
| | | | | | | | Fixes: Use of uninitialized value Fixes: 71072/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MAGICYUV_fuzzer-4835252046987264 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* checkasm: add wildcompares for test & functionsJ. Dekker2024-08-281-5/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | Added: --test=<pattern> Filter tests by glob style pattern. --bench[=<pattern>] Run benchmark and optionally filter functions by glob style pattern. Example: $ ./tests/checkasm/checkasm --bench=yuva* [...] yuva420p_bgr24_8_c: 34.5 ( 1.00x) yuva420p_bgr24_8_ssse3: 31.1 ( 1.11x) yuva420p_bgr24_128_c: 310.6 ( 1.00x) yuva420p_bgr24_128_ssse3: 178.1 ( 1.74x) yuva420p_bgr24_1080_c: 2509.6 ( 1.00x) yuva420p_bgr24_1080_ssse3: 1471.5 ( 1.71x) yuva420p_bgr24_1920_c: 4462.6 ( 1.00x) yuva420p_bgr24_1920_ssse3: 2331.1 ( 1.91x) [...] Ported from dav1d. Signed-off-by: J. Dekker <[email protected]>
* checkasm: improve print formatJ. Dekker2024-08-281-5/+48
| | | | | | | Port dav1d's checkasm output format to FFmpeg's checkasm, includes relative speedups and aligns results. Signed-off-by: J. Dekker <[email protected]>
* checkasm: print only results to stdoutJ. Dekker2024-08-281-3/+3
| | | | Signed-off-by: J. Dekker <[email protected]>
* checkasm: add csv/tsv bench outputJ. Dekker2024-08-281-2/+20
| | | | | | | | When collecting performance information from checkasm it is common to parse the output for use in graphs to compare vs different architectures. Signed-off-by: J. Dekker <[email protected]>
* lavu/opt: add API for retrieving array-type option valuesAnton Khirnov2024-08-276-7/+226
| | | | | Previously one could only convert the entire array to a string, not access individual elements.
* lavu/opt: forward av_opt_get_video_rate() to av_opt_get_q()Anton Khirnov2024-08-271-12/+1
| | | | The two functions are exactly the same.
* lavu/opt: document underlying C types for enum AVOptionTypeAnton Khirnov2024-08-271-3/+75
|
* avcodec/mpegvideoencdsp: speed up draw_edges_8_c by inlining it for all used ↵Ramiro Polla2024-08-261-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | edge widths This commit also restricts w to 4, 8, or 16. Intel(R) Core(TM) i5-5300U CPU @ 2.30GHz: before after draw_edges_8_1724_4_c: 46796.5 7141.7 ( 6.55x) draw_edges_8_1724_8_c: 43584.5 7216.5 ( 6.04x) draw_edges_8_1724_16_c: 47007.2 10080.5 ( 4.66x) draw_edges_128_407_4_c: 11199.0 4185.0 ( 2.68x) draw_edges_128_407_8_c: 10660.2 4418.0 ( 2.41x) draw_edges_128_407_16_c: 11800.2 4634.5 ( 2.55x) draw_edges_1080_31_4_c: 1356.5 634.7 ( 2.14x) draw_edges_1080_31_8_c: 1972.0 1430.2 ( 1.38x) draw_edges_1080_31_16_c: 4621.0 4009.7 ( 1.15x) draw_edges_1920_4_4_c: 834.5 795.2 ( 1.05x) draw_edges_1920_4_4_negstride_c: 821.7 802.0 ( 1.02x) draw_edges_1920_4_8_c: 2782.2 2650.7 ( 1.05x) draw_edges_1920_4_8_negstride_c: 2724.7 2670.0 ( 1.02x) draw_edges_1920_4_16_c: 6437.5 6327.7 ( 1.02x) draw_edges_1920_4_16_negstride_c: 6395.2 6349.5 ( 1.01x) A55: before after draw_edges_8_1724_4_c: 52540.4 19739.2 ( 2.66x) draw_edges_8_1724_8_c: 45386.9 19847.4 ( 2.29x) draw_edges_8_1724_16_c: 51995.4 23284.7 ( 2.23x) draw_edges_128_407_4_c: 13401.1 6988.2 ( 1.92x) draw_edges_128_407_8_c: 12218.4 7527.9 ( 1.62x) draw_edges_128_407_16_c: 13695.9 8207.2 ( 1.67x) draw_edges_1080_31_4_c: 3702.9 3110.4 ( 1.19x) draw_edges_1080_31_8_c: 6015.6 5643.2 ( 1.07x) draw_edges_1080_31_16_c: 12281.9 11901.4 ( 1.03x) draw_edges_1920_4_4_c: 3957.9 3970.2 ( 1.00x) draw_edges_1920_4_4_negstride_c: 3964.1 3825.2 ( 1.04x) draw_edges_1920_4_8_c: 7757.9 7676.4 ( 1.01x) draw_edges_1920_4_8_negstride_c: 7923.6 7812.4 ( 1.01x) draw_edges_1920_4_16_c: 14791.6 15143.9 ( 0.98x) draw_edges_1920_4_16_negstride_c: 14788.6 15163.4 ( 0.98x) A76: before after draw_edges_8_1724_4_c: 39786.0 4968.5 ( 8.01x) draw_edges_8_1724_8_c: 32971.5 5069.5 ( 6.50x) draw_edges_8_1724_16_c: 40056.0 6017.2 ( 6.66x) draw_edges_128_407_4_c: 9517.2 1210.5 ( 7.86x) draw_edges_128_407_8_c: 8035.7 1346.2 ( 5.97x) draw_edges_128_407_16_c: 9946.5 1648.2 ( 6.03x) draw_edges_1080_31_4_c: 1308.0 660.7 ( 1.98x) draw_edges_1080_31_8_c: 1785.5 1270.7 ( 1.41x) draw_edges_1080_31_16_c: 3266.7 2591.5 ( 1.26x) draw_edges_1920_4_4_c: 1151.0 1090.7 ( 1.06x) draw_edges_1920_4_4_negstride_c: 1153.7 1096.5 ( 1.05x) draw_edges_1920_4_8_c: 2220.7 2186.5 ( 1.02x) draw_edges_1920_4_8_negstride_c: 2218.5 2193.5 ( 1.01x) draw_edges_1920_4_16_c: 4324.2 4230.0 ( 1.02x) draw_edges_1920_4_16_negstride_c: 4310.7 4233.0 ( 1.02x)
* avcodec/x86/mpegvideoencdsp: speed up draw_edges_mmx by using memcpy()Ramiro Polla2024-08-261-41/+11
| | | | | | | | | | | | | | | | | | | | | | | The mmx memory copy code is not nearly as efficient as memcpy(), which would make draw_edges_mmx much slower than draw_edges_8_c. Intel(R) Core(TM) i5-5300U CPU @ 2.30GHz: before after draw_edges_8_1724_4_mmx: 8700.5 8751.8 ( 0.99x) draw_edges_8_1724_8_mmx: 10441.7 10558.0 ( 0.99x) draw_edges_8_1724_16_mmx: 10660.7 10799.5 ( 0.99x) draw_edges_128_407_4_mmx: 4202.2 4099.3 ( 1.03x) draw_edges_128_407_8_mmx: 4579.0 4511.3 ( 1.02x) draw_edges_128_407_16_mmx: 5479.7 4729.5 ( 1.16x) draw_edges_1080_31_4_mmx: 1546.7 658.0 ( 2.35x) draw_edges_1080_31_8_mmx: 2745.5 1442.5 ( 1.90x) draw_edges_1080_31_16_mmx: 12511.5 4901.0 ( 2.55x) draw_edges_1920_4_4_mmx: 2659.0 705.0 ( 3.77x) draw_edges_1920_4_4_negstride_mmx: 2643.0 729.0 ( 3.63x) draw_edges_1920_4_8_mmx: 7845.0 2819.0 ( 2.78x) draw_edges_1920_4_8_negstride_mmx: 7777.0 2747.3 ( 2.83x) draw_edges_1920_4_16_mmx: 24583.7 6358.3 ( 3.87x) draw_edges_1920_4_16_negstride_mmx: 24589.0 6367.0 ( 3.86x)
* avcodec/x86/mpegvideoencdsp: fix comment for draw_edges_mmxRamiro Polla2024-08-261-2/+1
| | | | Not only w == 8 and w == 16 are supported, but also w == 4.
* avcodec/aarch64/mpegvideoencdsp: add dotprod implementation for pix_norm1Ramiro Polla2024-08-262-0/+38
| | | | | | | A55 A76 pix_norm1_c: 484.3 235.2 pix_norm1_neon: 193.8 ( 2.50x) 44.7 ( 5.26x) pix_norm1_dotprod: 91.8 ( 5.28x) 21.2 (11.09x)
* avcodec/aarch64/mpegvideoencdsp: add neon implementations for pix_sum and ↵Ramiro Polla2024-08-265-1/+114
| | | | | | | | | | pix_norm1 A55 A76 pix_norm1_c: 478.2 234.2 pix_norm1_neon: 188.2 ( 2.54x) 41.2 ( 5.68x) pix_sum_c: 304.2 244.0 pix_sum_neon: 77.2 ( 3.94x) 21.5 (11.35x)
* checkasm/mpegvideoencdsp: add pix_sum, pix_norm1, and draw_edgesRamiro Polla2024-08-265-0/+153
|
* avcodec/x86/mpegvideoencdsp: support negative strides in draw_edges_mmx()Ramiro Polla2024-08-261-3/+3
|
* fate/checkasm: run the sw_yuv2yuv testRamiro Polla2024-08-261-0/+1
|
* avcodec/videotoolboxenc: Fix leaking of supported_propsZhao Zhili2024-08-261-0/+4
| | | | | | | | There are two VTCompressionSessionRef been created, one for generating extradata, and another for normal encoding. supported_props was been overwritten without release. Signed-off-by: Zhao Zhili <[email protected]>
* swscale/aarch64: cosmetics fix (spaces inside curly braces)Ramiro Polla2024-08-261-4/+4
|
* swscale/aarch64: add nv24/nv42 to yuv420p unscaled converterRamiro Polla2024-08-263-0/+101
| | | | | | | | | | | | A55 A76 nv24_yuv420p_128_c: 4956.1 1267.0 nv24_yuv420p_128_neon: 3109.1 ( 1.59x) 640.0 ( 1.98x) nv24_yuv420p_1920_c: 35728.4 11736.2 nv24_yuv420p_1920_neon: 8011.1 ( 4.46x) 2436.0 ( 4.82x) nv42_yuv420p_128_c: 4956.4 1270.5 nv42_yuv420p_128_neon: 3074.6 ( 1.61x) 639.5 ( 1.99x) nv42_yuv420p_1920_c: 35685.9 11732.5 nv42_yuv420p_1920_neon: 7995.1 ( 4.46x) 2437.2 ( 4.81x)
* swscale: export ff_copyPlane so it may be used by simd codeRamiro Polla2024-08-262-21/+25
|
* checkasm/yuv2yuv: add tests for semiplanar unscaled convertersRamiro Polla2024-08-264-1/+136
|
* swscale: add nv24/nv42 to yuv420p unscaled converterRamiro Polla2024-08-261-0/+45
|
* avcodec/mediacodecdec: Skip dequeue buffer in draining stateZhao Zhili2024-08-261-1/+1
| | | | | | There is no more packet to queue in draining state. Signed-off-by: Zhao Zhili <[email protected]>
* avfilter/unsharp: Merge header into .cZhao Zhili2024-08-262-63/+33
| | | | | | It was shared with opencl implementation. Signed-off-by: Zhao Zhili <[email protected]>
* avformat/vapoursynth: load library at runtimeStefan Oltmanns2024-08-262-3/+64
| | | | Signed-off-by: Stefan Oltmanns <[email protected]>
* avformat/vapoursynth: Update to API version 4Stefan Oltmanns2024-08-262-39/+40
| | | | Signed-off-by: Stefan Oltmanns <[email protected]>
* avutil/aarch64: add AV_COPY128 and AV_ZERO128 macrosRamiro Polla2024-08-262-1/+45
|
* avcodec/filter_units: Fix extradata and packets can have different bitstream ↵Zhao Zhili2024-08-241-1/+4
| | | | | | | | | | format Filter init can change extradata from avcc/hvcc to annexb format. With different passthrough logic, packets can still in avcc/hvcc format. Use same passthrough logic for init and filter. Signed-off-by: Zhao Zhili <[email protected]>
* fftools/ffplay: handle flip in display matrixZhao Zhili2024-08-241-4/+9
| | | | Signed-off-by: Zhao Zhili <[email protected]>
* avfilter: inherit input color range for videotoolbox filtersGnattu OC2024-08-243-1/+7
| | | | | | | | | The color range should be set to match the input when creating the VideoToolbox context. Otherwise, the new context will default to limited range, creates inconsistencies with full range inputs. Signed-off-by: Gnattu OC <[email protected]> Signed-off-by: Zhao Zhili <[email protected]>