提交 1daacba9 编写于 作者: N Nicolas George

Revert "Revert "lavfi/buffersrc: push the frame deeper if requested.""

This reverts commit 04aa09c4
and reintroduces 0ff5567a that
was temporarily reverted due to minor regressions.

It also reverts e5bce8b4 that fixed FATE refs.
The fate-ffm change is caused by field_order now being set
on the output format because the first frame arrives earlier.
The fate-mxf change is assumed to be the same.
上级 70eb77b3
......@@ -173,6 +173,20 @@ int attribute_align_arg av_buffersrc_add_frame_flags(AVFilterContext *ctx, AVFra
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)
{
......@@ -185,6 +199,11 @@ static int av_buffersrc_add_frame_internal(AVFilterContext *ctx,
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);
......@@ -239,6 +258,12 @@ static int av_buffersrc_add_frame_internal(AVFilterContext *ctx,
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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册