[FFmpeg-devel] [PATCH] avformat: Allow forcing use of AVParsers

Ronald S. Bultje rsbultje at gmail.com
Tue Sep 6 03:02:41 EEST 2016


Hi,

On Mon, Sep 5, 2016 at 6:49 AM, Michael Niedermayer <michael at niedermayer.cc>
wrote:

> On Mon, Sep 05, 2016 at 06:17:02AM -0400, Ronald S. Bultje wrote:
> > Hi,
> >
> > On Sep 5, 2016 12:05 PM, "Michael Niedermayer" <michael at niedermayer.cc>
> > wrote:
> > >
> > > On Mon, Sep 05, 2016 at 05:25:14AM -0400, Ronald S. Bultje wrote:
> > > > Hi,
> > > >
> > > > On Sep 5, 2016 11:18 AM, "Michael Niedermayer"
> <michael at niedermayer.cc>
> > > > wrote:
> > > > >
> > > > > TODO: version bump, docs
> > > > >
> > > > > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> > > > > ---
> > > > >  libavformat/avformat.h      | 8 ++++++++
> > > > >  libavformat/options_table.h | 1 +
> > > > >  libavformat/utils.c         | 3 +++
> > > > >  3 files changed, 12 insertions(+)
> > > > >
> > > > > diff --git a/libavformat/avformat.h b/libavformat/avformat.h
> > > > > index 3ee7051..33b921a 100644
> > > > > --- a/libavformat/avformat.h
> > > > > +++ b/libavformat/avformat.h
> > > > > @@ -1886,6 +1886,14 @@ typedef struct AVFormatContext {
> > > > >       * - decoding: set by user through AVOptions (NO direct
> access)
> > > > >       */
> > > > >      char *protocol_blacklist;
> > > > > +
> > > > > +    /**
> > > > > +     * Force parsing.
> > > > > +     * - encoding: unused
> > > > > +     * - decoding: set by user through AVOptions (NO direct
> access)
> > > > > +     */
> > > > > +    int force_parsing;
> > > > > +
> > > > >  } AVFormatContext;
> > > > >
> > > > >  int av_format_get_probe_score(const AVFormatContext *s);
> > > > > diff --git a/libavformat/options_table.h
> b/libavformat/options_table.h
> > > > > index 3b74d1b..359796c 100644
> > > > > --- a/libavformat/options_table.h
> > > > > +++ b/libavformat/options_table.h
> > > > > @@ -103,6 +103,7 @@ static const AVOption avformat_options[] = {
> > > > >  {"format_whitelist", "List of demuxers that are allowed to be
> used",
> > > > OFFSET(format_whitelist), AV_OPT_TYPE_STRING, { .str = NULL },
> >  CHAR_MIN,
> > > > CHAR_MAX, D },
> > > > >  {"protocol_whitelist", "List of protocols that are allowed to be
> > used",
> > > > OFFSET(protocol_whitelist), AV_OPT_TYPE_STRING, { .str = NULL },
> >  CHAR_MIN,
> > > > CHAR_MAX, D },
> > > > >  {"protocol_blacklist", "List of protocols that are not allowed to
> be
> > > > used", OFFSET(protocol_blacklist), AV_OPT_TYPE_STRING, { .str = NULL
> },
> > > > CHAR_MIN, CHAR_MAX, D },
> > > > > +{"forceparsing", "force use of AVParsers", OFFSET(force_parsing),
> > > > AV_OPT_TYPE_INT, { .i64 = -1 },  -1, AVSTREAM_PARSE_FULL_ONCE, D },
> > > > >  {NULL},
> > > > >  };
> > > >
> > > > Why int?
> > >
> > > what else ?
> > > a flag doesnt work as AVStreamParseType has more than 1 value
> >
> > An enum would be nice.
>
> enums are not guranteed to be stored in a specific data type
> 2 enums could be stored in different data types, one could be int16
> one uint32 one int64
> that makes using enums with AVOption difficult. (which is why i
> used an int)


Named options, or whatever you want to call it.

AVOptions supports it, please use it.

Ronald


More information about the ffmpeg-devel mailing list