From 41096904d03611de8024a8dbebb6935d643c3d6b Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Tue, 8 Aug 2017 18:45:32 +0200 Subject: [PATCH] avfilter/vf_separatefields: stop leaking last frame This can happen when filtering is ended without receiving EOF. --- libavfilter/vf_separatefields.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavfilter/vf_separatefields.c b/libavfilter/vf_separatefields.c index 69653c991f..3ed222f271 100644 --- a/libavfilter/vf_separatefields.c +++ b/libavfilter/vf_separatefields.c @@ -118,6 +118,13 @@ static int request_frame(AVFilterLink *outlink) return ret; } +static av_cold void uninit(AVFilterContext *ctx) +{ + SeparateFieldsContext *s = ctx->priv; + + av_frame_free(&s->second); +} + static const AVFilterPad separatefields_inputs[] = { { .name = "default", @@ -141,6 +148,7 @@ AVFilter ff_vf_separatefields = { .name = "separatefields", .description = NULL_IF_CONFIG_SMALL("Split input video frames into fields."), .priv_size = sizeof(SeparateFieldsContext), + .uninit = uninit, .inputs = separatefields_inputs, .outputs = separatefields_outputs, };