diff options
author | Limin Wang <lance.lmwang@gmail.com> | 2019-11-27 13:46:51 +0300 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2019-11-28 20:44:01 +0300 |
commit | 3a6ec10d904f5f9d38900a79281000ca1d0a0747 (patch) | |
tree | 92c5397639e0149519d5ffc45bbf2420350808f2 /libavfilter/vf_colorconstancy.c | |
parent | df625057af9b646742b3b7ff558dd18d52cc8b4d (diff) |
avfilter/vf_colorconstancy: av_frame_free(&in) in case of error or direct flag is false
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavfilter/vf_colorconstancy.c')
-rw-r--r-- | libavfilter/vf_colorconstancy.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libavfilter/vf_colorconstancy.c b/libavfilter/vf_colorconstancy.c index cc081e957f..9917d8993e 100644 --- a/libavfilter/vf_colorconstancy.c +++ b/libavfilter/vf_colorconstancy.c @@ -682,13 +682,16 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) AVFilterLink *outlink = ctx->outputs[0]; AVFrame *out; int ret; + int direct = 0; ret = illumination_estimation(ctx, in); if (ret) { + av_frame_free(&in); return ret; } if (av_frame_is_writable(in)) { + direct = 1; out = in; } else { out = ff_get_video_buffer(outlink, outlink->w, outlink->h); @@ -700,6 +703,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) } chromatic_adaptation(ctx, in, out); + if (!direct) + av_frame_free(&in); + return ff_filter_frame(outlink, out); } |