summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* swscale/range_convert: fix mpeg ranges in yuv range conversion for non-8-bit ↵Ramiro Polla2024-12-05184-725/+880
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pixel formats There is an issue with the constants used in YUV to YUV range conversion, where the upper bound is not respected when converting to mpeg range. With this commit, the constants are calculated at runtime, depending on the bit depth. This approach also allows us to more easily understand how the constants are derived. For bit depths <= 14, the number of fixed point bits has been set to 14 for all conversions, to simplify the code. For bit depths > 14, the number of fixed points bits has been raised and set to 18, to allow for the conversion to be accurate enough for the mpeg range to be respected. The convert functions now take the conversion constants (coeff and offset) as function arguments. For bit depths <= 14, coeff is unsigned 16-bit and offset is 32-bit. For bit depths > 14, coeff is unsigned 32-bit and offset is 64-bit. x86_64: chrRangeFromJpeg8_1920_c: 2127.4 2125.0 (1.00x) chrRangeFromJpeg16_1920_c: 2325.2 2127.2 (1.09x) chrRangeToJpeg8_1920_c: 3166.9 3168.7 (1.00x) chrRangeToJpeg16_1920_c: 2152.4 3164.8 (0.68x) lumRangeFromJpeg8_1920_c: 1263.0 1302.5 (0.97x) lumRangeFromJpeg16_1920_c: 1080.5 1299.2 (0.83x) lumRangeToJpeg8_1920_c: 1886.8 2112.2 (0.89x) lumRangeToJpeg16_1920_c: 1077.0 1906.5 (0.56x) aarch64 A55: chrRangeFromJpeg8_1920_c: 28835.2 28835.6 (1.00x) chrRangeFromJpeg16_1920_c: 28839.8 32680.8 (0.88x) chrRangeToJpeg8_1920_c: 23074.7 23075.4 (1.00x) chrRangeToJpeg16_1920_c: 17318.9 24996.0 (0.69x) lumRangeFromJpeg8_1920_c: 15389.7 15384.5 (1.00x) lumRangeFromJpeg16_1920_c: 15388.2 17306.7 (0.89x) lumRangeToJpeg8_1920_c: 19227.8 19226.6 (1.00x) lumRangeToJpeg16_1920_c: 15387.0 21146.3 (0.73x) aarch64 A76: chrRangeFromJpeg8_1920_c: 6324.4 6268.1 (1.01x) chrRangeFromJpeg16_1920_c: 6339.9 11521.5 (0.55x) chrRangeToJpeg8_1920_c: 9656.0 9612.8 (1.00x) chrRangeToJpeg16_1920_c: 6340.4 11651.8 (0.54x) lumRangeFromJpeg8_1920_c: 4422.0 4420.8 (1.00x) lumRangeFromJpeg16_1920_c: 4420.9 5762.0 (0.77x) lumRangeToJpeg8_1920_c: 5949.1 5977.5 (1.00x) lumRangeToJpeg16_1920_c: 4446.8 5946.2 (0.75x) NOTE: all simd optimizations for range_convert have been disabled. they will be re-enabled when they are fixed for each architecture. NOTE2: the same issue still exists in rgb2yuv conversions, which is not addressed in this commit.
* swscale/aarch64/range_convert: saturate output instead of limiting inputRamiro Polla2024-12-052-26/+18
| | | | | | | | | | | | | | | | | | | | | | aarch64 A55: chrRangeFromJpeg8_1920_c: 28836.2 (1.00x) chrRangeFromJpeg8_1920_neon: 5312.6 (5.43x) 5313.9 (5.43x) chrRangeToJpeg8_1920_c: 44196.2 (1.00x) chrRangeToJpeg8_1920_neon: 6034.6 (7.32x) 5551.3 (7.96x) lumRangeFromJpeg8_1920_c: 15388.5 (1.00x) lumRangeFromJpeg8_1920_neon: 3150.7 (4.88x) 3152.3 (4.88x) lumRangeToJpeg8_1920_c: 23069.7 (1.00x) lumRangeToJpeg8_1920_neon: 3873.2 (5.96x) 3628.7 (6.36x) aarch64 A76: chrRangeFromJpeg8_1920_c: 6334.7 (1.00x) chrRangeFromJpeg8_1920_neon: 2264.5 (2.80x) 2344.5 (2.70x) chrRangeToJpeg8_1920_c: 11474.5 (1.00x) chrRangeToJpeg8_1920_neon: 2646.5 (4.34x) 2824.2 (4.06x) lumRangeFromJpeg8_1920_c: 4453.2 (1.00x) lumRangeFromJpeg8_1920_neon: 1104.8 (4.03x) 1104.5 (4.03x) lumRangeToJpeg8_1920_c: 6645.0 (1.00x) lumRangeToJpeg8_1920_neon: 1310.5 (5.07x) 1329.8 (5.00x)
* swscale/range_convert: saturate output instead of limiting inputRamiro Polla2024-12-055-10/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For bit depths <= 14, the result is saturated to 15 bits. For bit depths > 14, the result is saturated to 19 bits. x86_64: chrRangeFromJpeg8_1920_c: 2126.5 2127.4 (1.00x) chrRangeFromJpeg16_1920_c: 2331.4 2325.2 (1.00x) chrRangeToJpeg8_1920_c: 3163.0 3166.9 (1.00x) chrRangeToJpeg16_1920_c: 3163.7 2152.4 (1.47x) lumRangeFromJpeg8_1920_c: 1262.2 1263.0 (1.00x) lumRangeFromJpeg16_1920_c: 1079.5 1080.5 (1.00x) lumRangeToJpeg8_1920_c: 1860.5 1886.8 (0.99x) lumRangeToJpeg16_1920_c: 1910.2 1077.0 (1.77x) aarch64 A55: chrRangeFromJpeg8_1920_c: 28836.2 28835.2 (1.00x) chrRangeFromJpeg16_1920_c: 28840.1 28839.8 (1.00x) chrRangeToJpeg8_1920_c: 44196.2 23074.7 (1.92x) chrRangeToJpeg16_1920_c: 36527.3 17318.9 (2.11x) lumRangeFromJpeg8_1920_c: 15388.5 15389.7 (1.00x) lumRangeFromJpeg16_1920_c: 15389.3 15388.2 (1.00x) lumRangeToJpeg8_1920_c: 23069.7 19227.8 (1.20x) lumRangeToJpeg16_1920_c: 19227.8 15387.0 (1.25x) aarch64 A76: chrRangeFromJpeg8_1920_c: 6334.7 6324.4 (1.00x) chrRangeFromJpeg16_1920_c: 6336.0 6339.9 (1.00x) chrRangeToJpeg8_1920_c: 11474.5 9656.0 (1.19x) chrRangeToJpeg16_1920_c: 9640.5 6340.4 (1.52x) lumRangeFromJpeg8_1920_c: 4453.2 4422.0 (1.01x) lumRangeFromJpeg16_1920_c: 4414.2 4420.9 (1.00x) lumRangeToJpeg8_1920_c: 6645.0 5949.1 (1.12x) lumRangeToJpeg16_1920_c: 6005.2 4446.8 (1.35x) NOTE: all simd optimizations for range_convert have been disabled except for x86, which already had the same behaviour. they will be re-enabled when they are fixed for each architecture.
* checkasm/sw_range_convert: test negative input valuesRamiro Polla2024-12-051-0/+14
|
* avformat/mov: add support for pssh boxMalek Assaad2024-12-053-5/+50
| | | | | | | * Enable PSSH box writing to mov & moof. * Enable senc, saio & saiz writing to moof when writing fragments. Signed-off-by: James Almer <[email protected]>
* avutil/tests/color_utils: add tests for av_csp_itu_eotfNiklas Haas2024-12-052-0/+2760
|
* avutil/csp: add EOTF function definitionsNiklas Haas2024-12-054-1/+242
| | | | | | | | | | | | The existing av_csp_trc_func_from_id() mostly implements the OETF, except for PQ. As such, we are currently missing a precise definition of an ITU-R EOTF. Introduce the new functions av_csp_itu_eotf() and av_csp_itu_eotf_inv(), to fill this void. Note that this is not possible in all cases, e.g. AVCOL_TRC_LOG which has no corresponding EOTF definition in any ITU-R standard. Note that we cannot implement the proper HLG and SMPTE 428 OOTFs without access to all three color channels, because they are not independent per channel. As a result, we need to define them on double[3] instead of double (*func)(double).
* avutil/csp: add av_csp_trc_inv_from_id()Niklas Haas2024-12-056-318/+470
| | | | | Mathematical inverse of av_csp_trc_from_id(), plus testing to make sure it roundtrips correctly with the corresponding TRC.
* avutil/tests/color_utils: clean up slightly (cosmetic)Niklas Haas2024-12-052-320/+322
| | | | | Rewrite this test slightly to fix the formatting, improve the readability of the output, and eliminate some unnecessary branching.
* avutil/csp: eliminate redundant branchNiklas Haas2024-12-051-5/+1
|
* avutil/csp: fix documentation of av_csp_trc_functionNiklas Haas2024-12-051-2/+6
| | | | | | This explanation was inaccurate and highly misleading. The new wording is taken more or less directly from ITU-T H.273, and also matches my understanding of these functions.
* swscale/utils: disable full_chr_h_input optimization for odd widthNiklas Haas2024-12-041-1/+1
| | | | | | | | | | | | | | | | | The basic problem here is that the rgb*ToUV_half_* functions hard-code a bilinear downsample from src[i] + src[i+1], with no bounds check on the i+1 access. Due to the signature of the function, we cannot easily plumb the "true" width into the function body to perform a bounds check. Similarly, we cannot easily pre-pad the input because it is typically reading from the (const) input frame, which would require a full memcpy to pad. Either of these solutions are more trouble than the feature is worth, so just disable it on odd input sizes. Fixes: use of uninitialized value Fixes: ticket #11265 Signed-off-by: Niklas Haas <[email protected]> Sponsored-by: Sovereign Tech Fund
* swscale/graph: fix memleak of cascaded graphsNiklas Haas2024-12-041-5/+7
| | | | | | | | Just free them directly and discard the parent context. Fixes: bf738412e849bcb8c63a330dfb814281b3d97f6b Signed-off-by: Niklas Haas <[email protected]> Sponsored-by: Sovereign Tech Fund
* avcodec/hevc: Add wasm simd128 idctZhao Zhili2024-12-047-0/+957
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Benchmark with wasmtime: wasmtime checkasm --test=hevc_idct --benchmark hevc_idct_4x4_8_c: 20.8 ( 1.00x) hevc_idct_4x4_8_simd128: 10.2 ( 2.02x) hevc_idct_4x4_10_c: 21.0 ( 1.00x) hevc_idct_4x4_10_simd128: 10.2 ( 2.05x) hevc_idct_8x8_8_c: 198.0 ( 1.00x) hevc_idct_8x8_8_simd128: 41.5 ( 4.77x) hevc_idct_8x8_10_c: 197.8 ( 1.00x) hevc_idct_8x8_10_simd128: 41.8 ( 4.74x) hevc_idct_16x16_8_c: 1385.2 ( 1.00x) hevc_idct_16x16_8_simd128: 291.8 ( 4.75x) hevc_idct_16x16_10_c: 1375.0 ( 1.00x) hevc_idct_16x16_10_simd128: 281.2 ( 4.89x) hevc_idct_32x32_8_c: 13479.0 ( 1.00x) hevc_idct_32x32_8_simd128: 1541.5 ( 8.74x) hevc_idct_32x32_10_c: 13448.0 ( 1.00x) hevc_idct_32x32_10_simd128: 1541.5 ( 8.72x) Decoding test: 1. Without the optimization: $ wasmtime --wasi threads --dir=/ ./ffmpeg -cpuflags 0 -i 265.mp4 -an -t 120 -f null - -benchmark frame= 2880 fps= 94 q=-0.0 Lsize=N/A time=00:02:00.00 bitrate=N/A speed=3.92x 2. With the optimization: $ wasmtime --wasi threads --dir=/ ./ffmpeg -i 265.mp4 -an -t 120 -f null - -benchmark frame= 2880 fps=110 q=-0.0 Lsize=N/A time=00:02:00.00 bitrate=N/A speed=4.58x Signed-off-by: Zhao Zhili <[email protected]>
* tests/checkasm: Add partial support for wasmZhao Zhili2024-12-042-2/+21
| | | | | | | | | WASI mssing signal and siglongjmp support. This patch workaround build error and add simd128 flag. Please note that many tests use large array on stack, so you need to increase the stack size when build checkasm, e.g., --extra-ldflags='-Wl,-z,stack-size=10485760' Signed-off-by: Zhao Zhili <[email protected]>
* configure: Add wasm as a fake archZhao Zhili2024-12-049-1/+76
| | | | | | | | | And add wasm simd128 flag, so we can add simd128 optimizations. It can be enabled by put -msimd128 to extra cflags. There is no runtime detection on simd128 support yet. I think that needs to be done with JavaScript. Signed-off-by: Zhao Zhili <[email protected]>
* avcodec/webp: Check ref_x/yMichael Niedermayer2024-12-041-0/+3
| | | | | | | | Fixes: 70991/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WEBP_fuzzer-5544067620995072 Fixes: use of uninintailized value Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/ilbcdec: Initialize tempbuff2Michael Niedermayer2024-12-041-1/+1
| | | | | | | | Fixes: Use of uninitialized value Fixes: 71350/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ILBC_fuzzer-6322020827070464 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/rv60dec: Check qp for intraMichael Niedermayer2024-12-041-0/+2
| | | | | | | | | | | The rv60_qp_to_idx table only supports qp up to 31 on intra Fixes: global-buffer-overflow Fixes: 377543818/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_RV60_fuzzer-5160167345291264 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: Peter Ross <[email protected]> Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/ffv1enc: Add enum for qtableMichael Niedermayer2024-12-043-2/+20
| | | | Signed-off-by: Michael Niedermayer <[email protected]>
* swscale/swscale_unscaled: Fix odd height with nv24_to_yuv420p_chroma()Michael Niedermayer2024-12-041-0/+2
| | | | | | | | | | Fixes: out of array read Fixes: 71726/clusterfuzz-testcase-ffmpeg_SWS_fuzzer-5876893532880896 Fixes: 377735917/clusterfuzz-testcase-minimized-ffmpeg_SWS_fuzzer-6686071112400896 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Approved-by: Ramiro Polla <[email protected]> Signed-off-by: Michael Niedermayer <[email protected]>
* avformat/mpegts: is_pes_stream() use switch caseScott Theisen2024-12-031-2/+12
| | | | | | | also add STREAM_TYPE_PRIVATE_SECTION since a private_section() is not a PES_packet(). Signed-off-by: Marton Balint <[email protected]>
* avformat/mpegts*: reduce use of magic numbersScott Theisen2024-12-033-117/+170
| | | | | | | | | | | | Note ISO/IEC 13818-1 defines an Extension_descriptor with descriptor_tag value 0x3f (63), so I kept the DVB comment. I don't know what defines stream_type value 0x8a as DTS. I don't have any Blu-ray standards so I don't know where those stream_type values are defined. Signed-off-by: Marton Balint <[email protected]>
* lavc/vvc: Fix overflow in MVD derivationFrank Plowman2024-12-031-1/+1
| | | | | | | H.266 (V3) section 7.4.12.8: "The value of lMvd[ compIdx ] shall be in the range of −2^{17} to 2^{17} − 1, inclusive." Signed-off-by: Frank Plowman <[email protected]>
* lavc/vvc: Fix derivation of LmcsMaxBinIdxFrank Plowman2024-12-031-1/+1
| | | | | | | | Per H.266 (V3) section 7.4.3.19, LmcsMaxBinIdx is set equal to 15 - lmcs_delta_max_bin_idx. The previous code instead had it equal to 15 - lmcs_min_bin_idx. This could cause decoder mismatches. Signed-off-by: Frank Plowman <[email protected]>
* lavc/vvc: Store MIP information over entire CU areaFrank Plowman2024-12-031-2/+2
| | | | | | | | | | | | | | Previously, the code only stored the MIP mode and transpose flag in the relevant tables at the top-left corner of the CU. This information ends up being retrieved in ff_vvc_intra_pred_* not based on the CU position but instead the transform unit position (specifically, using the x0 and y0 from get_luma_predict_unit). There might be multiple transform units in a CU, hence the top-left corner of the transform unit might not coincide with the top-left corner of the CU. Consequently, we need to store the MIP information at all positions in the CU, not only its top-left corner, as we already do for the MIP flag. Signed-off-by: Frank Plowman <[email protected]>
* lavc/vvc: Don't check motion estimation region for IBCFrank Plowman2024-12-031-2/+2
| | | | | | | | | | | The final parameter of check_available determines whether the motion estimation region constraints imposed in section 8.5.2.3 of H.266 (V3) on MVP candidates apply to the current candidate or not. In the case of IBC spatial merge candidates they do not, as their availability is dependent only on the criteria described in sections 8.6.2.3 and 6.4.4, which do not include this constraint on the motion estimation region. Signed-off-by: Frank Plowman <[email protected]>
* lavc/vvc: Use second definition of MinQtLog2SizeIntraC if relevantFrank Plowman2024-12-031-1/+1
| | | | | | | | | | | | | | | | | | | MinQtLog2SizeIntraC is usually (eq. (51) from VVCv3) defined as sps_log2_diff_min_qt_min_cb_intra_slice_chroma + MinCbLog2SizeY However, in the case ph_log2_diff_min_qt_min_cb_intra_slice_chroma is present, it is instead (eq. (83) from VVCv3) defined as ph_log2_diff_min_qt_min_cb_intra_slice_chroma + MinCbLog2SizeY When ph_log2_diff_max_bt_min_qt_intra_slice_chroma and ph_log2_diff_max_tt_min_qt_intra_slice_chroma are present, so is ph_log2_diff_min_qt_min_cb_intra_slice_chroma, and so we should use the second definition of MinQtLog2SizeIntraC, rather than the first, when calculating the bounds for these syntax elements. Signed-off-by: Frank Plowman <[email protected]>
* avcodec/cbs_h266: Fix typoAlexander Strasser2024-12-031-1/+1
| | | | | | | Introduced in commit 98698ed3c24bfd0b1e6e6db943b5f25f6046cee7 Fixes: CID1635788 CID1635789 Signed-off-by: Alexander Strasser <[email protected]>
* doc/codecs: add missing enhancements value for export_side_dataJames Almer2024-12-021-0/+2
| | | | Signed-off-by: James Almer <[email protected]>
* doc/filters: add an entry for vf_lcevcJames Almer2024-12-021-0/+5
| | | | Signed-off-by: James Almer <[email protected]>
* avutil/mem_internal: Don't use alignas for MSVCZhao Zhili2024-12-021-0/+4
| | | | | | | MSVC messed up standard C features, again. Signed-off-by: Zhao Zhili <[email protected]> Reviewed-by: James Almer <[email protected]>
* avcodec/hevc/hevcdec: initialize qp_y_tabMichael Niedermayer2024-12-021-1/+1
| | | | | | | | | | This does not replicate on my setup, thus this is a blind fix based on ossfuzz trace Fixes: use of uninitialized value Fixes: 71747/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-5427736120721408 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avformat/qcp: Check for read failure in headerMichael Niedermayer2024-12-021-1/+2
| | | | | | | | Fixes: Use of uninitialized value Fixes: 71551/clusterfuzz-testcase-minimized-ffmpeg_dem_QCP_fuzzer-4647386712965120 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/eatgq: Check bytestream2_get_buffer() for failureMichael Niedermayer2024-12-021-1/+2
| | | | | | | | Fixes: Use of uninitialized memory Fixes: 71546/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EATGQ_fuzzer-5607656650244096 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/eatgq: move array to where it is usedMichael Niedermayer2024-12-021-1/+1
| | | | Signed-off-by: Michael Niedermayer <[email protected]>
* avformat/dxa: check bpcMichael Niedermayer2024-12-021-0/+2
| | | | | | | | Fixes: integer overflow: -2147483648 - 1 cannot be represented in type 'int' Fixes: 373971762/clusterfuzz-testcase-minimized-ffmpeg_dem_DXA_fuzzer-4880491112103936 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* swscale/slice: clear allocated memory in alloc_lines()Michael Niedermayer2024-12-021-1/+1
| | | | | | | | Fixes: use of uninitialized memory in hScale16To15_c() Fixes: 373924007/clusterfuzz-testcase-minimized-ffmpeg_SWS_fuzzer-5841199968092160 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/rangecoder: eliminate main branch from renorm_encoder()Michael Niedermayer2024-12-021-9/+4
| | | | Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/rangecoder: Remove unneeded outstanding byte maskMichael Niedermayer2024-12-021-1/+1
| | | | Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/rangecoder: Avoid checking for the first byte on every renormalizationMichael Niedermayer2024-12-021-4/+3
| | | | Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/rangecoder: Move refill check out of refill() functionMichael Niedermayer2024-12-021-4/+4
| | | | | | | If the function is not inlined, this is more efficient. Also it allows calling refill() without the check Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/rangecoder: Do not loop renormalizationMichael Niedermayer2024-12-021-1/+1
| | | | Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/h2645_parse: Ignore NAL with nuh_layer_id == 63Michael Niedermayer2024-12-021-2/+4
| | | | | | | | | | | | Comply with "For purposes other than determining the amount of data in the decoding units of the bitstream, decoders shall ignore all data that follow the value 63 for nuh_layer_id in a NAL unit" Rec. ITU-T H.265 v8 (08/2021) Page 67 Fixes: index 63 out of bounds for type 'const int8_t[63]' (aka 'const signed char[63]') Fixes: clusterfuzz-testcase-fuzzer_loadfile-5109286752026624 Reported-by: Kacper Michajlow <[email protected]> Found-by: ossfuzz Signed-off-by: Michael Niedermayer <[email protected]>
* doc/encoders: very basic FFv1 documentationMichael Niedermayer2024-12-021-0/+38
| | | | Signed-off-by: Michael Niedermayer <[email protected]>
* swscale/ppc: disable YUV2RGB AltiVec accelerationSean McGovern2024-12-021-0/+8
| | | | | | | | | The FATE test 'checkasm-sw_yuv2rgb' currently fails on this platform, in both little- and big-endian configurations with AltiVec enabled. Disable it for the time being. Signed-off-by: Michael Niedermayer <[email protected]>
* avformat/iamf_parse: reject ambisonics mode > 1Michael Niedermayer2024-12-021-1/+1
| | | | | | | | | | ambisonics mode > 1 does not initialize any layer but layer 0 is unconditionally dereferenced Fixes: poc-2024-11 Fixes: null pointer dereference Found-by: 苏童 <[email protected]> Signed-off-by: Michael Niedermayer <[email protected]>
* doc/demuxers/dvdvideo: seeking is supported, remove outdated statementMarth642024-12-011-1/+0
| | | | Signed-off-by: Marth64 <[email protected]>
* avformat/dvdvideodec: check return code of ff_dvdclut_yuv_to_rgb()Marth642024-12-011-1/+4
| | | | Signed-off-by: Marth64 <[email protected]>
* avformat/dvdvideodec: fix missing last chapter marker due to off-by-oneMarth642024-12-011-1/+1
| | | | | | | When using fast chapter marker calculation (default), the last marker is inadverdently ignored due to an off-by-one. Signed-off-by: Marth64 <[email protected]>