diff options
Diffstat (limited to 'libavfilter/buffersrc.c')
-rw-r--r-- | libavfilter/buffersrc.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c index d60a1b8bb8..5186b0920b 100644 --- a/libavfilter/buffersrc.c +++ b/libavfilter/buffersrc.c @@ -382,19 +382,19 @@ static int request_frame(AVFilterLink *link) switch (link->type) { case AVMEDIA_TYPE_VIDEO: - ff_start_frame(link, avfilter_ref_buffer(buf, ~0)); - ff_draw_slice(link, 0, link->h, 1); - ff_end_frame(link); + if ((ret = ff_start_frame(link, buf)) < 0 || + (ret = ff_draw_slice(link, 0, link->h, 1)) < 0 || + (ret = ff_end_frame(link)) < 0) + return ret; break; case AVMEDIA_TYPE_AUDIO: - ret = ff_filter_samples(link, avfilter_ref_buffer(buf, ~0)); + ret = ff_filter_samples(link, buf); break; default: + avfilter_unref_bufferp(&buf); return AVERROR(EINVAL); } - avfilter_unref_buffer(buf); - return ret; } |