[FFmpeg-devel] [libav-devel] [PATCH 5/6] Postpone API-incompatible changes until the next bump
Andreas Cadhalpun
andreas.cadhalpun at googlemail.com
Sun Aug 16 22:12:23 CEST 2015
Hi,
On 16.08.2015 19:27, Ronald S. Bultje wrote:
> On Sat, Aug 8, 2015 at 7:37 AM, Andreas Cadhalpun <
> andreas.cadhalpun at googlemail.com> wrote:
>
>> +#define FF_API_VOXWARE (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_AC_VLC (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_OLD_MSMPEG4 (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_ARCH_ALPHA (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_NEG_LINESIZES (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_ARCH_SH4 (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_ARCH_SPARC (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_IDCT_XVIDMMX (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_AVFILTER_OPEN (LIBAVFILTER_VERSION_MAJOR < 7)
>> +#define FF_API_AVFILTER_INIT_FILTER (LIBAVFILTER_VERSION_MAJOR < 7)
>> +#define FF_API_NOCONST_GET_NAME (LIBAVFILTER_VERSION_MAJOR < 7)
>> +#define FF_API_OPT_TYPE_METADATA (LIBAVUTIL_VERSION_MAJOR < 56)
Removing these now is probably OK, because they seem to be relatively
unused.
>> +#define FF_API_BUFS_VDPAU (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_SET_DIMENSIONS (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_ASPECT_EXTENDED (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_ERROR_RATE (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_MB_TYPE (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_MAX_BFRAMES (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_INPUT_PRESERVED (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_NORMALIZE_AQP (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_GMC (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_MV0 (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_CODEC_NAME (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_AFD (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_OLD_FILTER_OPTS (LIBAVFILTER_VERSION_MAJOR < 7)
>> +#define FF_API_OLD_FILTER_REGISTER (LIBAVFILTER_VERSION_MAJOR < 7)
>> +#define FF_API_LAVF_BITEXACT (LIBAVFORMAT_VERSION_MAJOR < 58)
>> +#define FF_API_LAVF_CODEC_TB (LIBAVFORMAT_VERSION_MAJOR < 58)
These seem to be still somewhat used, so it would at least need good
documentation how to deal with the removals.
>> +#define FF_API_XVMC (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_XVMC (LIBAVUTIL_VERSION_MAJOR < 56)
Why are there two defines with the same name?
And what about mpeg1_xvmc/mpeg2_xvmc?
>> +#define FF_API_LOWRES (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_CAP_VDPAU (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_DEBUG_MV (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_QSCALE_TYPE (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_EMU_EDGE (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_UNUSED_MEMBERS (LIBAVCODEC_VERSION_MAJOR < 58)
>> +#define FF_API_OLD_AVOPTIONS (LIBAVUTIL_VERSION_MAJOR < 56)
>> +#define FF_API_VDPAU (LIBAVUTIL_VERSION_MAJOR < 56)
>> +#define FF_API_DLOG (LIBAVUTIL_VERSION_MAJOR < 56)
>> +#define FF_API_LAVF_FRAC (LIBAVFORMAT_VERSION_MAJOR < 58)
With any of those disabled FFmpeg doesn't compile.
Someone needs to fix that before these can be removed.
> For each of them, I don't understand why. Particularly for things like
> xvmc, I think we just want to kill it. I'm sure stuff stops working after
> that, _that is the whole point_. We're killing dead weight. It's normal for
> stuff to break after that.
How to deal with things like the xvmc removal seems to be particularly
undocumented.
> I want to reiterate my intention here to break stuff. It is fully
> intentional for some stuff to break as part of API bumps. I want you to
> think of this as gtk2-gtk3 moves. Gtk2 works just fine and is parallel
> installable. However, it's gone in gtk3.
Comparing with gtk (or qt or python) is not actually useful, because
these have far more users.
If you do that I would suggest to compare with libc, which doesn't
do any API breaks anymore, because it would be far too much pain.
> Every single delay of the bump needs to be explicitly justified.
On that we can agree.
Best regards,
Andreas
More information about the ffmpeg-devel
mailing list