[FFmpeg-devel] [PATCH] avcodec/libdav1d: reset pool size on allocation failure
James Almer
jamrial at gmail.com
Tue Mar 19 20:19:38 EET 2019
On 3/15/2019 11:55 PM, James Almer wrote:
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
> No testcase for this, just the theoretical scenario where a library user could
> flush the decoder after ENOMEM was signaled here, then pass new data where a
> frame with the same size as the last successfully allocated one is the first in
> line.
>
> libavcodec/libdav1d.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c
> index 8c8584f4e8..d9079cbbef 100644
> --- a/libavcodec/libdav1d.c
> +++ b/libavcodec/libdav1d.c
> @@ -72,8 +72,10 @@ static int libdav1d_picture_allocator(Dav1dPicture *p, void *cookie)
> av_buffer_pool_uninit(&dav1d->pool);
> // Use twice the amount of required padding bytes for aligned_ptr below.
> dav1d->pool = av_buffer_pool_init(ret + DAV1D_PICTURE_ALIGNMENT * 2, NULL);
> - if (!dav1d->pool)
> + if (!dav1d->pool) {
> + dav1d->pool_size = 0;
> return AVERROR(ENOMEM);
> + }
> dav1d->pool_size = ret;
> }
> buf = av_buffer_pool_get(dav1d->pool);
Pushed.
More information about the ffmpeg-devel
mailing list