On date Tuesday 2015-05-12 02:22:02 +0200, Marton Balint encoded: > Signed-off-by: Marton Balint <c...@passwd.hu> > --- > doc/demuxers.texi | 4 ++++ > libavformat/img2.h | 3 ++- > libavformat/img2dec.c | 9 ++++++--- > libavformat/version.h | 2 +- > 4 files changed, 13 insertions(+), 5 deletions(-) > > diff --git a/doc/demuxers.texi b/doc/demuxers.texi > index 3f7c45e..b7ddebb 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 e4bcb26..f6b9dd9 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 ba29110..0830f00 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 071fe5d..e16d316 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, \
LGTM. -- FFmpeg = Fierce & Fostering Meaningless Portable Exuberant Giant _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel