return ret;
}
+static int push_frame(AVFilterGraph *graph)
+{
+ int ret;
+
+ while (1) {
+ ret = ff_filter_graph_run_once(graph);
+ if (ret == AVERROR(EAGAIN))
+ break;
+ if (ret < 0)
+ return ret;
+ }
+ return 0;
+}
+
static int av_buffersrc_add_frame_internal(AVFilterContext *ctx,
AVFrame *frame, int flags)
{
if (!frame) {
s->eof = 1;
ff_avfilter_link_set_in_status(ctx->outputs[0], AVERROR_EOF, AV_NOPTS_VALUE);
+ if ((flags & AV_BUFFERSRC_FLAG_PUSH)) {
+ ret = push_frame(ctx->graph);
+ if (ret < 0)
+ return ret;
+ }
return 0;
} else if (s->eof)
return AVERROR(EINVAL);
if ((ret = ctx->output_pads[0].request_frame(ctx->outputs[0])) < 0)
return ret;
+ if ((flags & AV_BUFFERSRC_FLAG_PUSH)) {
+ ret = push_frame(ctx->graph);
+ if (ret < 0)
+ return ret;
+ }
+
return 0;
}
-a0e9616f0d9a8c1029f3220b1b9175f4 *./tests/data/lavf/lavf.ffm
+ca2a450cd0d1e299514a345923b4c82a *./tests/data/lavf/lavf.ffm
376832 ./tests/data/lavf/lavf.ffm
./tests/data/lavf/lavf.ffm CRC=0x000e23ae
-dbdbb7d8677dc29b0d90eedcf418ce13 *./tests/data/lavf/lavf.mxf
+eaac3125ac1a61fe5f968c7af83fa71e *./tests/data/lavf/lavf.mxf
525369 ./tests/data/lavf/lavf.mxf
./tests/data/lavf/lavf.mxf CRC=0x8dddfaab
-40fcb0a898f8825a17f5754b23762f49 *./tests/data/lavf/lavf.mxf
+1562530330b13e9e70f522fe20265632 *./tests/data/lavf/lavf.mxf
560697 ./tests/data/lavf/lavf.mxf
./tests/data/lavf/lavf.mxf CRC=0xf21b1b48
-9233d192af20fc2a89304f5ae93c21ee *./tests/data/lavf/lavf.mxf
+e07858715997313ae66a1cdd6fde5f66 *./tests/data/lavf/lavf.mxf
525369 ./tests/data/lavf/lavf.mxf
./tests/data/lavf/lavf.mxf CRC=0x8dddfaab