diff options
author | Nicolas George <nicolas.george@normalesup.org> | 2012-11-29 17:13:06 +0100 |
---|---|---|
committer | Nicolas George <nicolas.george@normalesup.org> | 2012-12-02 13:53:41 +0100 |
commit | 24cb1f9718382ac67eb98c86c67ee0b0789a8355 (patch) | |
tree | f2d03351d1594aecfe32b84a6903b87b57d3fdd9 | |
parent | 3b316247fb878570da0bba240918e86e0e9358e6 (diff) | |
download | ffmpeg-24cb1f9718382ac67eb98c86c67ee0b0789a8355.tar.gz |
lavfi/vf_tile: forward errors.
-rw-r--r-- | libavfilter/vf_tile.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/libavfilter/vf_tile.c b/libavfilter/vf_tile.c index 676c5de57a..5f5c6d6f5b 100644 --- a/libavfilter/vf_tile.c +++ b/libavfilter/vf_tile.c @@ -149,17 +149,19 @@ static void draw_blank_frame(AVFilterContext *ctx, AVFilterBufferRef *out_buf) x0, y0, inlink->w, inlink->h); tile->current++; } -static void end_last_frame(AVFilterContext *ctx) +static int end_last_frame(AVFilterContext *ctx) { TileContext *tile = ctx->priv; AVFilterLink *outlink = ctx->outputs[0]; AVFilterBufferRef *out_buf = outlink->out_buf; + int ret; outlink->out_buf = NULL; while (tile->current < tile->nb_frames) draw_blank_frame(ctx, out_buf); - ff_filter_frame(outlink, out_buf); + ret = ff_filter_frame(outlink, out_buf); tile->current = 0; + return ret; } /* Note: direct rendering is not possible since there is no guarantee that @@ -198,7 +200,7 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *picref) avfilter_unref_bufferp(&inlink->cur_buf); if (++tile->current == tile->nb_frames) - end_last_frame(ctx); + return end_last_frame(ctx); return 0; } @@ -214,15 +216,13 @@ static int request_frame(AVFilterLink *outlink) r = ff_request_frame(inlink); if (r < 0) { if (r == AVERROR_EOF && tile->current) - end_last_frame(ctx); - else - return r; + r = end_last_frame(ctx); break; } if (!tile->current) /* done */ break; } - return 0; + return r; } static const AVFilterPad tile_inputs[] = { |