diff options
author | Anton Khirnov <anton@khirnov.net> | 2012-07-15 09:47:01 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2012-07-22 09:14:05 +0200 |
commit | 3825b5268844694ff50a0e0bfde64df43a862fae (patch) | |
tree | 3cb8456333c0a5a1af8f7d2c557174181ff1c6c5 /libavfilter/vf_fps.c | |
parent | d4f89906e3b310609b636cf6071313ec557ec873 (diff) |
lavfi: check all ff_start_frame/draw_slice/end_frame calls for errors
Diffstat (limited to 'libavfilter/vf_fps.c')
-rw-r--r-- | libavfilter/vf_fps.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/libavfilter/vf_fps.c b/libavfilter/vf_fps.c index 9ca0668c76..ab7cba57d1 100644 --- a/libavfilter/vf_fps.c +++ b/libavfilter/vf_fps.c @@ -143,9 +143,11 @@ static int request_frame(AVFilterLink *outlink) buf->pts = av_rescale_q(s->first_pts, ctx->inputs[0]->time_base, outlink->time_base) + s->frames_out; - ff_start_frame(outlink, buf); - ff_draw_slice(outlink, 0, outlink->h, 1); - ff_end_frame(outlink); + if ((ret = ff_start_frame(outlink, buf)) < 0 || + (ret = ff_draw_slice(outlink, 0, outlink->h, 1)) < 0 || + (ret = ff_end_frame(outlink)) < 0) + return ret; + s->frames_out++; } return 0; @@ -231,9 +233,13 @@ static int end_frame(AVFilterLink *inlink) buf_out->pts = av_rescale_q(s->first_pts, inlink->time_base, outlink->time_base) + s->frames_out; - ff_start_frame(outlink, buf_out); - ff_draw_slice(outlink, 0, outlink->h, 1); - ff_end_frame(outlink); + if ((ret = ff_start_frame(outlink, buf_out)) < 0 || + (ret = ff_draw_slice(outlink, 0, outlink->h, 1)) < 0 || + (ret = ff_end_frame(outlink)) < 0) { + avfilter_unref_bufferp(&buf); + return ret; + } + s->frames_out++; } flush_fifo(s->fifo); |