From 0f93cef2d6405f07b42719506cbde30f07dd8702 Mon Sep 17 00:00:00 2001 From: Mark Thompson Date: Mon, 26 Jun 2017 20:28:07 +0100 Subject: [PATCH] hwcontext: Perform usual uninitialisation on derived frames contexts --- libavutil/hwcontext.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/libavutil/hwcontext.c b/libavutil/hwcontext.c index b26e68fe77..f47158f811 100644 --- a/libavutil/hwcontext.c +++ b/libavutil/hwcontext.c @@ -217,19 +217,16 @@ static void hwframe_ctx_free(void *opaque, uint8_t *data) { AVHWFramesContext *ctx = (AVHWFramesContext*)data; - if (ctx->internal->source_frames) { - av_buffer_unref(&ctx->internal->source_frames); + if (ctx->internal->pool_internal) + av_buffer_pool_uninit(&ctx->internal->pool_internal); - } else { - if (ctx->internal->pool_internal) - av_buffer_pool_uninit(&ctx->internal->pool_internal); + if (ctx->internal->hw_type->frames_uninit) + ctx->internal->hw_type->frames_uninit(ctx); - if (ctx->internal->hw_type->frames_uninit) - ctx->internal->hw_type->frames_uninit(ctx); + if (ctx->free) + ctx->free(ctx); - if (ctx->free) - ctx->free(ctx); - } + av_buffer_unref(&ctx->internal->source_frames); av_buffer_unref(&ctx->device_ref);