diff options
author | Anton Khirnov <anton@khirnov.net> | 2012-07-15 11:16:53 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2012-07-22 09:14:05 +0200 |
commit | 1dc42050185d63c1de5d16146fbaee92640af187 (patch) | |
tree | e53dbbfc52894acf4efd526b9ddcaf1d0b87d94d /libavfilter/vf_scale.c | |
parent | 80e4ed279b3abe9f5356e2b56255b2aa64527345 (diff) |
lavfi: check all avfilter_ref_buffer() calls for errors.
Diffstat (limited to 'libavfilter/vf_scale.c')
-rw-r--r-- | libavfilter/vf_scale.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c index 73f31a65fd..66005303f5 100644 --- a/libavfilter/vf_scale.c +++ b/libavfilter/vf_scale.c @@ -256,11 +256,14 @@ static int start_frame(AVFilterLink *link, AVFilterBufferRef *picref) { ScaleContext *scale = link->dst->priv; AVFilterLink *outlink = link->dst->outputs[0]; - AVFilterBufferRef *outpicref; + AVFilterBufferRef *outpicref, *for_next_filter; int ret = 0; if (!scale->sws) { - return ff_start_frame(outlink, avfilter_ref_buffer(picref, ~0)); + outpicref = avfilter_ref_buffer(picref, ~0); + if (!outpicref) + return AVERROR(ENOMEM); + return ff_start_frame(outlink, outpicref); } scale->hsub = av_pix_fmt_descriptors[link->format].log2_chroma_w; @@ -281,7 +284,12 @@ static int start_frame(AVFilterLink *link, AVFilterBufferRef *picref) INT_MAX); scale->slice_y = 0; - ret = ff_start_frame(outlink, avfilter_ref_buffer(outpicref, ~0)); + for_next_filter = avfilter_ref_buffer(outpicref, ~0); + if (for_next_filter) + ret = ff_start_frame(outlink, for_next_filter); + else + ret = AVERROR(ENOMEM); + if (ret < 0) { avfilter_unref_bufferp(&outpicref); return ret; |