[FFmpeg-devel] [libav-devel] [PATCH 5/6] Postpone API-incompatible changes until the next bump

Michael Niedermayer michael at niedermayer.cc
Sun Aug 16 21:41:47 CEST 2015


On Sun, Aug 16, 2015 at 01:27:03PM -0400, Ronald S. Bultje wrote:
> Hi,
> 
> On Sat, Aug 8, 2015 at 7:37 AM, Andreas Cadhalpun <
> andreas.cadhalpun at googlemail.com> wrote:
> 
> > Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
> > ---
> >  libavcodec/version.h  | 54
> > +++++++++++++++++++++++++--------------------------
> >  libavfilter/version.h | 10 +++++-----
> >  libavformat/version.h |  6 +++---
> >  libavutil/version.h   | 10 +++++-----
> >  4 files changed, 40 insertions(+), 40 deletions(-)
> >
> > diff --git a/libavcodec/version.h b/libavcodec/version.h
> > index c903d2f..7eedf08 100644
> > --- a/libavcodec/version.h
> > +++ b/libavcodec/version.h
> > @@ -85,31 +85,31 @@
> >  #define FF_API_MISSING_SAMPLE    (LIBAVCODEC_VERSION_MAJOR < 57)
> >  #endif
> >  #ifndef FF_API_LOWRES
> > -#define FF_API_LOWRES            (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_LOWRES            (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_CAP_VDPAU
> > -#define FF_API_CAP_VDPAU         (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_CAP_VDPAU         (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_BUFS_VDPAU
> > -#define FF_API_BUFS_VDPAU        (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_BUFS_VDPAU        (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_VOXWARE
> > -#define FF_API_VOXWARE           (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_VOXWARE           (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_SET_DIMENSIONS
> > -#define FF_API_SET_DIMENSIONS    (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_SET_DIMENSIONS    (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_DEBUG_MV
> > -#define FF_API_DEBUG_MV          (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_DEBUG_MV          (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_AC_VLC
> > -#define FF_API_AC_VLC            (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_AC_VLC            (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_OLD_MSMPEG4
> > -#define FF_API_OLD_MSMPEG4       (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_OLD_MSMPEG4       (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_ASPECT_EXTENDED
> > -#define FF_API_ASPECT_EXTENDED   (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_ASPECT_EXTENDED   (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_THREAD_OPAQUE
> >  #define FF_API_THREAD_OPAQUE     (LIBAVCODEC_VERSION_MAJOR < 57)
> > @@ -118,58 +118,58 @@
> >  #define FF_API_CODEC_PKT         (LIBAVCODEC_VERSION_MAJOR < 57)
> >  #endif
> >  #ifndef FF_API_ARCH_ALPHA
> > -#define FF_API_ARCH_ALPHA        (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_ARCH_ALPHA        (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_XVMC
> > -#define FF_API_XVMC              (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_XVMC              (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_ERROR_RATE
> > -#define FF_API_ERROR_RATE        (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_ERROR_RATE        (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_QSCALE_TYPE
> > -#define FF_API_QSCALE_TYPE       (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_QSCALE_TYPE       (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_MB_TYPE
> > -#define FF_API_MB_TYPE           (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_MB_TYPE           (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_MAX_BFRAMES
> > -#define FF_API_MAX_BFRAMES       (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_MAX_BFRAMES       (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_NEG_LINESIZES
> > -#define FF_API_NEG_LINESIZES     (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_NEG_LINESIZES     (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_EMU_EDGE
> > -#define FF_API_EMU_EDGE          (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_EMU_EDGE          (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_ARCH_SH4
> > -#define FF_API_ARCH_SH4          (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_ARCH_SH4          (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_ARCH_SPARC
> > -#define FF_API_ARCH_SPARC        (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_ARCH_SPARC        (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_UNUSED_MEMBERS
> > -#define FF_API_UNUSED_MEMBERS    (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_UNUSED_MEMBERS    (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_IDCT_XVIDMMX
> > -#define FF_API_IDCT_XVIDMMX      (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_IDCT_XVIDMMX      (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_INPUT_PRESERVED
> > -#define FF_API_INPUT_PRESERVED   (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_INPUT_PRESERVED   (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_NORMALIZE_AQP
> > -#define FF_API_NORMALIZE_AQP     (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_NORMALIZE_AQP     (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_GMC
> > -#define FF_API_GMC               (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_GMC               (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_MV0
> > -#define FF_API_MV0               (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_MV0               (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_CODEC_NAME
> > -#define FF_API_CODEC_NAME        (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_CODEC_NAME        (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_AFD
> > -#define FF_API_AFD               (LIBAVCODEC_VERSION_MAJOR < 57)
> > +#define FF_API_AFD               (LIBAVCODEC_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_VISMV
> >  /* XXX: don't forget to drop the -vismv documentation */
> > diff --git a/libavfilter/version.h b/libavfilter/version.h
> > index b3b637e..f42f9ca 100644
> > --- a/libavfilter/version.h
> > +++ b/libavfilter/version.h
> > @@ -59,22 +59,22 @@
> >  #define FF_API_AVFILTERBUFFER               (LIBAVFILTER_VERSION_MAJOR <
> > 6)
> >  #endif
> >  #ifndef FF_API_OLD_FILTER_OPTS
> > -#define FF_API_OLD_FILTER_OPTS              (LIBAVFILTER_VERSION_MAJOR <
> > 6)
> > +#define FF_API_OLD_FILTER_OPTS              (LIBAVFILTER_VERSION_MAJOR <
> > 7)
> >  #endif
> >  #ifndef FF_API_AVFILTER_OPEN
> > -#define FF_API_AVFILTER_OPEN                (LIBAVFILTER_VERSION_MAJOR <
> > 6)
> > +#define FF_API_AVFILTER_OPEN                (LIBAVFILTER_VERSION_MAJOR <
> > 7)
> >  #endif
> >  #ifndef FF_API_AVFILTER_INIT_FILTER
> > -#define FF_API_AVFILTER_INIT_FILTER         (LIBAVFILTER_VERSION_MAJOR <
> > 6)
> > +#define FF_API_AVFILTER_INIT_FILTER         (LIBAVFILTER_VERSION_MAJOR <
> > 7)
> >  #endif
> >  #ifndef FF_API_OLD_FILTER_REGISTER
> > -#define FF_API_OLD_FILTER_REGISTER          (LIBAVFILTER_VERSION_MAJOR <
> > 6)
> > +#define FF_API_OLD_FILTER_REGISTER          (LIBAVFILTER_VERSION_MAJOR <
> > 7)
> >  #endif
> >  #ifndef FF_API_OLD_GRAPH_PARSE
> >  #define FF_API_OLD_GRAPH_PARSE              (LIBAVFILTER_VERSION_MAJOR <
> > 5)
> >  #endif
> >  #ifndef FF_API_NOCONST_GET_NAME
> > -#define FF_API_NOCONST_GET_NAME             (LIBAVFILTER_VERSION_MAJOR <
> > 6)
> > +#define FF_API_NOCONST_GET_NAME             (LIBAVFILTER_VERSION_MAJOR <
> > 7)
> >  #endif
> >
> >  #endif /* AVFILTER_VERSION_H */
> > diff --git a/libavformat/version.h b/libavformat/version.h
> > index 3ddba0c..fdb3a0b 100644
> > --- a/libavformat/version.h
> > +++ b/libavformat/version.h
> > @@ -49,13 +49,13 @@
> >   * the public API and may change, break or disappear at any time.
> >   */
> >  #ifndef FF_API_LAVF_BITEXACT
> > -#define FF_API_LAVF_BITEXACT            (LIBAVFORMAT_VERSION_MAJOR < 57)
> > +#define FF_API_LAVF_BITEXACT            (LIBAVFORMAT_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_LAVF_FRAC
> > -#define FF_API_LAVF_FRAC                (LIBAVFORMAT_VERSION_MAJOR < 57)
> > +#define FF_API_LAVF_FRAC                (LIBAVFORMAT_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_LAVF_CODEC_TB
> > -#define FF_API_LAVF_CODEC_TB            (LIBAVFORMAT_VERSION_MAJOR < 57)
> > +#define FF_API_LAVF_CODEC_TB            (LIBAVFORMAT_VERSION_MAJOR < 58)
> >  #endif
> >  #ifndef FF_API_URL_FEOF
> >  #define FF_API_URL_FEOF                 (LIBAVFORMAT_VERSION_MAJOR < 57)
> > diff --git a/libavutil/version.h b/libavutil/version.h
> > index 23bc444..f21ea1b 100644
> > --- a/libavutil/version.h
> > +++ b/libavutil/version.h
> > @@ -81,7 +81,7 @@
> >   */
> >
> >  #ifndef FF_API_OLD_AVOPTIONS
> > -#define FF_API_OLD_AVOPTIONS            (LIBAVUTIL_VERSION_MAJOR < 55)
> > +#define FF_API_OLD_AVOPTIONS            (LIBAVUTIL_VERSION_MAJOR < 56)
> >  #endif
> >  #ifndef FF_API_PIXELFORMAT
> >  #define FF_API_PIXELFORMAT              (LIBAVUTIL_VERSION_MAJOR < 55)
> > @@ -108,19 +108,19 @@
> >  #define FF_API_AVFRAME_LAVC             (LIBAVUTIL_VERSION_MAJOR < 55)
> >  #endif
> >  #ifndef FF_API_VDPAU
> > -#define FF_API_VDPAU                    (LIBAVUTIL_VERSION_MAJOR < 55)
> > +#define FF_API_VDPAU                    (LIBAVUTIL_VERSION_MAJOR < 56)
> >  #endif
> >  #ifndef FF_API_GET_CHANNEL_LAYOUT_COMPAT
> >  #define FF_API_GET_CHANNEL_LAYOUT_COMPAT (LIBAVUTIL_VERSION_MAJOR < 55)
> >  #endif
> >  #ifndef FF_API_XVMC
> > -#define FF_API_XVMC                     (LIBAVUTIL_VERSION_MAJOR < 55)
> > +#define FF_API_XVMC                     (LIBAVUTIL_VERSION_MAJOR < 56)
> >  #endif
> >  #ifndef FF_API_OPT_TYPE_METADATA
> > -#define FF_API_OPT_TYPE_METADATA        (LIBAVUTIL_VERSION_MAJOR < 55)
> > +#define FF_API_OPT_TYPE_METADATA        (LIBAVUTIL_VERSION_MAJOR < 56)
> >  #endif
> >  #ifndef FF_API_DLOG
> > -#define FF_API_DLOG                     (LIBAVUTIL_VERSION_MAJOR < 55)
> > +#define FF_API_DLOG                     (LIBAVUTIL_VERSION_MAJOR < 56)
> >  #endif
> >  #ifndef FF_API_HMAC
> >  #define FF_API_HMAC                     (LIBAVUTIL_VERSION_MAJOR < 55)
> 
> 
> 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.

FF_API_LOWRES as is would remove lowres support with the bump
i actively maintain this code and it is fully functional
also FF_API_LOWRES only wraps around like 5% of the code it would
not even remove the lowres code.

some of the above like FF_API_OLD_AVOPTIONS would remove public
functions that are not even deprecated
like av_get_double() or av_get_q() or av_get_int()


> 
> 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. Every single delay of the bump
> needs to be explicitly justified.


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

When the tyrant has disposed of foreign enemies by conquest or treaty, and
there is nothing more to fear from them, then he is always stirring up
some war or other, in order that the people may require a leader. -- Plato
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150816/31f91e7d/attachment.sig>


More information about the ffmpeg-devel mailing list