X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Feval.h;h=5481b1407c72a7a8cd7a153bff3dff35f999566a;hb=18c31f6ff8eef83cd19ea9e431335a854156dd18;hp=71993c56286666549d672a8312a13a3d4c921127;hpb=671adb174250d6b0fc7a562ac810680a6df155e7;p=ffmpeg diff --git a/libavcodec/eval.h b/libavcodec/eval.h index 71993c56286..5481b1407c7 100644 --- a/libavcodec/eval.h +++ b/libavcodec/eval.h @@ -21,23 +21,13 @@ */ /** - * @file eval.h + * @file libavcodec/eval.h * eval header. */ #ifndef AVCODEC_EVAL_H #define AVCODEC_EVAL_H -#if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0) -/** - * @deprecated Use ff_eval2 instead - */ -double ff_eval(char *s, double *const_value, const char **const_name, - double (**func1)(void *, double), const char **func1_name, - double (**func2)(void *, double, double), char **func2_name, - void *opaque); -#endif - /** * Parses and evaluates an expression. * Note, this is significantly slower than ff_parse_eval() @@ -52,10 +42,10 @@ double ff_eval(char *s, double *const_value, const char **const_name, * @param opaque a pointer which will be passed to all functions from func1 and func2 * @return the value of the expression */ -double ff_eval2(char *s, double *const_value, const char **const_name, +double ff_eval2(const char *s, const double *const_value, const char * const *const_name, double (**func1)(void *, double), const char **func1_name, - double (**func2)(void *, double, double), char **func2_name, - void *opaque, char **error); + double (**func2)(void *, double, double), const char **func2_name, + void *opaque, const char **error); typedef struct ff_expr_s AVEvalExpr; @@ -68,20 +58,39 @@ typedef struct ff_expr_s AVEvalExpr; * @param func1_name NULL terminated array of zero terminated strings of func1 identifers * @param func2_name NULL terminated array of zero terminated strings of func2 identifers * @param error pointer to a char* which is set to an error message if something goes wrong - * @return AVEvalExpr which must be freed with ff_eval_free by the user when its not needed anymore + * @return AVEvalExpr which must be freed with ff_eval_free by the user when it is not needed anymore * NULL if anything went wrong */ -AVEvalExpr * ff_parse(char *s, const char **const_name, +AVEvalExpr * ff_parse(const char *s, const char * const *const_name, double (**func1)(void *, double), const char **func1_name, - double (**func2)(void *, double, double), char **func2_name, - char **error); + double (**func2)(void *, double, double), const char **func2_name, + const char **error); /** * Evaluates a previously parsed expression. * @param const_value a zero terminated array of values for the identifers from ff_parse const_name * @param opaque a pointer which will be passed to all functions from func1 and func2 * @return the value of the expression */ -double ff_parse_eval(AVEvalExpr * e, double *const_value, void *opaque); +double ff_parse_eval(AVEvalExpr * e, const double *const_value, void *opaque); void ff_eval_free(AVEvalExpr * e); +/** + * Parses the string in numstr and returns its value as a double. If + * the string is empty, contains only whitespaces, or does not contain + * an initial substring that has the expected syntax for a + * floating-point number, no conversion is performed. In this case, + * returns a value of zero and the value returned in tail is the value + * of numstr. + * + * @param numstr a string representing a number, may contain one of + * the International System number postfixes, for example 'K', 'M', + * 'G'. If 'i' is appended after the postfix, powers of 2 are used + * instead of powers of 10. The 'B' postfix multiplies the value for + * 8, and can be appended after another postfix or used alone. This + * allows using for example 'KB', 'MiB', 'G' and 'B' as postfix. + * @param tail if non-NULL puts here the pointer to the char next + * after the last parsed character + */ +double av_strtod(const char *numstr, char **tail); + #endif /* AVCODEC_EVAL_H */