summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* lavc/hevc_ps: do not store delta_poc_s[01] in ShortTermRPShevcAnton Khirnov2024-04-10
| | | | | | | They are only used in vulkan_hevc and are not actually needed, as they can be computed from delta_poc. Reduces sizeof(HEVCSPS) by 16kB.
* lavc/hevc_ps: fix variable signedness in ff_hevc_decode_short_term_rps()Anton Khirnov2024-04-10
| | | | | | It is actually supposed to go negative in the loop over num_negative pics, but underflow does not break anything as the result is then assigned to a signed int.
* lavc/hevc_ps/HEVCSPS: change flags into size-1 bitfieldsAnton Khirnov2024-04-10
| | | | | | | Reduces sizeof(HEVCSPS) by 96 bytes. Also improve flag names: drop redundant suffixes and prefixes, and consistently use disabled/enabled.
* lavc/hevc_ps: reduce the size of used_by_curr_pic_lt_sps_flagAnton Khirnov2024-04-10
| | | | | It is currently an array of 32 uint8_t, each storing a single flag. A single uint32_t is sufficient.
* lavc/hevcdec: drop a useless execute() call with 1 jobAnton Khirnov2024-04-10
|
* lavc/hevcdec: allocate local_ctx as array of structs rather than pointersAnton Khirnov2024-04-10
| | | | It is more efficient and easier to manage.
* lavc/hevcdec: track local context count separately from WPP thread countAnton Khirnov2024-04-07
| | | | The latter can be lowered while decoding, which would lead to memleaks.
* lavc/hevcdec: rename HEVCContext.HEVClcList to local_ctxAnton Khirnov2024-04-07
| | | | It is more consistent with our naming conventions.
* lavc/decode: reindent after previous commitAnton Khirnov2024-04-05
|
* lavc: convert frame threading to the receive_frame() patternAnton Khirnov2024-04-05
| | | | | | | | | Reorganize the code such that the frame threading code does not call the decoders directly, but instead calls back into the generic decoding code. This avoids duplicating the logic that wraps the decoder invocation and will be useful in the following commits. Further work by Timo Rothenpieler <timo@rothenpieler.org>.
* lavc/internal: document the precise meaning of AVCodecInternal.drainingAnton Khirnov2024-04-05
| | | | | | | Also, set draining=1 in case a bitstream filter returns an internally-triggered EOF. While no bitstream filters currently inserted by decoders will do that, that may change in the future and it is better to cover this case.
* lavc/thread: move generic-layer API to avcodec_internal.hAnton Khirnov2024-04-05
| | | | | | thread.h currently contains both API for decoder use and functions internal to lavc generic layer. Move the latter to avcodec_internal.h, which is a more appropriate place for them.
* fate/ffmpeg: Avoid dependency on samplesAndreas Rheinhardt2024-04-05
| | | | | | | | | | | | | | | Creating vsynth_lena.yuv needs the FATE suite, yet several tests in ffmpeg.mak without a dependency on samples used it as input file. Fix this by using vsynth1.yuv (which does not have such a dependency) instead. Also use vsynth1.yuv in fate-shortest to avoid the samples dependency in this test, too. Fixes ticket #10947. Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/wavpack: Remove always-false checkAndreas Rheinhardt2024-04-04
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/dsd: Hoist branch out of loopAndreas Rheinhardt2024-04-04
| | | | | | | | This is possible by not converting from LSBF to MSBF; instead add LSBF LUTs. This approach necessitates reversing the initial values. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/dsddec: Fix decoding LSBF samplesAndreas Rheinhardt2024-04-04
| | | | | | | | | | ff_dsd2pcm_translate() works internally by converting LSBF input to MSBF upon reading; its buffer is therefore always MSBF and should therefore be initialized with MSBF silence; but this is not true since e3d8963c3cb5b8cd31460dd9b3b9dba2a2343bf5 which this patch effectively reverts. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/wavpack: Only initialize DSD data when encountering DSDAndreas Rheinhardt2024-04-04
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/wavpack: Add test for DSDAndreas Rheinhardt2024-04-04
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/dsd: Use double for LUTsAndreas Rheinhardt2024-04-04
| | | | | | Needed to make DSD->PCM conversion bitexact across arches. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/wavpack: Fix leak and segfault on reallocation errorAndreas Rheinhardt2024-04-04
| | | | | | | | | | | | | | av_realloc_f() frees the buffer it is given on allocation failure. But in this case, the buffer is an array of ownership pointers, causing leaks on error. Furthermore, the count of pointers is unchanged on error and the codec's close function uses it to free said ownership pointers, causing a NPD. This is a regression since 46412a8935e4632b2460988bfce4152c7dccce22. Fix this by switching to av_realloc_array(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* 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>
* avformat/pcm: Use 64bit in bitrate computationMichael Niedermayer2024-04-04
| | | | | | | | Fixes: signed integer overflow: 65792 * 65312 cannot be represented in type 'int' Fixes: 67819/clusterfuzz-testcase-minimized-ffmpeg_dem_WADY_fuzzer-5236100912185344 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/mxfdec: Check index_edit_rateMichael Niedermayer2024-04-04
| | | | | | | | Fixes: Assertion b >=0 failed at libavutil/mathematics.c:62 Fixes: 67811/clusterfuzz-testcase-minimized-ffmpeg_dem_MXF_fuzzer-5108429687422976 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swscale/utils: Fix xInc overflowMichael Niedermayer2024-04-04
| | | | | | | | Fixes: signed integer overflow: 2 * 1073741824 cannot be represented in type 'int' Fixes: 67802/clusterfuzz-testcase-minimized-ffmpeg_SWS_fuzzer-6249515855183872 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/iamf_parse: Check sound_systemMichael Niedermayer2024-04-04
| | | | | | | | Fixes: index 13 out of bounds for type 'const struct IAMFSoundSystemMap [13]' Fixes: 67796/clusterfuzz-testcase-minimized-ffmpeg_dem_IAMF_fuzzer-4554553191104512 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* 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>
* Changelog: fix typos for 7.0 sectionMarth642024-04-04
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* swscale/ppc/swscale_ppc_template: Reindent after the previous commitAndreas Rheinhardt2024-04-04
| | | | | Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* swscale/ppc/swscale_ppc_template: Remove code not passing checkasmAndreas Rheinhardt2024-04-04
| | | | | Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.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>
* changelog: update for 7.0Jean-Baptiste Kempf2024-04-04
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* libavfilter/dnn_io_proc: Take step into consideration when crop frameWenbin Chen2024-04-04
| | | | | Signed-off-by: Wenbin Chen <wenbin.chen@intel.com> Reviewed-by: Guo Yejun <yejun.guo@intel.com>
* libavfilter/dnn_backend_openvino: Check bbox's heightWenbin Chen2024-04-04
| | | | | | | Check bbox's height with frame's height rather than frame's width. Signed-off-by: Wenbin Chen <wenbin.chen@intel.com> Reviewed-by: Guo Yejun <yejun.guo@intel.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>
* configure: Only enable iamfdec, iamfenc when neededAndreas Rheinhardt2024-04-03
| | | | | | | | | | Since 591e27d1e7b21b66f81c53f381356c5e6f1f0451 they would always be compiled even when nothing uses them; for shared builds the default linker behaviour is to include them even when not needed. Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* configure: Fix iamfdec dependenciesAndreas Rheinhardt2024-04-03
| | | | | Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* doc/developer: (security) researchers should be creditedMichael Niedermayer2024-04-03
| | | | | Reviewed-by: Tomas Härdin <git@haerdin.se> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* 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.
* avfilter/{buffersrc,vf_setparams}: map IPT-C2, YCgCo-R variantsJan Ekström2024-04-03
|
* avcodec/options_table: map IPT-C2, YCgCo-R variants in colorspaceJan Ekström2024-04-03
|
* avutil/pix{desc,fmt}: add new matrix coefficients from H.273 v3Jan Ekström2024-04-03
| | | | | | | | | | | | * SMPTE ST 2128 IPT-C2 defines the coefficients utilized in DoVi Profile 5. Profile 5 can thus now be represented in VUI as {AVCOL_RANGE_JPEG, AVCOL_PRI_BT2020, AVCOL_TRC_SMPTE2084, AVCOL_SPC_IPT_C2, AVCHROMA_LOC_LEFT} (although other chroma sample locations are allowed). AVCOL_TRC_SMPTE2084 should in this case be interpreted as 'PQ with reshaping'. * YCgCo-Re and YCgCo-Ro define the bitexact YCgCo-R, where the number of bits added to a source RGB bit depth is 2 (i.e., even) and 1 (i.e., odd), respectively.
* configure: Add missing libdav1d/av1 decoders->dovi_rpu dependencyAndreas Rheinhardt2024-04-03
| | | | | Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/avfilter: Don't use av_uninitAndreas Rheinhardt2024-04-03
| | | | | | | GCC 9-13 do not emit warnings for this at all optimization levels even when -Wmaybe-uninitialized is not disabled. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/vf_grayworld: Remove empty options and AVClassAndreas Rheinhardt2024-04-03
| | | | | | | | | | This filter only had an AVClass and empty options because up until recently, avfilter_init_str() errored out when options were provided for a filter without an AVClass. But setting (generic) options is necessary to take advantage of timeline support. So with avfilter_init_str() fixed, the AVClass and the options can be removed. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/vf_hflip: Remove empty options and AVClassAndreas Rheinhardt2024-04-03
| | | | | | | | | | This filter only had an AVClass and empty options because up until recently, avfilter_init_str() errored out when options were provided for a filter without an AVClass. But setting (generic) options is necessary to take advantage of timeline support. So with avfilter_init_str() fixed, the AVClass and the options can be removed. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>