diff options
author | Marton Balint <cus@passwd.hu> | 2015-05-12 03:22:02 +0300 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-05-12 14:32:23 +0300 |
commit | 93cc5ca7ed14a9fa7e7ed3503743d95594466cd6 (patch) | |
tree | f3521c5cfffdbeb40ecda92365dbe8c1c4ec5a59 | |
parent | 37efad4e5b6631ad902e8ae3d19e850037d22efb (diff) |
lavf/img2dec: add option to disable pattern matching
Signed-off-by: Marton Balint <cus@passwd.hu>
Reviewed-by: Stefano Sabatini <stefasab@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | doc/demuxers.texi | 4 | ||||
-rw-r--r-- | libavformat/img2.h | 3 | ||||
-rw-r--r-- | libavformat/img2dec.c | 9 | ||||
-rw-r--r-- | libavformat/version.h | 2 |
4 files changed, 13 insertions, 5 deletions
diff --git a/doc/demuxers.texi b/doc/demuxers.texi index 3f7c45e843..b7ddebb9a9 100644 --- a/doc/demuxers.texi +++ b/doc/demuxers.texi @@ -258,6 +258,10 @@ Select the pattern type used to interpret the provided filename. @var{pattern_type} accepts one of the following values. @table @option +@item none +Disable pattern matching, therefore the video will only contain the specified +image. You should use this option if you do not want to create sequences from +multiple images and your filenames may contain special pattern characters. @item sequence Select a sequence pattern type, used to specify a sequence of files indexed by sequential numbers. diff --git a/libavformat/img2.h b/libavformat/img2.h index e4bcb26da8..f6b9dd9220 100644 --- a/libavformat/img2.h +++ b/libavformat/img2.h @@ -33,7 +33,8 @@ enum PatternType { PT_GLOB_SEQUENCE, PT_GLOB, - PT_SEQUENCE + PT_SEQUENCE, + PT_NONE }; typedef struct VideoDemuxData { diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c index ba2911074b..0830f0073c 100644 --- a/libavformat/img2dec.c +++ b/libavformat/img2dec.c @@ -177,7 +177,7 @@ static int img_read_probe(AVProbeData *p) int ff_img_read_header(AVFormatContext *s1) { VideoDemuxData *s = s1->priv_data; - int first_index, last_index; + int first_index = 1, last_index = 1; AVStream *st; enum AVPixelFormat pix_fmt = AV_PIX_FMT_NONE; @@ -282,7 +282,7 @@ int ff_img_read_header(AVFormatContext *s1) "is not supported by this libavformat build\n"); return AVERROR(ENOSYS); #endif - } else if (s->pattern_type != PT_GLOB_SEQUENCE) { + } else if (s->pattern_type != PT_GLOB_SEQUENCE && s->pattern_type != PT_NONE) { av_log(s1, AV_LOG_ERROR, "Unknown value '%d' for pattern_type option\n", s->pattern_type); return AVERROR(EINVAL); @@ -377,7 +377,9 @@ int ff_img_read_packet(AVFormatContext *s1, AVPacket *pkt) } if (s->img_number > s->img_last) return AVERROR_EOF; - if (s->use_glob) { + if (s->pattern_type == PT_NONE) { + av_strlcpy(filename_bytes, s->path, sizeof(filename_bytes)); + } else if (s->use_glob) { #if HAVE_GLOB filename = s->globstate.gl_pathv[s->img_number]; #endif @@ -538,6 +540,7 @@ const AVOption ff_img_options[] = { { "glob_sequence","select glob/sequence pattern type", 0, AV_OPT_TYPE_CONST, {.i64=PT_GLOB_SEQUENCE}, INT_MIN, INT_MAX, DEC, "pattern_type" }, { "glob", "select glob pattern type", 0, AV_OPT_TYPE_CONST, {.i64=PT_GLOB }, INT_MIN, INT_MAX, DEC, "pattern_type" }, { "sequence", "select sequence pattern type", 0, AV_OPT_TYPE_CONST, {.i64=PT_SEQUENCE }, INT_MIN, INT_MAX, DEC, "pattern_type" }, + { "none", "disable pattern matching", 0, AV_OPT_TYPE_CONST, {.i64=PT_NONE }, 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 }, INT_MIN, INT_MAX, DEC }, diff --git a/libavformat/version.h b/libavformat/version.h index 071fe5dcaf..e16d316286 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -31,7 +31,7 @@ #define LIBAVFORMAT_VERSION_MAJOR 56 #define LIBAVFORMAT_VERSION_MINOR 33 -#define LIBAVFORMAT_VERSION_MICRO 100 +#define LIBAVFORMAT_VERSION_MICRO 101 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ LIBAVFORMAT_VERSION_MINOR, \ |