From 7f06ca6e2ba4769adfcff6d7d0491349d8a69654 Mon Sep 17 00:00:00 2001 From: Nicolas George Date: Sat, 3 Mar 2012 13:17:47 +0100 Subject: [PATCH] vf_mp: uninit filter chain. Most of the code was taken from MPlayer's vf_uninit_filter_chain. --- libavfilter/vf_mp.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/libavfilter/vf_mp.c b/libavfilter/vf_mp.c index 701e387d95..75a4246b9e 100644 --- a/libavfilter/vf_mp.c +++ b/libavfilter/vf_mp.c @@ -769,6 +769,23 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) return 0; } +static av_cold void uninit(AVFilterContext *ctx) +{ + MPContext *m = ctx->priv; + vf_instance_t *vf = &m->vf; + + while(vf){ + vf_instance_t *next = vf->next; + if(vf->uninit) + vf->uninit(vf); + free_mp_image(vf->imgctx.static_images[0]); + free_mp_image(vf->imgctx.static_images[1]); + free_mp_image(vf->imgctx.temp_images[0]); + free_mp_image(vf->imgctx.export_images[0]); + vf = next; + } +} + static int query_formats(AVFilterContext *ctx) { AVFilterFormats *avfmts=NULL; @@ -881,6 +898,7 @@ AVFilter avfilter_vf_mp = { .name = "mp", .description = NULL_IF_CONFIG_SMALL("Apply a libmpcodecs filter to the input video."), .init = init, + .uninit = uninit, .priv_size = sizeof(MPContext), .query_formats = query_formats,