Le decadi 20 vendémiaire, an CCXXV, Moritz Barsnick a écrit : > Expands the parser to also accept the separator '-' in addition to > '+', and take the negative sign into consideration. > > Signed-off-by: Moritz Barsnick <barsn...@gmx.net> > --- > doc/filters.texi | 2 +- > libavfilter/af_pan.c | 11 ++++++++--- > 2 files changed, 9 insertions(+), 4 deletions(-) > > diff --git a/doc/filters.texi b/doc/filters.texi > index 4b2f7bf..fb4756e 100644 > --- a/doc/filters.texi > +++ b/doc/filters.texi > @@ -3001,7 +3001,7 @@ output channel layout or number of channels > > @item outdef > output channel specification, of the form: > -"@var{out_name}=[@var{gain}*]@var{in_name}[+[@var{gain}*]@var{in_name}...]" > +"@var{out_name}=[@var{gain}*]@var{in_name}[(+-)[@var{gain}*]@var{in_name}...]" > > @item out_name > output channel to define, either a channel name (FL, FR, etc.) or a channel > diff --git a/libavfilter/af_pan.c b/libavfilter/af_pan.c > index fbd79a5..161097a 100644 > --- a/libavfilter/af_pan.c > +++ b/libavfilter/af_pan.c > @@ -102,7 +102,7 @@ static av_cold int init(AVFilterContext *ctx) > { > PanContext *const pan = ctx->priv; > char *arg, *arg0, *tokenizer, *args = av_strdup(pan->args); > - int out_ch_id, in_ch_id, len, named, ret; > + int out_ch_id, in_ch_id, len, named, ret, sign = 1; > int nb_in_channels[2] = { 0, 0 }; // number of unnamed and named input > channels > double gain; > > @@ -178,15 +178,20 @@ static av_cold int init(AVFilterContext *ctx) > ret = AVERROR(EINVAL); > goto fail; > } > - pan->gain[out_ch_id][in_ch_id] = gain; > + pan->gain[out_ch_id][in_ch_id] = sign * gain; > skip_spaces(&arg); > if (!*arg) > break; > - if (*arg != '+') { > + if (*arg == '-') { > + sign = -1; > + } else if (*arg != '+') { > av_log(ctx, AV_LOG_ERROR, "Syntax error near \"%.8s\"\n", > arg); > ret = AVERROR(EINVAL); > goto fail;
> } > + else { Nit: inconsistent placement of the else clause. Not blocking. > + sign = 1; > + } > arg++; > } > } I would have put the "sign = 1" unconditionally before the test for the delimiter, but this version works too, so LGTM. Regards, -- Nicolas George
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel