summaryrefslogtreecommitdiffstats
path: root/libavfilter/buffersrc.c
diff options
context:
space:
mode:
authorNicolas George <george@nsup.org>2016-01-03 15:44:42 +0100
committerNicolas George <george@nsup.org>2016-12-18 10:38:52 +0100
commit02aa0701ae0dc2def8db640c9e3c06dc1b5de70c (patch)
treed36bc5207cb7b5a5cbfd1a8ac9c1dbae90255020 /libavfilter/buffersrc.c
parent62b11db0a08cbb8c338e413a0d1707a8c81ae24e (diff)
downloadffmpeg-streaming-02aa0701ae0dc2def8db640c9e3c06dc1b5de70c.zip
ffmpeg-streaming-02aa0701ae0dc2def8db640c9e3c06dc1b5de70c.tar.gz
lavfi: make filter_frame non-recursive.
A lot of changes happen at the same time: - Add a framequeue fifo to AVFilterLink. - split AVFilterLink.status into status_in and status_out: requires changes to the few filters and programs that use it directly (f_interleave, split, filtfmts). - Add a field ready to AVFilterContext, marking when the filter is ready and its activation priority. - Add flags to mark blocked links. - Change ff_filter_frame() to enqueue the frame. - Change all filtering functions to update the ready field and the blocked flags. - Update ff_filter_graph_run_once() to use the ready field. - buffersrc: always push the frame immediately.
Diffstat (limited to 'libavfilter/buffersrc.c')
-rw-r--r--libavfilter/buffersrc.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c
index 9294811..1314397 100644
--- a/libavfilter/buffersrc.c
+++ b/libavfilter/buffersrc.c
@@ -184,6 +184,7 @@ 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);
return 0;
} else if (s->eof)
return AVERROR(EINVAL);
@@ -235,9 +236,8 @@ static int av_buffersrc_add_frame_internal(AVFilterContext *ctx,
return ret;
}
- if ((flags & AV_BUFFERSRC_FLAG_PUSH))
- if ((ret = ctx->output_pads[0].request_frame(ctx->outputs[0])) < 0)
- return ret;
+ if ((ret = ctx->output_pads[0].request_frame(ctx->outputs[0])) < 0)
+ return ret;
return 0;
}
OpenPOWER on IntegriCloud