[FFmpeg-devel] [RFC] av_set_string() semantics
Stefano Sabatini
stefano.sabatini-lala
Sat May 24 12:00:27 CEST 2008
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,
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.
Best regards.
--
FFmpeg = Freak Fast MultiPurpose EnGine
More information about the ffmpeg-devel
mailing list