diff options
author | Paul B Mahol <onemda@gmail.com> | 2015-09-29 20:47:21 +0200 |
---|---|---|
committer | Paul B Mahol <onemda@gmail.com> | 2015-09-29 20:50:20 +0200 |
commit | a019149249695f7b812ead18bc51fc2d8df57499 (patch) | |
tree | 9247a8ed243e3089ace1c443c060e3402166b6de /libavfilter | |
parent | 308e7484a3b1954072871a4090e5c672d1097fa5 (diff) | |
download | ffmpeg-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.c | 17 |
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); |