[FFmpeg-devel] Major bump

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Mon Apr 5 18:01:57 EEST 2021


Anton Khirnov:
> Hi,
> this patchset bumps major version of all the libraries and removes many
> deprecated APIs, as discussed at length during past months. Patches
> 11-16 will be squashed together on push, but are sent separately for
> ease of review. FATE passes (here at least).
> 
> As agreed during the last developer call, I am disabling the
> uspp/mcdeint filters that depend on removed libavcodec APIs. They should
> be easy to re-enable if anyone finds the motivation to update them.
> 
> I am postponing the removal of compute_muxer_pkt_fields() in lavf, along
> with usage of AVCodecContext.time_base for decoding, since removing them
> without breakage requires a fair bit of additional infrastructure that
> is not yet there. I have plans for all these and hopefully I'll get to
> it before the next bump.
> 
> Carl asked during the last meeting for some reasoning for the bump. The
> general reasons are that
> - old APIs are unable to provide all the features of the new ones
>   (that's usually why new APIs are added)
> - old APIs tend to be harder to use correctly, they often have obscure
>   quirks or corner cases
> - maintaining compatibility wrappers for them is a major obstacle to
>   further development
> I'm appending some notes for the specific changes further down, they
> could be added to the wiki or the website news entry.
> 
> Please comment,
> 
Seems like we have duplicated work here; my branch for major bump
preparations is here: https://github.com/mkver/FFmpeg/commits/bump (it
is not based upon current master, but a month or so old). It contains
quite a lot of things that are missing here, like lots of
constifications (i.e. AVFormatContext.(audio|video|subtitle)_codec;
avcodec_find_(de|en)coder and the corresponding *_by_name functions
return const AVCodec*; av_find_best_stream() has been made
const-correct; avdevice_list_(input_sources|output_sinks); the
avdevice_next API (the last next API in existence -- does someone know
why?).

Your list contains errors, besides the first entry being duplicated:

> * AV_CODEC_CAP_INTRA_ONLY and AV_CODEC_CAP_INTRA_ONLY removed, use corresponding
>   AVCodecDescriptor.props values instead
...
> * avcodec_find_best_pix_fmt_of_2 replaced by avcodec_find_best_pix_fmt_of_2

- Andreas


More information about the ffmpeg-devel mailing list