diff options
author | Paul B Mahol <onemda@gmail.com> | 2017-08-08 18:45:32 +0200 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2017-08-08 18:53:10 +0200 |
commit | 41096904d03611de8024a8dbebb6935d643c3d6b (patch) | |
tree | bb9a147069753374b8ca36cef83bac062c323dff | |
parent | 463b81de2b252691d75417643597c42684bf830d (diff) | |
download | ffmpeg-41096904d03611de8024a8dbebb6935d643c3d6b.tar.gz |
avfilter/vf_separatefields: stop leaking last frame
This can happen when filtering is ended without receiving EOF.
-rw-r--r-- | libavfilter/vf_separatefields.c | 8 |
1 files changed, 8 insertions, 0 deletions
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, }; |