[FFmpeg-devel] [PATCH 1/2] remove the non-negative number requirement for start_number option

Liviu Oniciuc klmno.dev at gmx.com
Tue Feb 3 18:01:29 CET 2015


industrial cameras usually mark the trigger frame as frame number 0
all frames saved before trigger frame receive a negative sequence number
---
 libavformat/img2dec.c | 2 +-
 libavformat/utils.c   | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)
 mode change 100644 => 100755 libavformat/img2dec.c
 mode change 100644 => 100755 libavformat/utils.c

diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c
old mode 100644
new mode 100755
index 68cbefd..1ab1309
--- a/libavformat/img2dec.c
+++ b/libavformat/img2dec.c
@@ -537,7 +537,7 @@ const AVOption ff_img_options[] = {
     { "sequence",     "select sequence pattern type",        0, AV_OPT_TYPE_CONST,  {.i64=PT_SEQUENCE     }, INT_MIN, INT_MAX, DEC, "pattern_type" },
 
     { "pixel_format", "set video pixel format",              OFFSET(pixel_format), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0,       DEC },
-    { "start_number", "set first number in the sequence",    OFFSET(start_number), AV_OPT_TYPE_INT,    {.i64 = 0   }, 0, INT_MAX, DEC },
+    { "start_number", "set first number in the sequence",    OFFSET(start_number), AV_OPT_TYPE_INT,    {.i64 = 0   }, INT_MIN, INT_MAX, DEC },
     { "start_number_range", "set range for looking at the first sequence number", OFFSET(start_number_range), AV_OPT_TYPE_INT, {.i64 = 5}, 1, INT_MAX, DEC },
     { "video_size",   "set video size",                      OFFSET(width),        AV_OPT_TYPE_IMAGE_SIZE, {.str = NULL}, 0, 0,   DEC },
     { "frame_size",   "force frame size in bytes",           OFFSET(frame_size),   AV_OPT_TYPE_INT,    {.i64 = 0   }, 0, INT_MAX, DEC },
diff --git a/libavformat/utils.c b/libavformat/utils.c
old mode 100644
new mode 100755
index f6df49b..d208aa2
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -3829,6 +3829,8 @@ int av_get_frame_filename(char *buf, int buf_size, const char *path, int number)
                 if (percentd_found)
                     goto fail;
                 percentd_found = 1;
+                if(number < 0)
+                    nd += 1;
                 snprintf(buf1, sizeof(buf1), "%0*d", nd, number);
                 len = strlen(buf1);
                 if ((q - buf + len) > buf_size - 1)
-- 
1.9.1



More information about the ffmpeg-devel mailing list