FFmpeg
Loading...
Searching...
No Matches
Functions
eval.h File Reference

simple arithmetic expression evaluator More...

Go to the source code of this file.

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.
 
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.
 
double  av_expr_eval (AVExpr *e, const double *const_values, void *opaque)
  Evaluate a previously parsed expression.
 
int  av_expr_count_vars (AVExpr *e, unsigned *counter, int size)
  Track the presence of variables and their number of occurrences in a parsed expression.
 
int  av_expr_count_func (AVExpr *e, unsigned *counter, int size, int arg)
  Track the presence of user provided functions and their number of occurrences in a parsed expression.
 
void  av_expr_free (AVExpr *e)
  Free a parsed expression previously created with av_expr_parse().
 
double  av_strtod (const char *numstr, char **tail)
  Parse the string in numstr and return its value as a double.
 

Detailed Description

simple arithmetic expression evaluator

Definition in file eval.h.

Function Documentation

◆  av_expr_parse_and_eval()

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(** funcs1 )(void *, double),
const char *const * func2_names,
double(** funcs2 )(void *, double, double),
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_offset log level offset, can be used to silence error messages
log_ctx parent logging context
Returns
>= 0 in case of success, a negative value corresponding to an AVERROR code otherwise

Definition at line 839 of file eval.c.

Referenced by activate(), av_parse_ratio(), calc_persp_luts(), config_input(), config_input(), config_input(), config_output(), config_output_props(), config_props(), config_props(), config_props(), drawbox_vaapi_config_output(), eval_expr(), ff_print_eval_expr(), ff_print_formatted_eval_expr(), ff_scale_eval_dimensions(), filter_frame(), filter_frame(), filter_frame(), generate_kernel(), get_aspect_ratio(), main(), pad_opencl_config_output(), pad_vaapi_config_output(), and set_string_number().

◆  av_expr_parse()

int av_expr_parse ( AVExpr ** expr,
const char * s,
const char *const * const_names,
const char *const * func1_names,
double(** funcs1 )(void *, double),
const char *const * func2_names,
double(** funcs2 )(void *, double, double),
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_offset log level offset, can be used to silence error messages
log_ctx parent logging context
Returns
>= 0 in case of success, a negative value corresponding to an AVERROR code otherwise

Definition at line 735 of file eval.c.

Referenced by addroi_init(), av_expr_parse_and_eval(), config_input(), config_input(), config_input(), config_input(), config_input(), config_input(), config_input(), config_input(), config_output(), config_output(), config_output(), config_params(), config_props(), config_props(), ff_rate_control_init(), generate_kernel(), geq_init(), init(), init(), init(), init(), init(), init(), init_axis_color(), init_cqt(), init_volume(), initialize(), libplacebo_init(), modplug_read_header(), noise_init(), nppscale_parse_expr(), process_command(), process_command(), process_command(), process_command(), process_forced_keyframes(), scale_parse_expr(), set_enable_expr(), set_expr(), set_expr(), set_expr(), set_expr(), set_expr(), set_expr(), setts_init(), and vgs_parse_numeric_argument().

◆  av_expr_eval()

double av_expr_eval ( AVExpr * e,
const double * const_values,
void * opaque )

Evaluate a previously parsed expression.

Parameters
e the AVExpr to evaluate
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 824 of file eval.c.

Referenced by activate(), activate(), addroi_config_input(), av_expr_parse_and_eval(), config_input(), config_input(), config_output(), config_output(), config_props(), do_eval(), draw_text(), eval_expr(), eval_expr(), eval_expr(), eval_expr(), eval_pts(), evaluate_timeline_at_frame(), filter_channel(), filter_frame(), filter_frame(), filter_frame(), filter_frame(), filter_frame(), filter_frame(), forced_kf_apply(), generate_kernel(), get_max_local_gain(), get_qscale(), get_target_gain(), init(), init_axis_color(), init_cqt(), init_volume(), modplug_read_packet(), noise(), nppscale_eval_dimensions(), output_single_frame(), parse_expr(), request_frame(), scale_eval_dimensions(), select_frame(), set_brightness(), set_contrast(), set_gamma(), set_saturation(), set_volume(), setts_filter(), slice_geq_filter(), update_alpha(), update_context(), update_crops(), and vgs_eval().

◆  av_expr_count_vars()

int av_expr_count_vars ( AVExpr * e,
unsigned * counter,
int size )

Track the presence of variables and their number of occurrences in a parsed expression.

Parameters
e the AVExpr to track variables in
counter a zero-initialized array where the count of each variable will be stored
size size of array
Returns
0 on success, a negative value indicates that no expression or array was passed or size was zero

Definition at line 814 of file eval.c.

Referenced by check_exprs(), check_exprs(), nppscale_scale(), and scale_frame().

◆  av_expr_count_func()

int av_expr_count_func ( AVExpr * e,
unsigned * counter,
int size,
int arg )

Track the presence of user provided functions and their number of occurrences in a parsed expression.

Parameters
e the AVExpr to track user provided functions in
counter a zero-initialized array where the count of each function will be stored if you passed 5 functions with 2 arguments to av_expr_parse() then for arg=2 this will use up to 5 entries.
size size of array
arg number of arguments the counted functions have
Returns
0 on success, a negative value indicates that no expression or array was passed or size was zero

Definition at line 819 of file eval.c.

Referenced by geq_init().

◆  av_expr_free()

void av_expr_free ( AVExpr * e )

Free a parsed expression previously created with av_expr_parse().

Definition at line 368 of file eval.c.

Referenced by addroi_uninit(), av_expr_free(), av_expr_parse(), av_expr_parse_and_eval(), avfilter_free(), command(), config_input(), config_input(), config_input(), config_input(), config_output(), config_params(), config_props(), config_props(), eval_expr(), eval_expr(), eval_expr(), ff_rate_control_uninit(), generate_kernel(), geq_uninit(), init(), init_axis_color(), init_cqt(), init_volume(), libplacebo_uninit(), noise_close(), nppscale_parse_expr(), nppscale_uninit(), ost_free(), overlay_cuda_uninit(), parse_channel_expressions(), parse_expr(), parse_factor(), parse_primary(), parse_subexpr(), parse_term(), process_command(), process_command(), scale_parse_expr(), set_enable_expr(), set_expr(), set_expr(), set_expr(), set_expr(), set_expr(), set_expr(), setts_close(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), uninit(), and vgs_statement_free().

◆  av_strtod()

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 by 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 110 of file eval.c.

Referenced by ff_parse_sample_rate(), parse_number(), parse_points_str(), parse_primary(), parse_string(), parse_weights(), set_param(), var_read_float(), vgs_eval(), and vgs_parse_numeric_argument().


Generated on Sun Sep 6 2026 19:21:21 for FFmpeg by doxygen 1.13.2

AltStyle によって変換されたページ (->オリジナル) /