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

wm4 nfxjfg at googlemail.com
Thu Jan 15 12:10:10 CET 2015


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);

?

(I wonder why the API didn't do this originally.)


More information about the ffmpeg-devel mailing list