X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=libavfilter%2Fbuffersink.c;h=2feb56dee9bd49706ffc38a60499223ce0b32376;hb=08aec7c1bda4b5f084ff886e3a962278e25ed126;hp=5db86abd8a1db1587992927f872e211b3d63b8b9;hpb=6c9cc21bcca952ca86a6cf08376afa9f3b7a2034;p=ffmpeg diff --git a/libavfilter/buffersink.c b/libavfilter/buffersink.c index 5db86abd8a1..2feb56dee9b 100644 --- a/libavfilter/buffersink.c +++ b/libavfilter/buffersink.c @@ -134,12 +134,17 @@ int attribute_align_arg av_buffersink_get_frame_flags(AVFilterContext *ctx, AVFr /* no picref available, fetch it from the filterchain */ while (!av_fifo_size(buf->fifo)) { - if (inlink->closed) - return AVERROR_EOF; + if (inlink->status) + return inlink->status; if (flags & AV_BUFFERSINK_FLAG_NO_REQUEST) return AVERROR(EAGAIN); if ((ret = ff_request_frame(inlink)) < 0) return ret; + while (inlink->frame_wanted_out) { + ret = ff_filter_graph_run_once(ctx->graph); + if (ret < 0) + return ret; + } } if (flags & AV_BUFFERSINK_FLAG_PEEK) {