[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