[FFmpeg-devel] [PATCH 3/3] avutil/buffer: Avoid moving the AVBufferRef to a new place in memory in av_buffer_make_writable()

Michael Niedermayer michaelni at gmx.at
Thu Jan 15 15:15:52 CET 2015


On Thu, Jan 15, 2015 at 12:10:10PM +0100, wm4 wrote:
> On Thu, 15 Jan 2015 01:04:56 +0100
> Michael Niedermayer <michaelni at gmx.at> wrote:
> 
> > This allows making a AVBufferRef writable without the need to
> > update all pointers to it
> > 
> > Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> > ---
> >  libavutil/buffer.c |    4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/libavutil/buffer.c b/libavutil/buffer.c
> > index b31f034..bb112c2 100644
> > --- a/libavutil/buffer.c
> > +++ b/libavutil/buffer.c
> > @@ -159,8 +159,8 @@ int av_buffer_make_writable(AVBufferRef **pbuf)
> >          return AVERROR(ENOMEM);
> >  
> >      memcpy(newbuf->data, buf->data, buf->size);
> > -    av_buffer_unref(pbuf);
> > -    *pbuf = newbuf;
> > +
> > +    buffer_replace(pbuf, &newbuf);
> >  
> >      return 0;
> >  }
> 
> So this pretty much makes the double pointer pointless, and the
> signature could be:
> 
>     int av_buffer_make_writable(AVBufferRef *pbuf);
>
> ?

yes, if the change wouldnt break ABI/API


> 
> (I wonder why the API didn't do this originally.)
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Democracy is the form of government in which you can choose your dictator
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150115/4d6b693b/attachment.asc>


More information about the ffmpeg-devel mailing list