[FFmpeg-devel] [RFC] av_set_string() semantics
Stefano Sabatini
stefano.sabatini-lala
Sat May 24 12:22:19 CEST 2008
On date Saturday 2008-05-24 12:00:27 +0200, Stefano Sabatini encoded:
> Hi all,
>
> Setting a value for an option with av_set_string() for a number or a
> flag option currently works like this:
>
> * A '+' or '-' at the beginning of the value string cause the
> following value to be added to the *default* value for the option,
Amendment: s/default/current/ here and below.
> that is for example:
> ffmpeg -foo +1
>
> sets the foo value to default+1
>
> while
>
> ffmpeg -foo -1
> sets the foo value to default-1.
>
> If you want to set the foo value to -1 you have to perform:
> ffmpeg -foo 0-1
>
> (BTW this behaviour was always true for flags options, and has been
> introduced for number values too by a recent commit by Michael, so I
> don't know if this is to be considered a bug or a feature...).
>
> Furthermore the evaluation of the value constraints for a number
> value is performed after the reading of each addend, so for example:
> ffmpeg -foo 0-n_1+n_2+n_3+...+n_N
>
> will fail if any of the partial sum S_i = Sum_j=1..n n_j doesn't
> respect the constraints for that value.
>
> This behaviour looks to me very confusing, so my proposal is to change
> the behaviour to this:
>
> * A '-' or a '+' at the beginning of a string value doesn't have any
> special meaning, so for example:
>
> ffmpeg -foo -1
> sets foo to -1
>
> and
> ffmpeg -foo +1
> sets foo to +1.
>
> If you want to set foo to its default value +/- a certain value X you
> have to explicitly set it with:
> ffmpeg -foo default+X
> or
> ffmpeg -foo default-X.
>
> The evaluation of the value constraints is performed after the
> reading of all the addends, so for example:
>
> ffmpeg -foo 0-n_1+n_2+n_3+...+n_N
>
> will fail only if the total Sum_i=1..N n_i doesn't
> respect the constraints for that value.
>
> If you agree with this change I'll provide a patch to implement such
> behaviour, if we don't want to change the semantic of av_set_string()
> we should at least document the current beahviour.
[...]
To be able to modify the current value of an option seems anyway a
good feature to keep, so we could use a new keyword "current", so that
for example:
ffmpeg -foo current+1
will increase by one the current value of foo.
Regards.
--
FFmpeg = Friendly Freak Multimedia Pitiful EnGine
More information about the ffmpeg-devel
mailing list