mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
Revert "Revert "lavfi/buffersrc: push the frame deeper if requested.""
This reverts commit 04aa09c4bcf2d5a634a35da3a3ae3fc1abe30ef8 and reintroduces 0ff5567a30be6d7c804e95997ae282d6bacd76c3 that was temporarily reverted due to minor regressions. It also reverts e5bce8b4ce7b1f3a83998febdfa86a3771df96ce 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…
x
Reference in New Issue
Block a user