On 5/23/19, Marton Balint <c...@passwd.hu> wrote: > Fixes infinte loop with -vf loop=loop=1 and also fixes looping when the > input > is less frames than the specified loop size. > > Possible regressions since ef1aadffc785b48ed62c45d954289e754f43ef46. > > Signed-off-by: Marton Balint <c...@passwd.hu> > --- > libavfilter/f_loop.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/libavfilter/f_loop.c b/libavfilter/f_loop.c > index d9d55f9837..fcbd742eb4 100644 > --- a/libavfilter/f_loop.c > +++ b/libavfilter/f_loop.c > @@ -343,7 +343,7 @@ static int activate(AVFilterContext *ctx) > > FF_FILTER_FORWARD_STATUS_BACK(outlink, inlink); > > - if (!s->eof && (s->nb_frames < s->size || !s->loop)) { > + if (!s->eof && (s->nb_frames < s->size || !s->loop || !s->size)) { > ret = ff_inlink_consume_frame(inlink, &frame); > if (ret < 0) > return ret; > @@ -352,11 +352,13 @@ static int activate(AVFilterContext *ctx) > } > > if (!s->eof && ff_inlink_acknowledge_status(inlink, &status, &pts)) { > - if (status == AVERROR_EOF) > + if (status == AVERROR_EOF) { > + s->size = s->nb_frames; > s->eof = 1; > + } > } > > - if (s->eof && (s->loop == 0 || s->nb_frames < s->size)) { > + if (s->eof && (!s->loop || !s->size)) { > ff_outlink_set_status(outlink, AVERROR_EOF, s->duration); > return 0; > } > -- > 2.16.4 >
lgtm > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".