On Sun, Sep 06, 2015 at 11:16:36PM +0200, Michael Niedermayer wrote:
> On Sun, Sep 06, 2015 at 07:43:47PM +0200, Clément Bœsch wrote:
> > TODO: bump lavu minor
> > ---
> > libavutil/opt.c | 69
> > +++++++++++++++++++++++++++++++++++++++++++++++++++++-
> > libavutil/opt.h | 1 +
> > tests/ref/fate/opt | 22 +++++++++++++++--
> > 3 files changed, 89 insertions(+), 3 deletions(-)
> >
> > diff --git a/libavutil/opt.c b/libavutil/opt.c
> > index 4030fa8..9912d9e 100644
> > --- a/libavutil/opt.c
> > +++ b/libavutil/opt.c
> > @@ -60,6 +60,7 @@ static int read_number(const AVOption *o, const void
> > *dst, double *num, int *den
> > case AV_OPT_TYPE_FLAGS: *intnum = *(unsigned int*)dst;return 0;
> > case AV_OPT_TYPE_PIXEL_FMT: *intnum = *(enum AVPixelFormat
> > *)dst;return 0;
> > case AV_OPT_TYPE_SAMPLE_FMT:*intnum = *(enum
> > AVSampleFormat*)dst;return 0;
> > + case AV_OPT_TYPE_BOOL:
> > case AV_OPT_TYPE_INT: *intnum = *(int *)dst;return 0;
> > case AV_OPT_TYPE_CHANNEL_LAYOUT:
> > case AV_OPT_TYPE_DURATION:
> > @@ -96,6 +97,7 @@ static int write_number(void *obj, const AVOption *o,
> > void *dst, double num, int
> > switch (o->type) {
> > case AV_OPT_TYPE_PIXEL_FMT: *(enum AVPixelFormat *)dst =
> > llrint(num/den) * intnum; break;
> > case AV_OPT_TYPE_SAMPLE_FMT:*(enum AVSampleFormat*)dst =
> > llrint(num/den) * intnum; break;
> > + case AV_OPT_TYPE_BOOL:
> > case AV_OPT_TYPE_FLAGS:
> > case AV_OPT_TYPE_INT: *(int *)dst= llrint(num/den)*intnum;
> > break;
> > case AV_OPT_TYPE_DURATION:
> > @@ -297,6 +299,49 @@ static int set_string_color(void *obj, const AVOption
> > *o, const char *val, uint8
> > return 0;
> > }
> >
> > +static const char *get_bool_name(int val)
> > +{
> > + if (val < 0)
> > + return "auto";
> > + return val ? "true" : "false";
> > +}
> > +
>
> > +static int parse_bool(void *log_ctx, const char *val, int *dst)
> > +{
> > + int i;
> > + static const char * const str_y[] = {"1", "true", "y", "yes",
> > "enable", "enabled"};
> > + static const char * const str_n[] = {"0", "false", "n", "no",
> > "disable", "disabled"};
> > +
> > + if (!strcmp(val, "auto")) {
> > + *dst = -1;
> > + return 0;
> > + }
> > +
> > + for (i = 0; i < FF_ARRAY_ELEMS(str_y); i++) {
> > + if (!strcmp(val, str_y[i])) {
> > + *dst = 1;
> > + return 0;
> > + }
> > + }
> > +
> > + for (i = 0; i < FF_ARRAY_ELEMS(str_n); i++) {
> > + if (!strcmp(val, str_n[i])) {
> > + *dst = 0;
> > + return 0;
> > + }
> > + }
> > +
>
> this can be simplified with av_match_name() or something similar
> Ah, nice, changed. > patch LGTM > I made a bunch more changes & fixes: - dropped the redundant "0", "1" (any number within the range will be OK) - checked the ranges (so "auto" is not accepted if the range doesn't go down to -1 for instance - tested that av_opt_set_int() works as expected as requested by nev - added on/off alias Bumped & applied. Thanks all for the reviews. -- Clément B.
pgpVBH7hIsZDd.pgp
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
