/* 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) {