Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLimin Wang <lance.lmwang@gmail.com>2019-11-27 13:46:51 +0300
committerMichael Niedermayer <michael@niedermayer.cc>2019-11-28 20:44:01 +0300
commit3a6ec10d904f5f9d38900a79281000ca1d0a0747 (patch)
tree92c5397639e0149519d5ffc45bbf2420350808f2 /libavfilter/vf_colorconstancy.c
parentdf625057af9b646742b3b7ff558dd18d52cc8b4d (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.c6
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);
}