[FFmpeg-cvslog] avfilter/af_afade: fix check_input for empty streams

Marton Balint git at videolan.org
Wed Jul 30 00:20:18 EEST 2025


ffmpeg | branch: master | Marton Balint <cus at passwd.hu> | Sun Jul 20 20:50:25 2025 +0200| [84d831ec581470ce3d0202617f860f0b43db49c2] | committer: Marton Balint

avfilter/af_afade: fix check_input for empty streams

Use ff_outlink_get_status directly to get pending EOF state.

Fixes assertion failure with:
ffmpeg -lavfi "sine=f=1000:d=2[a];sine=f=440:d=2,atrim=end=0[b];[a][b]acrossfade=d=1" -f framecrc -
ffmpeg -lavfi "sine=f=1000:d=2,atrim=end=0[a];sine=f=440:d=2[b];[a][b]acrossfade=d=1" -f framecrc -

Signed-off-by: Marton Balint <cus at passwd.hu>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=84d831ec581470ce3d0202617f860f0b43db49c2
---

 libavfilter/af_afade.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/libavfilter/af_afade.c b/libavfilter/af_afade.c
index b006420111..baf972d17d 100644
--- a/libavfilter/af_afade.c
+++ b/libavfilter/af_afade.c
@@ -541,13 +541,6 @@ CROSSFADE(flt, float)
 CROSSFADE(s16, int16_t)
 CROSSFADE(s32, int32_t)
 
-static int check_input(AVFilterLink *inlink)
-{
-    const int queued_samples = ff_inlink_queued_samples(inlink);
-
-    return ff_inlink_check_available_samples(inlink, queued_samples + 1) == 1;
-}
-
 static int pass_frame(AVFilterLink *inlink, AVFilterLink *outlink, int64_t *pts)
 {
     AVFrame *in;
@@ -675,10 +668,10 @@ static int activate(AVFilterContext *ctx)
                ff_inlink_queued_samples(ctx->inputs[1]) >= s->nb_samples) {
         return pass_crossfade(ctx);
     } else if (ff_outlink_frame_wanted(outlink)) {
-        if (!s->status[0] && check_input(ctx->inputs[0]))
+        if (!s->status[0] && ff_outlink_get_status(ctx->inputs[0]))
             s->status[0] = AVERROR_EOF;
         s->passthrough = !s->status[0];
-        if (check_input(ctx->inputs[1])) {
+        if (ff_outlink_get_status(ctx->inputs[1])) {
             s->status[1] = AVERROR_EOF;
             ff_outlink_set_status(outlink, AVERROR_EOF, AV_NOPTS_VALUE);
             return 0;



More information about the ffmpeg-cvslog mailing list