avconv: support infinite loop for the loop option
authorAlexandra Hájková <alexandra.khirnova@gmail.com>
Wed, 21 Oct 2015 10:03:58 +0000 (12:03 +0200)
committerLuca Barbato <lu_zero@gentoo.org>
Mon, 26 Oct 2015 18:28:24 +0000 (19:28 +0100)
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
avconv.c
doc/avconv.texi

index ed0a3dd..493f9d2 100644 (file)
--- a/avconv.c
+++ b/avconv.c
@@ -2329,7 +2329,8 @@ static int seek_to_start(InputFile *ifile, AVFormatContext *is)
                                         ifile->time_base);
     }
 
-    ifile->loop--;
+    if (ifile->loop > 0)
+        ifile->loop--;
 
     return ret;
 }
@@ -2375,7 +2376,7 @@ static int process_input(void)
         ifile->eagain = 1;
         return ret;
     }
-    if ((ret < 0) && (ifile->loop > 1)) {
+    if (ret < 0 && ifile->loop) {
         if ((ret = seek_to_start(ifile, is)) < 0)
             return ret;
         ret = get_input_packet(ifile, &pkt);
index bee2039..6aaf445 100644 (file)
@@ -254,7 +254,8 @@ Overwrite output files without asking.
 Immediately exit when output files already exist.
 
 @item -loop @var{number} (@emph{input})
-Set number of times input stream shall be looped.
+Set number of times input stream shall be looped. Loop 0 means no loop,
+loop -1 means infinite loop.
 
 @item -c[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream})
 @itemx -codec[:@var{stream_specifier}] @var{codec} (@emph{input/output,per-stream})