Prevents hang. Signed-off-by: Paul B Mahol <one...@gmail.com> --- libavfilter/af_join.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/libavfilter/af_join.c b/libavfilter/af_join.c index f8af0a1..7fbab47 100644 --- a/libavfilter/af_join.c +++ b/libavfilter/af_join.c @@ -24,6 +24,9 @@ * a single output */ +#define FF_INTERNAL_FIELDS 1 +#include "framequeue.h" + #include "libavutil/avassert.h" #include "libavutil/channel_layout.h" #include "libavutil/common.h" @@ -402,13 +405,16 @@ static int join_request_frame(AVFilterLink *outlink) { AVFilterContext *ctx = outlink->src; JoinContext *s = ctx->priv; - int i; + int i, ret; /* get a frame on each input */ for (i = 0; i < ctx->nb_inputs; i++) { AVFilterLink *inlink = ctx->inputs[i]; - if (!s->input_frames[i]) - return ff_request_frame(inlink); + if (!s->input_frames[i] || + /* detect EOF immediately */ + (ctx->inputs[i]->status_in && !ctx->inputs[i]->status_out)) + if ((ret = ff_request_frame(inlink)) < 0) + return ret; } return 0; } -- 2.9.3 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel