aboutsummaryrefslogtreecommitdiffstats
path: root/libavfilter
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2015-09-29 20:47:21 +0200
committerPaul B Mahol <onemda@gmail.com>2015-09-29 20:50:20 +0200
commita019149249695f7b812ead18bc51fc2d8df57499 (patch)
tree9247a8ed243e3089ace1c443c060e3402166b6de /libavfilter
parent308e7484a3b1954072871a4090e5c672d1097fa5 (diff)
downloadffmpeg-a019149249695f7b812ead18bc51fc2d8df57499.tar.gz
avfilter/vf_atadenoise: do not use uninitialized data
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/vf_atadenoise.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/libavfilter/vf_atadenoise.c b/libavfilter/vf_atadenoise.c
index 5127270ab5..799a027173 100644
--- a/libavfilter/vf_atadenoise.c
+++ b/libavfilter/vf_atadenoise.c
@@ -295,13 +295,14 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
if (s->q.available != s->size) {
if (s->q.available < s->mid) {
- out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
- if (!out)
- return AVERROR(ENOMEM);
-
- for (i = 0; i < s->mid; i++)
- ff_bufqueue_add(ctx, &s->q, av_frame_clone(out));
- av_frame_free(&out);
+ for (i = 0; i < s->mid; i++) {
+ out = av_frame_clone(buf);
+ if (!out) {
+ av_frame_free(&buf);
+ return AVERROR(ENOMEM);
+ }
+ ff_bufqueue_add(ctx, &s->q, out);
+ }
}
if (s->q.available < s->size) {
ff_bufqueue_add(ctx, &s->q, buf);
@@ -362,7 +363,7 @@ static int request_frame(AVFilterLink *outlink)
ret = ff_request_frame(ctx->inputs[0]);
if (ret == AVERROR_EOF && !ctx->is_disabled && s->available) {
- AVFrame *buf = ff_get_video_buffer(outlink, outlink->w, outlink->h);
+ AVFrame *buf = av_frame_clone(ff_bufqueue_peek(&s->q, s->available));
if (!buf)
return AVERROR(ENOMEM);