diff --git a/doc/ffmpeg.texi b/doc/ffmpeg.texi index 651c33c97e..08b1ed2ee5 100644 --- a/doc/ffmpeg.texi +++ b/doc/ffmpeg.texi @@ -254,7 +254,8 @@ Do not overwrite output files, and exit immediately if a specified output file already exists. @item -stream_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}) diff --git a/ffmpeg.c b/ffmpeg.c index f91fb7b7d4..afe1cb71fe 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -3698,7 +3698,8 @@ static int seek_to_start(InputFile *ifile, AVFormatContext *is) ifile->time_base); } - ifile->loop--; + if (ifile->loop > 0) + ifile->loop--; return ret; } @@ -3726,7 +3727,7 @@ static int process_input(int file_index) 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);