summaryrefslogtreecommitdiff
path: root/libavcodec
Commit message (Collapse)AuthorAge
...
* avcodec/lossless_videoencdsp: Don't presume alignment in diff_bytesAndreas Rheinhardt2024-04-04
| | | | | | | | | | | The alignment of all the parameters in diff_bytes can be anything the despite the documentation claiming otherwise. 8ecd38312210d48ec9e50d78fc223d60e71a30ed was based around said documentation and is therefore insufficient to fix e.g. the misaligned loads that happen in the huffyuvbgra and huffyuvbgr24 vsynth FATE-tests. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/ppc/h264dsp: Fix left shifts of negative numbersAndreas Rheinhardt2024-04-04
| | | | | | PPC equivalent of c756b3fca240df75ffa28e75f2eb34834c10294d. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec, avformat/ffjni: fix duplicate JNI symbolsLeo Izen2024-04-04
| | | | | | | | | Use SHLIBOBJS and STLIBOBJS in the Makefiles for avcodec and avformat, and add a stub ffjni.c to libavformat, which allows the symbols to be duplicated for shared builds but not static builds. Signed-off-by: Leo Izen <leo.izen@gmail.com> Signed-off-by: Matthieu Bouron <matthieu.bouron@gmail.com>
* avcodec/wavarc: fix signed integer overflow in block type 6/19Michael Niedermayer2024-04-04
| | | | | | | | Fixes: signed integer overflow: -2088796289 + -91276551 cannot be represented in type 'int' Fixes: 67772/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WAVARC_fuzzer-6533568953122816 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/liblc3enc: don't force unspec channel layoutsJames Almer2024-04-04
| | | | | | We only care about channel count. Layout details will be ignored either way. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/liblc3dec: sanitize channel count in avctxJames Almer2024-04-04
| | | | | | Should prevent out of array accesses. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/liblc3: add encoding/decoding support of LC3 audio codecAntoine Soulier via ffmpeg-devel2024-04-04
| | | | | | | The LC3 audio codec is the default codec of Bluetooth LE audio. This is a wrapper over the liblc3 library (https://github.com/google/liblc3). Signed-off-by: Antoine Soulier <asoulier@google.com>
* avcodec/vvc: Rename vvc_?foo->fooAndreas Rheinhardt2024-04-04
| | | | | | | | A namespace is unnecessary here given that all these files are already in the vvc subfolder. Reviewed-by: Nuo Mi <nuomi2021@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vvc/vvc_inter_template: Fix left shift of negative numberAndreas Rheinhardt2024-04-04
| | | | | | Affected the vvc-conformance-WP_A_3 FATE test. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/libx265: do not arbitrarily limit color valuesJan Ekström2024-04-03
| | | | | | | | | | | Newer specifications such as H.273 have, and probably will further in the future add new values to these, so - instead of trying to update these limits - we should simply check if the values are not set to the value of "unspecified". This should allow newer avutil values such as IPT-C2 or YCgCo-R variants be passed to x265 itself, which apparently does its own validation further down the line.
* avcodec/options_table: map IPT-C2, YCgCo-R variants in colorspaceJan Ekström2024-04-03
|
* avcodec/tiff: Don't cast const away via bsearchAndreas Rheinhardt2024-04-03
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/libvpxenc: Avoid unused-variable warning if VP9 enc is disabledAndreas Rheinhardt2024-04-03
| | | | | Reviewed-by: James Zern <jzern@google.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/proresdec2: Rename to proresdecAndreas Rheinhardt2024-04-03
| | | | | | | | | | Once upon a time, there used to be a LGPL and a GPL ProRes decoder in FFmpeg; the current decoder evolved from the second of these. But given that it is now the only ProRes decoder we have, it's file should simply be named proresdec.c (which also brings it in line with its header). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/dovi_rpu: attach ext blocks to framesNiklas Haas2024-04-03
|
* avcodec/dovi_rpu: parse extension blocksNiklas Haas2024-04-03
| | | | | | | | We split the inner loop between v1 and v2 extension blocks to print a warning where an extension block was encountered in an unexpected context. Co-authored-by: quietvoid <tcChlisop0@gmail.com>
* avcodec/dovi_rpu: add ext_blocks array to DOVIContextNiklas Haas2024-04-03
|
* avcodec/dovi_rpu: verify RPU data CRC32Niklas Haas2024-04-03
| | | | | | | | | The Dolby Vision RPU contains a CRC32 to validate the payload against. The implementation is CRC32/MPEG-2. The CRC is only verified with the AV_EF_CRCCHECK flag. Co-authored-by: quietvoid <tcChlisop0@gmail.com>
* avcodec/dovi_rpu: strip container in separate stepNiklas Haas2024-04-03
| | | | | | | | | This ensures that `gb` in the following section is fully byte-aligned, points at the start of the actual RPU, and ends on the CRC terminator. This is important for both calculation of the CRC, as well as dovi extension block parsing (which aligns to byte boundaries in various places).
* avcodec/dovi_rpu: switch to AVERROR_INVALIDDATANiklas Haas2024-04-03
| | | | Instead of AVERROR(EINVAL)
* avutil/dovi_meta: add AVDOVIDataMapping.nlq_pivotsquietvoid2024-04-03
| | | | | | | | | The NLQ pivots are not documented but should be present in the header for profile 7 RPU format. It has been verified using Dolby's verification toolkit. Signed-off-by: quietvoid <tcChlisop0@gmail.com> Signed-off-by: Niklas Haas <git@haasn.dev>
* lavc/vaapi_encode: convert from lambda to qpHaihao Xiang2024-04-03
| | | | | | | When AV_CODEC_FLAG_QSCALE is set, the value of avctx->global_quality is lambda. Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* lavc/vaapi_encode: Add VAAPI version check for BLBRCFei Wang2024-04-03
| | | | | | Fix build fail when VAAPI version less than 0.39.2. Signed-off-by: Fei Wang <fei.w.wang@intel.com>
* avcodec/d3d12va_decode: remove extra spaces for declarationTong Wu2024-04-03
| | | | Signed-off-by: Tong Wu <tong1.wu@intel.com>
* avcodec/exr: Dont use 64bits to hold 6bitsMichael Niedermayer2024-04-03
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/exr: Check for remaining bits in huf_unpack_enc_table()Michael Niedermayer2024-04-03
| | | | | | | | Fixes: Timeout Fixes: 67645/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_fuzzer-6308760977997824 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/apedec: Use NABS to avoid undefined negationMichael Niedermayer2024-04-03
| | | | | | | | Fixes: negation of -2147483648 cannot be represented in type 'int32_t' (aka 'int'); cast to an unsigned type to negate this value to itself Fixes: 67738/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_APE_fuzzer-5444313212321792 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hevc_ps: --typoMichael Niedermayer2024-04-03
| | | | | | | | | Fixes: null pointer dereference Fixes: 67737/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-4858162608930816 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mfenc: expose more properties of the media foundation encoderMark Samuelson2024-04-02
|
* avcodec/vvc_refs: don't ask for a "Inter layer ref" sampleJames Almer2024-04-02
| | | | | | The FATE suite has two already. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/vvcdec: inter prediction, support subpictureNuo Mi2024-04-02
| | | | | | | | | | | | | | | passed files: LMCS_B_Dolby_2.bit CodingToolsSets_E_Tencent_1.bit SUBPIC_A_HUAWEI_3.bit SUBPIC_B_HUAWEI_3.bit SUBPIC_C_ERICSSON_1.bit SUBPIC_D_ERICSSON_1.bit SUBPIC_E_MediaTek_1.bit passed dvb conformance files (https://dvb.org/specifications/verification-validation/vvc-test-content): VVC_HDR_UHDTV1_OpenGOP_3840x2160_50fps_HLG10_mosaic.bit VVC_HDR_UHDTV1_OpenGOP_3840x2160_50fps_HLG10_PiP.bit
* avcodec/vvcdec: mvs, support subpictureNuo Mi2024-04-02
|
* avcodec/vvcdec: alf, support subpictureNuo Mi2024-04-02
|
* avcodec/vvcdec: sao, support subpictureNuo Mi2024-04-02
|
* avcodec/vvcdec: sao, refact out tile_edge arraysNuo Mi2024-04-02
|
* avcodec/vvcdec: refact, movie the lc->sc assignment to task_run_stage to ↵Nuo Mi2024-04-02
| | | | | | simplify the code This change also make the lc->sc assigned for run_sao
* avcodec/vvcdec: deblock, support subpictureNuo Mi2024-04-02
|
* avcodec/vvcdec: refact out deblock_is_boundaryNuo Mi2024-04-02
|
* avcodec/vvcdec: misc, rename x_ctb, y_ctb, ctu_x, ctu_y to rx, ry to avoid ↵Nuo Mi2024-04-02
| | | | misleading
* avcodec/vvcdec: ff_vvc_decode_neighbour, support subpictureNuo Mi2024-04-02
|
* avcodec/vvcdec: derive subpic position for PPSNuo Mi2024-04-02
|
* avcodec/vvcdec: support rectangular single-slice subpicsFrank Plowman2024-04-02
| | | | Co-authored-by: Nuo Mi <nuomi2021@gmail.com>
* avcodec/vvcdec: fix uninitialized last element of xxx_bd and ctb_to_xxx_bd ↵Frank Plowman2024-04-02
| | | | | | | | arrays see "6.5.1 CTB raster scanning, tile scanning, and subpicture scanning processes" Co-authored-by: Nuo Mi <nuomi2021@gmail.com>
* avcodec/vvcdec: misc, add specification name for pps membersNuo Mi2024-04-02
|
* avcodec/cbs_h266: fix sh_collocated_from_l0_flag and sh_collocated_ref_idx inferNuo Mi2024-04-02
| | | | we have to infer sh_collocated_from_l0_flag and sh_collocated_ref_idx from picture head if pps_rpl_info_in_ph_flag is true
* avcodec/vvcdec: NoBackwardPredFlag, only check active picturesNuo Mi2024-04-02
| | | | see "8.3.6 Decoding process for collocated picture and no backward prediction"
* avcodec/vlc: Use union of uint8_t and uint16_t in VLC_MULTI_ELEMAndreas Rheinhardt2024-04-02
| | | | | | It is more natural and simplifies writing these arrays. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vlc, bitstream: Fix multi VLC with uint8_t syms on BEAndreas Rheinhardt2024-04-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | VLC_MULTI_ELEM contains an uint8_t array that is supposed to be treated as an array of uint16_t when the used symbols have a size of two; otherwise it should be treated as just an array of uint8_t, but it was not always treated that way: vlc_multi_gen() initialized the first entry of the array by writing the symbol via AV_WN16; on big endian systems, the intended value was instead written into the second entry of the array (where it would likely be overwritten lateron during initialization). read_vlc_multi() also treated this case incorrectly: In case the code is so long that it needs a classical multi-stage lookup, the symbol has been written to the destination as if via AV_WN16. On little endian systems, this sets the correct first symbol and clobbers (zeroes) the next one, but the next one will be overwritten lateron anyway, so it won't be recognized. But on big-endian systems, the first symbol will be set to zero and the actually read symbol will be put into the slot for the next one (where it will be overwritten lateron). This commit fixes this; this fixes the magicyuv and utvideo FATE-tests on big endian arches. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/huffyuvencdsp: Fix load of misaligned valuesAndreas Rheinhardt2024-04-02
| | | | | | Affected many ffvhuff FATE tests. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/pngdsp: Fix unaligned accesses, effective type violationsAndreas Rheinhardt2024-04-02
| | | | | | | Affected the lscr fate-test (only visible on x86 if the SSE2 is disabled). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>