Quoting wm4 (2017-01-13 12:09:23)
> On Fri, 13 Jan 2017 12:04:36 +0100
> Anton Khirnov <[email protected]> wrote:
> 
> > Before this commit, AVIOContext is to be freed with a plain av_free(),
> > which prevents us from adding any deeper structure to it.
> > ---
> >  doc/APIchanges        |  3 +++
> >  libavformat/avio.h    |  8 ++++++++
> >  libavformat/aviobuf.c | 17 ++++++++++++++---
> >  libavformat/version.h |  4 ++--
> >  4 files changed, 27 insertions(+), 5 deletions(-)
> > 
> > diff --git a/doc/APIchanges b/doc/APIchanges
> > index c8c2a21..1cab9f4 100644
> > --- a/doc/APIchanges
> > +++ b/doc/APIchanges
> > @@ -13,6 +13,9 @@ libavutil:     2015-08-28
> >  
> >  API changes, most recent first:
> >  
> > +2016-xx-xx - xxxxxxx - lavf 57.11.0 - avio.h
> > +  Add avio_context_free(). From now on it must be used for freeing 
> > AVIOContext.
> > +
> 
> As an API user I'm saying "lol no". This implicitly breaks every API
> user without warning, and you'd only know once it actually breaks (and
> you've spent a few hours of debugging). Unless you read APIchanges,
> which not many are likely to do.

I'm not breaking anything just yet, and not planning to in the immediate
future. The (preliminary) transition plan I have in mind involved
deprecating avio_alloc_context() and replacing it with
avio_context_alloc(), with a properly big-endian-namespaced name and
most likely a different signature. That will give you all the
deprecation warnings you want. The exact shape of that new API is to be
determined, but it seemed to me that it's best to add the destructor as
soon as possible, since the API for that is very straightforward.

(also, if you're a libav API user and don't read APIchanges at least
once per major bump then you deserve everything you get =p)

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to