From c9646fda016605426a690bc4c105c0568752750a Mon Sep 17 00:00:00 2001 From: Philip Gladstone Date: Wed, 11 Dec 2002 03:20:05 +0000 Subject: [PATCH] * Extend the syntax of a filename for the img reader to allow looping. Thus %125*d means substitute the frame number MOD 125 into the filename. This is a cheap method of having an infinite stream. Originally committed as revision 1332 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/utils.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 239b14eb55..d36df449b4 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -1089,11 +1089,20 @@ int get_frame_filename(char *buf, int buf_size, if (c == '\0') break; if (c == '%') { - nd = 0; - while (*p >= '0' && *p <= '9') { - nd = nd * 10 + *p++ - '0'; - } - c = *p++; + do { + nd = 0; + while (isdigit(*p)) { + nd = nd * 10 + *p++ - '0'; + } + c = *p++; + if (c == '*' && nd > 0) { + // The nd field is actually the modulus + number = number % nd; + c = *p++; + nd = 0; + } + } while (isdigit(c)); + switch(c) { case '%': goto addchar;