FFmpeg
|
simple arithmetic expression evaluator More...
#include "avutil.h"
Go to the source code of this file.
Typedefs | |
typedef struct AVExpr | AVExpr |
Functions | |
int | av_expr_parse_and_eval (double *res, const char *s, const char *const *const_names, const double *const_values, const char *const *func1_names, double(*const *funcs1)(void *, double), const char *const *func2_names, double(*const *funcs2)(void *, double, double), void *opaque, int log_offset, void *log_ctx) |
Parse and evaluate an expression. More... | |
int | av_expr_parse (AVExpr **expr, const char *s, const char *const *const_names, const char *const *func1_names, double(*const *funcs1)(void *, double), const char *const *func2_names, double(*const *funcs2)(void *, double, double), int log_offset, void *log_ctx) |
Parse an expression. More... | |
double | av_expr_eval (AVExpr *e, const double *const_values, void *opaque) |
Evaluate a previously parsed expression. More... | |
void | av_expr_free (AVExpr *e) |
Free a parsed expression previously created with av_expr_parse(). More... | |
double | av_strtod (const char *numstr, char **tail) |
Parse the string in numstr and return its value as a double. More... | |
Detailed Description
simple arithmetic expression evaluator
Definition in file eval.h.
Typedef Documentation
Function Documentation
Evaluate a previously parsed expression.
- Parameters
-
const_values a zero terminated array of values for the identifiers from av_expr_parse() const_names opaque a pointer which will be passed to all functions from funcs1 and funcs2
- Returns
- the value of the expression
Definition at line 691 of file eval.c.
Referenced by av_expr_parse_and_eval(), config_props(), DEFINE_BLEND(), do_video_out(), draw_text(), eval_expr(), filter_frame(), geq_filter_frame(), get_qscale(), init(), modplug_read_packet(), request_frame(), select_frame(), and send_next().
Free a parsed expression previously created with av_expr_parse().
Definition at line 302 of file eval.c.
Referenced by av_expr_free(), av_expr_parse(), av_expr_parse_and_eval(), exit_program(), ff_rate_control_uninit(), geq_uninit(), parse_expr(), parse_factor(), parse_primary(), parse_subexpr(), parse_term(), set_expr(), and uninit().
int av_expr_parse | ( | AVExpr ** | expr, |
const char * | s, | ||
const char *const * | const_names, | ||
const char *const * | func1_names, | ||
double(**)(void *, double) | funcs1, | ||
const char *const * | func2_names, | ||
double(**)(void *, double, double) | funcs2, | ||
int | log_offset, | ||
void * | log_ctx | ||
) |
Parse an expression.
- Parameters
-
expr a pointer where is put an AVExpr containing the parsed value in case of successful parsing, or NULL otherwise. The pointed to AVExpr must be freed with av_expr_free() by the user when it is not needed anymore. s expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)" const_names NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0} func1_names NULL terminated array of zero terminated strings of funcs1 identifiers funcs1 NULL terminated array of function pointers for functions which take 1 argument func2_names NULL terminated array of zero terminated strings of funcs2 identifiers funcs2 NULL terminated array of function pointers for functions which take 2 arguments log_ctx parent logging context
- Returns
- 0 in case of success, a negative value corresponding to an AVERROR code otherwise
Definition at line 640 of file eval.c.
Referenced by av_expr_parse_and_eval(), config_input(), config_props(), ff_rate_control_init(), geq_init(), init(), modplug_read_header(), set_expr(), and transcode_init().
int av_expr_parse_and_eval | ( | double * | res, |
const char * | s, | ||
const char *const * | const_names, | ||
const double * | const_values, | ||
const char *const * | func1_names, | ||
double(**)(void *, double) | funcs1, | ||
const char *const * | func2_names, | ||
double(**)(void *, double, double) | funcs2, | ||
void * | opaque, | ||
int | log_offset, | ||
void * | log_ctx | ||
) |
Parse and evaluate an expression.
Note, this is significantly slower than av_expr_eval().
- Parameters
-
res a pointer to a double where is put the result value of the expression, or NAN in case of error s expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)" const_names NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0} const_values a zero terminated array of values for the identifiers from const_names func1_names NULL terminated array of zero terminated strings of funcs1 identifiers funcs1 NULL terminated array of function pointers for functions which take 1 argument func2_names NULL terminated array of zero terminated strings of funcs2 identifiers funcs2 NULL terminated array of function pointers for functions which take 2 arguments opaque a pointer which will be passed to all functions from funcs1 and funcs2 log_ctx parent logging context
- Returns
- 0 in case of success, a negative value corresponding to an AVERROR code otherwise
Definition at line 701 of file eval.c.
Referenced by av_expr_parse_and_eval(), av_parse_ratio(), config(), config_input(), config_output_props(), config_props(), func_eval_expr(), init(), main(), and set_string_number().
double av_strtod | ( | const char * | numstr, |
char ** | tail | ||
) |
Parse the string in numstr and return 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.
- Parameters
-
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. tail if non-NULL puts here the pointer to the char next after the last parsed character
Definition at line 89 of file eval.c.
Referenced by ff_parse_sample_rate(), parse_number_or_die(), parse_points_str(), parse_primary(), var_read_float(), and yae_set_tempo().
Generated on Mon Nov 18 2024 06:52:05 for FFmpeg by 1.8.11