[FFmpeg-devel] [PATCH] lavf/img2dec: add option to disable pattern matching

Michael Niedermayer michaelni at gmx.at
Tue May 12 13:32:52 CEST 2015


On Tue, May 12, 2015 at 01:26:56PM +0200, Stefano Sabatini wrote:
> On date Tuesday 2015-05-12 02:22:02 +0200, Marton Balint encoded:
> > Signed-off-by: Marton Balint <cus at 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
> > + at 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.

applied

thanks

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

If you think the mosad wants you dead since a long time then you are either
wrong or dead since a long time.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20150512/85e33be4/attachment.asc>


More information about the ffmpeg-devel mailing list