aboutsummaryrefslogtreecommitdiffstats
path: root/fftools/ffmpeg_filter.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2024-01-24 10:42:13 +0100
committerAnton Khirnov <anton@khirnov.net>2024-01-27 09:24:29 +0100
commit1ea2e757f7cba714eefd27efb2f9285078bba4a3 (patch)
tree9e330c7732b043fabbf09c73e1ad0963b92662ec /fftools/ffmpeg_filter.c
parent00013341dfd674b72acb8d93fb6b3f3dc7ebc42e (diff)
downloadffmpeg-1ea2e757f7cba714eefd27efb2f9285078bba4a3.tar.gz
fftools/ffmpeg_filter: do not end filtering when a graph input EOFs
There may be other inputs or sources in the filtergraph. Propagate the EOF to the scheduler and continue filtering. Fixes #10803
Diffstat (limited to 'fftools/ffmpeg_filter.c')
-rw-r--r--fftools/ffmpeg_filter.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
index 82ee4fae7d..ab64b4610a 100644
--- a/fftools/ffmpeg_filter.c
+++ b/fftools/ffmpeg_filter.c
@@ -2871,6 +2871,12 @@ static void *filter_thread(void *arg)
ret = send_eof(&fgt, ifilter, fgt.frame->pts, fgt.frame->time_base);
}
av_frame_unref(fgt.frame);
+ if (ret == AVERROR_EOF) {
+ av_log(fg, AV_LOG_VERBOSE, "Input %u no longer accepts new data\n",
+ input_idx);
+ sch_filter_receive_finish(fgp->sch, fgp->sch_idx, input_idx);
+ continue;
+ }
if (ret < 0)
goto finish;