aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* avcodec/x86/hevc/dsp_init: Make ff_hevc_put_bi_w_* functions staticAndreas Rheinhardt2025-04-092-8/+7
| | | | | | They are always C wrappers around other functions. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/x86/hevc/dsp_init: Make ff_hevc_put_uni_w_* functions staticAndreas Rheinhardt2025-04-092-10/+15
| | | | | | These are always C functions. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/x86/hevc/mc: Remove unused functionsAndreas Rheinhardt2025-04-092-19/+0
| | | | | | Saved 11536B here. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/celp_math: Mark ff_celp_math_init() as av_coldAndreas Rheinhardt2025-04-092-3/+7
| | | | | | Also do the same for ff_celp_math_init_mips(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/lsp: Make ff_acelp_lsp2lpc() staticAndreas Rheinhardt2025-04-092-11/+9
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/celp_math: Reuse ff_scalarproduct_float_c()Andreas Rheinhardt2025-04-093-24/+11
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/x86/vvc/dsp_init: Make avg wrappers staticAndreas Rheinhardt2025-04-091-16/+4
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/x86/vvc/dsp_init: Make alf wrappers staticAndreas Rheinhardt2025-04-091-18/+6
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/x86/vvc/dsp_init: Make ff_vvc_apply_bdof_##bd##_avx2 staticAndreas Rheinhardt2025-04-091-15/+6
| | | | | | | These wrappers around ff_vvc_apply_bdof_avx2() are only used in dsp_init.c. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/x86/vvc/dsp_init: Make put wrappers staticAndreas Rheinhardt2025-04-091-36/+15
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/aes: use pthread_once to fill the static tablesJames Almer2025-04-091-23/+30
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* configure: Allow mixing declarations and statementsAndreas Rheinhardt2025-04-092-8/+0
| | | | | | | | | | | | | This C90 rule forces us to use a too big scope and should therefore be dropped. Given that we already require C11, all supported compilers can handle mixed declarations and statements just fine. Reviewed-by: Zhao Zhili <quinkblack-at-foxmail.com@ffmpeg.org> Reviewed-by: Marvin Scholz <epirat07@gmail.com> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Reviewed-by: softworkz . <softworkz-at-hotmail.com@ffmpeg.org> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avutil/tests/channel_layout: Improve enum range checkAndreas Rheinhardt2025-04-091-1/+1
| | | | | | | | | | Both GCC and Clang use unsigned as underlying type of an enum with no negative enumeration constants, making checks like "layout->order >= 0" here tautologically true. Clang warns about this. Combine both range checks by casting to unsigned to suppress this warning. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/h264: fix reference reorderingaverne2025-04-081-3/+2
| | | | | | | Fixes hardware decoders depending on long_term_pic_idx. Relevant ITU conformance test vectors: MR6_BT_B, MR8_BT_B Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avutil/dict: fix memleak in av_dict_set()James Almer2025-04-071-9/+10
| | | | | | Regression since 19e9a203b7b8e613840b055cdf68303a4fb84581. Signed-off-by: James Almer <jamrial@gmail.com>
* APIChanges & version bump for AV_DICT_DEDUPMichael Niedermayer2025-04-072-1/+4
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1enc: Fix remap > 0 with gbrp12, that is non floatMichael Niedermayer2025-04-071-1/+1
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1enc: avoid slices larger than 360x288 if no value is specifiedMichael Niedermayer2025-04-072-9/+13
| | | | | | This improves speed by providing more independent things for more CPUs Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1enc: Remove 65536 pixel per slice limit for remapMichael Niedermayer2025-04-072-8/+2
| | | | | | About 1% better compression with large slices Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1: Store slices*planes with the minimum bits needed after remapMichael Niedermayer2025-04-076-24/+91
| | | | | | | | | | This also means that if a plane*slice has only 1 color nothing is stored after the remap table This also corrects the RCT offset to the exact value after remap not a fixed 65536 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavf/id3v2dec: support multiple values and TIPL framesrcombs2025-04-071-21/+28
| | | | | | | | | | | | | Fixes https://trac.ffmpeg.org/ticket/6949 Ordinary text frames in ID3v2 are allowed to have multiple (null-separated) values. This technically isn't allowed in TXXX, but it's used in practice by Picard, and supporting it is harmless. TIPL/IPL (Involved People List) and TMCL (Musician Credits List) work similarly to TXXX, but alternate key-value-key-value. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavf/metadata: support duplicate keys in ff_metadata_convrcombs2025-04-073-5/+5
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavu/dict: add AV_DICT_DEDUPrcombs2025-04-072-0/+12
| | | | | | | This is useful when multiple metadata inputs may set the same value (e.g. both a container-specific header and an ID3 tag). Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* checkasm: add tests for AESRodger Combs2025-04-064-0/+67
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/x86/aes: ignore the upper bits in countJames Almer2025-04-061-1/+1
| | | | | | The argument is an int. Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/aes_ctr: simplify incrementing the counterJames Almer2025-04-051-10/+4
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/aes_ctr: simplify and optimize av_aes_ctr_crypt()James Almer2025-04-051-26/+21
| | | | | | | | | | | | | Process data in chunks of four or eight bytes, depending on host, instead of one at a time. before: 55561 decicycles in av_aes_ctr_crypt after: 52204 decicycles in av_aes_ctr_crypt Signed-off-by: James Almer <jamrial@gmail.com>
* lavu/aes: add x86 AESNI optimizationsRodger Combs2025-04-055-2/+139
| | | | | | | | | | | | | crypto_bench comparison for AES-128-ECB: lavu_aesni AES-128-ECB size: 1048576 runs: 1024 time: 0.596 +- 0.081 lavu_c AES-128-ECB size: 1048576 runs: 1024 time: 17.007 +- 2.131 crypto AES-128-ECB size: 1048576 runs: 1024 time: 0.612 +- 1.857 gcrypt AES-128-ECB size: 1048576 runs: 1024 time: 1.123 +- 0.224 tomcrypt AES-128-ECB size: 1048576 runs: 1024 time: 9.038 +- 0.790 Improved-By: Henrik Gramner <henrik@gramner.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/tests/aes_ctr: also randomize the encryption keyJames Almer2025-04-051-3/+24
| | | | | | And not just the IV. Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/tests/aes_ctr: reindent after the previous commitJames Almer2025-04-051-17/+17
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/tests/aes_ctr: also check the encrypted bufferJames Almer2025-04-051-0/+23
| | | | | | | | | | | | | | The test in its current form is just ensuring the plain text output is the same as the plain text input, not bothering to check if anything was done with the latter. av_aes_ctr_crypt() could be a simple memcpy under the hood and this test would still succeed. To check the integrity of the encrypted buffer, both the IV and the key need to be fixed. As such, and in order to not remove the existing randomization of the input IV, do two runs, one with random initialization data, and one with static data. Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/tests/aes_ctr: test more than a single block worth of dataJames Almer2025-04-051-2/+3
| | | | | | | This should exercise the implementation more thoroughly after an upcoming change. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/d3d12va_decode: enable reference-only modeAraz Iusubov2025-04-052-12/+165
| | | | | | | | | | | | | The Reference-Only feature in DirectX 12 is a memory optimization technique designed for video decoding scenarios. This feature requires that reference resources must be allocated with the D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY resource flag. Reference textures must also be separated from output textures. This feature is not supported in the current version of ffmpeg. Since AMD GPU uses this feature in Direct 12 decoder, ffmpeg does not support AMD GPU Direct 12 decoding. Signed-off-by: Tong Wu <wutong1208@outlook.com>
* avcodec/ffv1enc: Consider 2s x s slice configurationsMichael Niedermayer2025-04-041-1/+1
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1dec: Limit size of fltmap* to pixel numberMichael Niedermayer2025-04-043-15/+14
| | | | | | | This reduces needed memory and also removes the 65536 maximum for remap on the decoder side Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1: Only allocate fltmap* and bitmap when neededMichael Niedermayer2025-04-045-13/+44
| | | | | | This reduces memory requirements Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1: Allocate unit only when needed and only as large as neededMichael Niedermayer2025-04-042-1/+18
| | | | | | | | | | | | That is instead of a fixed 65536, we now allocate only as many as there are pixels. We also allocate only for the encoder and only when remapping is enabled and only for 32bit per sample This should reduce memory consumption, the 2nd array will be dealt with in a future commit Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1enc: run1start variables should fit in 32bitMichael Niedermayer2025-04-041-2/+2
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec: remove remaining references to avcodec_close()James Almer2025-04-041-8/+2
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/decode: Fix avcodec parameters when bsfs are enable by decoderZhao Zhili2025-04-051-0/+3
| | | | | | BSF can update extradata, e.g., vvc_mp4toannexb. If we don't copy bsf->par_out back to avcodec context, decoder can get extradata in mp4 format, while packets are in annexb format.
* libavcodec/amfenc: Setting the VBAQ property before the init call.Dmitrii Ovchinnikov2025-04-041-9/+10
|
* configure: Check for AVCaptureSession as dependency to avfoundationMartin Storsjö2025-04-041-2/+13
| | | | | | | | | This class is unavailable on tvOS before 17.0 (and macOS before 10.7 and iOS before 4.0, but those are fairly ancient). This makes sure that we don't try to build the avfoundation indevice for such OSes. Signed-off-by: Martin Storsjö <martin@martin.st>
* avfoundation: Fix compilation for OSes other than macOS and iOSMartin Storsjö2025-04-041-1/+3
| | | | | | | | | | | | | | E.g. tvOS doesn't have devicesWithMediaType. In principle, we could probably disable building the whole input device on such OSes, but that would either require testing explicitly for the OS type in configure (which we don't do anywhere so far), or test for individual objective C methods. This approach allows the code to compile, but no input devices will be found at runtime. Signed-off-by: Martin Storsjö <martin@martin.st>
* avfilter/vf_libplacebo: don't explode on zero FPS informationNiklas Haas2025-04-031-1/+1
| | | | | | | | While technically not specifiad as valid by the AVFilterLink documentation, it is currently possible to get an FPS of zero from various sources inside libavfilter (notably vf_buffersrc). Avoid a division by zero and resulting infinity when this happens.
* avformat: Fix AV1 RTP wrong log conditionChris Hodges2025-04-031-1/+1
| | | | | | | | Fixed warning about OBU count being wrong, which can only be determined when the number of OBUs in the header is non-zero, not the other way round. Signed-off-by: Chris Hodges <chris.hodges@axis.com>
* avutil/Makefile: Only include half2float, float2half when neededAndreas Rheinhardt2025-04-031-2/+7
| | | | | | | | They are not needed for shared builds (and because --gc-sections is not the default for shared builds, they were included by default included in libavutil since bf22c4cc3e005c01f50e233b1582fd1d8051aed9). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vdpau: Only include mpegvideodec.h when usedAndreas Rheinhardt2025-04-031-1/+2
| | | | | | | | | | | | | mpegvideodec.h includes mpegvideodata.h which in turn contains a "static const uint8_t *const ff_mpeg1_dc_scale_table = ff_mpeg12_dc_scale_table[0]"; yet if mpegvideo is disabled, ff_mpeg12_dc_scale_table is not available, yet a non-optimizing compiler (like GCC with -O0) may emit ff_mpeg1_dc_scale_table and therefore a reference to ff_mpeg12_dc_scale_table nevertheless. Fix this by only including mpegvideodec.h if it is needed. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* doc/{in,out}devs: Remove documentation for removed devicesAndreas Rheinhardt2025-04-032-146/+0
| | | | | | Namely bktr, opengl and sdl2. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/palette: Remove unused ff_srgb_u8_to_linear_int()Andreas Rheinhardt2025-04-032-11/+0
| | | | Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/x86/h26x/h265dsp: Remove unused functionsAndreas Rheinhardt2025-04-032-6/+8
| | | | | | | | | | | | | The ff_h2656_put_{uni_,}8tap_hv{32,64,128}_8_avx2 and ff_h2656_put_{uni_,}4tap_hv{64,128}_8_avx2 functions were unused and have been removed. This saved 3712B of .text here. (ff_h2656_put_{uni_,}4tap_hv32_8_avx2 are now only called from exactly one callsite (in ff_hevc_put_{uni_,}epel_hv32_8_avx2) and could be inlined.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>