aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2023-05-22 16:54:44 +0200
committerPaul B Mahol <onemda@gmail.com>2023-05-22 17:13:31 +0200
commitc37cf59c5bbad7cedf288b2dc198c928acd397fa (patch)
tree7d875d41fadb53e55cedc58ede492590c3739a1a
parent877ccaf776c92866e17493b48da49fab5b9ef11a (diff)
downloadffmpeg-c37cf59c5bbad7cedf288b2dc198c928acd397fa.tar.gz
avfilter/vf_xfade: send EOF to first input early
No point to consume 1st input frames any more after crossfade is over.
-rw-r--r--libavfilter/vf_xfade.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/libavfilter/vf_xfade.c b/libavfilter/vf_xfade.c
index a0e2e61d40..a13a7db627 100644
--- a/libavfilter/vf_xfade.c
+++ b/libavfilter/vf_xfade.c
@@ -2067,9 +2067,13 @@ static int xfade_activate(AVFilterContext *ctx)
if (s->xfade_is_over) {
if (!s->eof[0]) {
- ret = ff_inlink_consume_frame(ctx->inputs[0], &in);
- if (ret > 0)
- av_frame_free(&in);
+ if (ff_inlink_queued_frames(ctx->inputs[0]) > 0) {
+ ret = ff_inlink_consume_frame(ctx->inputs[0], &in);
+ if (ret > 0)
+ av_frame_free(&in);
+ }
+ ff_inlink_set_status(ctx->inputs[0], AVERROR_EOF);
+ s->eof[0] = 1;
}
ret = ff_inlink_consume_frame(ctx->inputs[1], &in);
if (ret < 0) {