Commit graph

51854 commits

Author SHA1 Message Date
Andreas Rheinhardt
ca48e7bb70 avcodec/sbcdsp_data: Make data static
This data is only used by sbcdsp.c, so delete sbcdsp_data.h,
make a header out of sbcdsp_data.c and make the data contained
therein static.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-04-02 09:25:46 +02:00
Andreas Rheinhardt
0ce8868878 avcodec/hevc/hevcdec: Use bitfield instead of array of flags
It is simpler, avoids several loops and also makes GCC no longer
emit bogus -Wstringop-overflow= warnings.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-04-02 09:25:38 +02:00
Andreas Rheinhardt
ffa56f73a9 avcodec/ac3dec: Read spx flags at once, not one bit at a time
Doing so gets rid of a stupid GCC -Wstringop-overflow= warning
(GCC somehow believes that fbw_channels can be 7 with the old
form of the code, so that channel_uses_spx[7] would be written
to, but now it no longer believes so).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-04-02 09:25:30 +02:00
Andreas Rheinhardt
2204efc2a6 avcodec/dct: Make declarations and definitions match
GCC considers declarations using a parameter of pointer
type (or equivalently a parameter using an array of unspecified
dimensions) to be inconsistent with a declaration using
a known-length array type and emits a -Warray-parameter warning
for several ff_j_rev_dct* functions for this.

This patch makes the declarations match the actual definitions
to suppress these (IMO nonsensical) warnings.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-04-02 09:25:24 +02:00
Cameron Gutman
839b41991d avcodec/nvenc: unify CBR filler data insertion for all codecs
Previously, AV1 used filler data with CBR by default while H.264
and HEVC may or may not depending on driver version. Make this
consistent by using not filler data in CBR mode for all codecs.

Since there are valid reasons to use CBR with or without filler,
also add a cbr_padding option to allow users to override this.

Signed-off-by: Cameron Gutman <aicommander@gmail.com>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2025-04-01 19:13:38 +02:00
Martin Storsjö
d7d6e9ae69 videotoolboxenc: Add an iOS version condition for VTCopySupportedPropertyDictionaryForEncoder
This fixes building for iOS versions older than 11.0.

Signed-off-by: Martin Storsjö <martin@martin.st>
2025-04-01 18:28:29 +03:00
Michael Niedermayer
1d2c391005
avcodec/ffv1enc: Add -remap_optimizer option
This allows tuning how much effort (time) the encoder spends on
optimizing the remap table

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2025-03-31 02:42:20 +02:00
Michael Niedermayer
f765085115
avcodec/ffv1enc: Eliminate RemapEncoderState
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2025-03-31 02:42:20 +02:00
Michael Niedermayer
3faee894fc
avcodec/ffv1enc: Eliminate copy_state
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2025-03-31 02:42:19 +02:00
Michael Niedermayer
2f0500f22c
avcodec/ffv1enc: Better heuristic for selecting mul values.
This increases the search space from the hardcoded 17 tables
to ~ 23^512 tables

The mul_count choice is chosen by bruteforce

All testcases tried, improve

Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2025-03-31 02:42:19 +02:00
Andreas Rheinhardt
948a78365b avcodec/dxa: Remove set-but-unused variable
Forgotten in 6e80ec9dc5.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-30 21:31:16 +02:00
Tristan Matthews
c14b837ded speexdec: fix framesize for ultra-wideband
This matches how the libspeex decoder is calculating frame size (except in clamp form).

Fixes #11495

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-30 12:19:43 -03:00
Andreas Rheinhardt
5fac8d062d avcodec/ituh263enc: Add necessary #if checks for FLV encoder
Fixes compilation in case where the FLV encoder is disabled
with any other H.263 based encoder enabled.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-29 01:48:34 +01:00
Andreas Rheinhardt
d3b940b0ff avcodec/rv10: Make logmessage endian-independent
Also fix a potential effective-type violation.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-29 01:47:11 +01:00
Andreas Rheinhardt
13f06df4e1 avcodec/rv10: Remove pointless casts
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-29 01:45:48 +01:00
Andreas Rheinhardt
116fd73143 avcodec/mpegvideo: Don't set [bf]_code for non-MPEG-4 decoders
It is only used by encoders and the MPEG-4 decoder.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-29 01:44:22 +01:00
Andreas Rheinhardt
8e070e1a75 avcodec/snowenc: Don't allocate obmc_scratchpad separately
Put it into SnowEncContext instead. Also use the proper type
(it is only used as IDWTELEM aka short).

(The allocation code allocated it in units of uint32_t,
yet it was never used in this way. I made the array so big
that the size (in bytes) does not change.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-29 01:42:55 +01:00
Andreas Rheinhardt
f80a939a2e avcodec/motion_est: Put map, me_map into MotionEstContext
They have a fixed size and given that nowadays
MotionEstContext is no longer in any decoder's private context,
it is not wasteful to just put it into there.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-29 01:41:19 +01:00
Andreas Rheinhardt
074d8343d6 avcodec/mpegvideo_enc: Don't use unnecessarily much stack
encode_thread() puts two MPVEncContexts (2*6516B here)
on the stack and zeroes one of them in order to
temporarily store the variables that get changed
during encoding a macroblock (when there is more than
one candidate type for a macroblock). This is wasteful
and therefore this commit adds a small (328B here) structure
to store exactly the fields that actually need to be backed
up. Then one can extend MPVEncContext without fearing
too use up to much stack.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-29 01:38:30 +01:00
Andreas Rheinhardt
f8360ed629 avcodec/mpegvideo_enc: Pass data_partitioning directly
This avoids having to store it in the backup MPVEncContext.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-29 01:37:04 +01:00
Andreas Rheinhardt
1422f0057c avcodec/x86/mpegvideoenc_template: Remove remnants of MMX
Forgotten in 7284ab789d.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-29 01:30:15 +01:00
James Almer
b6bcc1c3c2 avcodec/exr: deprecate gamma and apply_trc options
Decoders should not modify sample values, as that's the job of a library like swscale.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:44:38 -03:00
James Almer
b338d1b35b libs: bump major version for all libraries
Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:44:34 -03:00
Andreas Rheinhardt
aaf3cd9ddb avcodec/raw: Duplicate raw_pix_fmt_tags into fourcc2pixfmt tool
Do this instead of exporting raw_pix_fmt_tags
via avpriv_get_raw_pix_fmt_tags().

For shared builds this will lead to an increase in the
combined size of the lavc and fourcc2pixfmt binaries
(because the overhead of exporting avpriv_get_raw_pix_fmt_tags()
is dwarfed by the size of the array), but given that
fourcc2pixfmt is a test tool that is not widely distributed
it does not really matter. For static builds the opposite
is true (the rest of lavc/raw.o is no longer pulled into
the test tool and the getter can be removed, too).

This patch has the additional benefit of removing
struct PixelFormatTag from the ABI.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-28 14:33:31 -03:00
Andreas Rheinhardt
0ccf385e13 avutil/float_dsp: Unavpriv avpriv_scalarproduct_float_c()
Not worth the overhead of exporting it.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:08 -03:00
Andreas Rheinhardt
b306683d12 avutil/frame: Port AVFrame.private_ref to RefStruct API
This is possible without deprecation period, because said field
is documented as only for our libav* libraries and not the general
public.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:08 -03:00
James Almer
97609725f8 avutil: remove deprecated FF_API_H274_FILM_GRAIN_VCS
Deprecated since 2024-03-23.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:08 -03:00
James Almer
6e80ec9dc5 avutil: remove deprecated FF_API_PALETTE_HAS_CHANGED
Deprecated since 2023-05-18.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:08 -03:00
James Almer
1061689ad8 avutil: remove deprecated FF_API_FRAME_KEY
Deprecated since 2023-05-04.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:08 -03:00
James Almer
8af3331883 avutil: remove deprecated FF_API_INTERLACED_FRAME
Deprecated since 2023-05-04.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:08 -03:00
James Almer
ebd6d07ab9 avutil: remove deprecated FF_API_FRAME_PKT
Deprecated since 2023-03-20.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:08 -03:00
James Almer
10f199cfa5 avutil: remove deprecated FF_API_HDR_VIVID_THREE_SPLINE
Deprecated since 2023-03-17.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
James Almer
b439ea4320 avcodec/version_major: postpone some deprecations until the next bump
They are either too recent, or need more work before they can be removed.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
James Almer
bd58a68dbc avcodec: remove deprecated FF_API_QUALITY_FACTOR
Deprecated since 2024-03-29.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
James Almer
638690b872 avcodec: remove deprecated FF_API_VDPAU_ALLOC_GET_SET
Deprecated since 2024-03-07.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
James Almer
fbaa8c3a7d avcodec: remove deprecated FF_API_BUFFER_MIN_SIZE
Deprecated since 2024-02-20.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
James Almer
0d48da2db0 avcodec: remove deprecated FF_API_AVCODEC_CLOSE
Deprecated since 2024-02-09.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
James Almer
8224327698 avcodec: remove deprecated FF_API_FF_PROFILE_LEVEL
Deprecated since 2023-09-06.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
James Almer
84c64e079c avcodec: remove deprecated FF_API_AVFFT
Deprecated since 2023-09-01.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
James Almer
5828624246 avcodec: remove deprecated FF_API_DROPCHANGED
Deprecated since 2023-07-15.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
James Almer
7d07723db5 avcodec: remove deprecated FF_API_TICKS_PER_FRAME
Deprecated since 2023-05-15.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
James Almer
c29a1cbd03 avcodec: remove deprecated FF_API_SUBFRAMES
Deprecated since 2023-05-15.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:06 -03:00
Michael Niedermayer
bddb9c232d
avcodec/raw: Add GBR(A)PF16/32LE/BE
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2025-03-28 15:23:28 +01:00
Michael Niedermayer
226fcc7258
avcodec/ffv1enc: Store run1start_mul_index instead of computing
There is a special case I missed, its simpler to just store

Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2025-03-27 22:02:51 +01:00
Michael Niedermayer
f334eadd36
avcodec/ffv1enc: Fix off by 1 in assert
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2025-03-27 22:02:46 +01:00
Michael Niedermayer
d4a23e6640
avcodec/ffv1enc: Fix end handling
This also produces smaller files

Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2025-03-27 22:02:42 +01:00
Michael Niedermayer
430065a97b
avcodec/ffv1dec: Fix end handling
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2025-03-27 22:02:36 +01:00
Michael Niedermayer
ffd537bcc2
avcodec/ffv1enc: Eliminate encode_mul()
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2025-03-27 21:50:14 +01:00
Lynne
193610d9ba
vulkan_decode: allow using NULL offsets/nb_slices in ff_vk_decode_add_slice()
For codecs like VP9 which use a single slice.
2025-03-27 17:22:11 +01:00
Lynne
5fc4acae9c
vulkan_decode: allow using NULL sequence_params when decoding
The function had some checks to allow for this, but as it always tried
to dereference a bufferref, it wasn't fully ready.
2025-03-27 17:22:11 +01:00