mirror of https://git.ffmpeg.org/ffmpeg.git
Revert "Revert "lavfi/buffersrc: push the frame deeper if requested.""
This reverts commit04aa09c4bc
and reintroduces0ff5567a30
that was temporarily reverted due to minor regressions. It also revertse5bce8b4ce
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.
This commit is contained in:
parent
70eb77b34e
commit
1daacba91f
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
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
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
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
|
||||
|
|
Loading…
Reference in New Issue