Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas George <george@nsup.org>2015-09-30 17:11:57 +0300
committerNicolas George <george@nsup.org>2015-12-22 18:04:30 +0300
commit16557887127256fb1e491702375e7ea7b3940924 (patch)
treee6218ca8a613ccf7c54a95047d618de3d7e66724 /libavfilter/buffersink.c
parent108b4de5529a75b06da72b974b26625a8067001f (diff)
lavfi: make request_frame() non-recursive.
Instead of calling the input filter request_frame() method, ff_request_frame() now marks the link and returns immediately. buffersink is changed to activate the marked filters until a frame is obtained.
Diffstat (limited to 'libavfilter/buffersink.c')
-rw-r--r--libavfilter/buffersink.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavfilter/buffersink.c b/libavfilter/buffersink.c
index 7a19df2c3a..2feb56dee9 100644
--- a/libavfilter/buffersink.c
+++ b/libavfilter/buffersink.c
@@ -140,6 +140,11 @@ int attribute_align_arg av_buffersink_get_frame_flags(AVFilterContext *ctx, AVFr
return AVERROR(EAGAIN);
if ((ret = ff_request_frame(inlink)) < 0)
return ret;
+ while (inlink->frame_wanted_out) {
+ ret = ff_filter_graph_run_once(ctx->graph);
+ if (ret < 0)
+ return ret;
+ }
}
if (flags & AV_BUFFERSINK_FLAG_PEEK) {