diff options
Diffstat (limited to 'libavfilter/vf_mp.c')
-rw-r--r-- | libavfilter/vf_mp.c | 18 |
1 files changed, 18 insertions, 0 deletions
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, |