On Fri, 24 May 2019, Paul B Mahol wrote:

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

Thanks, applied the series.

Regards,
Marton
_______________________________________________
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".

Reply via email to