1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-04 22:03:09 +02:00
Commit Graph

119346 Commits

Author SHA1 Message Date
ef8bf6ca24 avformat/version_major: postpone some deprecations until the next bump
They are either too recent, or are not trivial to remove.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
b2564b0ab8 avformat: remove deprecated FF_API_GET_DUR_ESTIMATE_METHOD
Deprecated since 2024-03-06.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
ec8e796b42 avformat: remove deprecated FF_API_AVSTREAM_SIDE_DATA
Deprecated since 2023-10-06.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
c153238275 avformat: remove deprecated FF_API_ALLOW_FLUSH
Deprecated since 2023-10-02.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
3fd10e0cf3 avformat: remove deprecated FF_API_LAVF_SHORTEST
Deprecated since 2023-09-18.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
8a7ce397bc avdevice/version_major: postpone some deprecations until the next bump
They are too recent.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
17b31065f0 avdevice: remove deprecated FF_API_SDL2_DEVICE
Deprecated since 2024-02-28.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
9283c5251f avdevice: remove deprecated FF_API_OPENGL_DEVICE
Deprecated since 2024-02-28.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
a5064a72ff avdevice: remove deprecated FF_API_BKTR_DEVICE
Deprecated since 2024-02-02.

Signed-off-by: James Almer <jamrial@gmail.com>
2025-03-28 14:33:07 -03:00
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
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
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
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
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
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
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
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
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
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
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
5bf6d9c3e3 avformat/nut: Add GBR(A)PF16/32LE/BE
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2025-03-28 15:23:28 +01:00
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
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
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
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
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
8804ae158b vulkan_functions: add note to update ff_vk_extensions_to_mask
Otherwise, the extension looks like its enabled, but isn't
actually used by anything.
2025-03-27 17:22:12 +01:00
5595068be5 vulkan_loader: remap video_maintenance2 in ff_vk_extensions_to_mask
This was broken.
2025-03-27 17:22:11 +01:00
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
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
4dadf71dce lavu/vulkan: skip adding NULL buffers as deps in ff_vk_exec_add_dep_buf
Allows for cleaner code.
2025-03-27 17:22:07 +01:00
2ac2485c1f avcodec/mjpegenc: Don't allocate unnecessarily much memory
We need to allocate space for 64 coefficients per block;
24dbc4c2e8 wanted to
perform the calculation 64*sizeof(MJpegHuffmanCode)
at compile time, yet in the end did it in a way that
made it allocate 64 times as much memory as needed.

Reported-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-27 13:41:06 +01:00
114fccc4a5 avcodec/mpegvideo_enc: Set b-frame chain length properly
Fixes a regression caused by my desire to use loop-scope
for iterators in 72bf3d3c12.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-27 03:16:18 +01:00
4e806b3266 avcodec/mpeg4videodec: Actually check av_buffer_replace()
Forgotten in 4f2becc2dc.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-27 03:16:18 +01:00
d256118b7e videotoolbox: Fix building with older SDKs
The kVTVideoDecoderReferenceMissingErr constant was only added
in the macOS 12 and iOS 15 SDKs. Use a hardcoded value instead
of the named constant, to fix building with older SDKs
after c6214b0d69.

Signed-off-by: Martin Storsjö <martin@martin.st>
2025-03-26 22:33:16 +02:00
e5a33c898a avcodec/mpegvideo: Only keep the actually used unquantize funcs
For all encoders and all decoders except MPEG-4 the unquantize
functions to use don't change at all and therefore needn't be
kept in the context. So discard them after setting them;
for MPEG-4, the functions get assigned on a per-frame basis.

Decoders not using any unquantize functions (H.261, MPEG-1/2)
as well as decoders that only call ff_mpv_reconstruct_mb()
through error resilience (RV30/40, the VC-1 family) don't have
the remaining pointers set at all.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-26 04:17:00 +01:00
917652d7c8 avcodec/ppc/mpegvideo_altivec: Don't process coeffs as scalars
block_last_index and nCoeffs is an optimization designed
to avoid processing unnecessarily many coefficients; yet
it would be legal to always process all coefficients
(all coefficients beyond nCoeffs are zero anyway and
zeros are always unquantized to zeros). Therefore
one does not need a scalar tail.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-26 04:16:35 +01:00
46c5466dd8 avcodec/ppc/mpegvideo_altivec: Don't process unnecessarily many coeffs
Use the same number as the C version.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-26 04:16:11 +01:00
b96ba44432 avcodec/ppc/mpegvideo_altivec: Set unquantize functions unconditionally
Don't do it depending upon dct_algo, as this is not supposed
to influence the unquantize function selection.
(This check originated in 05c4072b45
where it was used for the dct_quantize function only.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-26 04:15:46 +01:00
b2866b7216 avcodec/ppc/mpegvideo_altivec: Use correct inter scantable
This affected the WMV1/2 encoders (but not when running FATE because
the encoding part uses the fastint dct, so this code isn't used
then anyway).

It did not affect anything else, because a) only WMV1/2 use different
scantables, b) ff_msmpeg4_decode_block() (and therefore the WMV1
decoder) already unquantize inter macroblocks as they are parsed
c) the WMV2 decoder does not use the unquantize functions for inter
macroblocks at all.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-26 04:15:22 +01:00
63864545cd avcodec/mpegvideo: Move unquantize functions into a file of their own
This is in preparation for only keeping the actually used
unquantize functions in MpegEncContext.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-26 04:14:49 +01:00
34b624d98c avcodec/error_resilience: Avoid me_cmp.h inclusion
Use spell out what me_cmp_func means.
Avoids inclusions in the H.264 decoder as well as all
mpegvideo decoders.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-26 04:14:15 +01:00
b29ae29ee7 avcodec/h261dec: Set FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
This decoder sets the AVCodecContext fields even when a frame
is skipped.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-26 04:13:50 +01:00
46a2d03b75 avcodec/mpegvideo_enc: Use better variable name
Also fixes shadowing.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-26 04:13:24 +01:00
d5fba4aef9 avcodec/mpegvideo_enc: Defer initialization of mb-pos dependent vars
Only set them after mb_x and mb_y are known which happens
only after the call to ff_h261_reorder_mb_index().

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-26 04:12:58 +01:00
854a3ed547 avcodec/motion_est: Reset scene_change score, MB variance stats
Reset them in ff_me_init_pic(). It is the appropriate place for it
and allows to remove resetting code from multiple places
(e.g. mpegvideo_enc.c resetted it in two different places
(one for the main slice context, one for all the others)).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-26 04:12:30 +01:00
479dac17f8 avcodec/mpegvideo_enc: Move code to initialize variables immediately
Also avoid casts and parentheses.
(This is only possible now because ff_update_duplicate_context()
no longer touches the PutBitContext.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-26 04:12:04 +01:00
6e45f7f535 avcodec/mpegvideo: Move MotionEstContext to MPVEncContext
All that is necessary to do so is perform ff_me_init_pic()
on every slice.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-26 04:11:32 +01:00
35fecd3e68 avcodec/motion_est: Move ff_h263_round_chroma() to h263.h
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-26 04:11:00 +01:00
ec6c8e5273 avcodec/mpegvideoenc: Constify vlc length pointees
These pointers point to static tables which must not be modified
by anyone after they have been initialized. So constify the pointees.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2025-03-26 04:10:31 +01:00