They allow to implement the if/then/else logic, which cannot be
implemented otherwise.
For example the expression:
A*B + not(A)*C
always evaluates to NaN if B is NaN, even in the case where A is 0.
For some of the code e.g. doing timing measurements there is no
real point in running regression testing on it, thus it should
not be counted against coverage.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
eval API.
More grep-friendly and more consistent with the rest of the FFmpeg
API.
Originally committed as revision 25708 to svn://svn.ffmpeg.org/ffmpeg/trunk
prefix does not contain other characters which may belong to an
identifier.
This allows to distinguish for example to have different constants
with the same prefix (e.g. "foo" and "foobar").
Originally committed as revision 25626 to svn://svn.ffmpeg.org/ffmpeg/trunk
const_name -> const_names
const_value -> const_values
func[12]_name -> func[12]_names
func[12] -> funcs[12]
All these parameters contain a list of values, using plural names for
them help understanding a little.
Originally committed as revision 23403 to svn://svn.ffmpeg.org/ffmpeg/trunk
containing an error code.
Allow these functions to convey the reason of the failure to the
calling function, failure which is not always due to a parsing error
but it may depend for example on a memory problem.
Also fix several potential memleaks.
Originally committed as revision 23402 to svn://svn.ffmpeg.org/ffmpeg/trunk
ff_parse_and_eval_expr(), place the names for constants/functions
before the corresponding values.
This looks more readable, as the user is expected to know the names
before the values.
Originally committed as revision 23149 to svn://svn.ffmpeg.org/ffmpeg/trunk
Passing an explicit filename to this command is only necessary if the
documentation in the @file block refers to a file different from the
one the block resides in.
Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
ff_parse_and_eval_expr().
Change func[12] attributes from "** func" to "* const * func".
This is consistent with the semantics of the provided arrays of
functions, which are not supposed to be changed by the ff_parse_*
functions.
Also fix the GCC compilation warnings:
libavcodec/ratecontrol.c: In function ‘ff_rate_control_init’:
libavcodec/ratecontrol.c:109: warning: passing argument 3 of ‘ff_parse_expr’ discards qualifiers from pointer target type
libavcodec/eval.h:69: note: expected ‘double (**)(void *, double)’ but argument is of type ‘double (* const*)(void *, double)’
Originally committed as revision 22860 to svn://svn.ffmpeg.org/ffmpeg/trunk