FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
opt.c File Reference

AVOptions. More...

#include "avutil.h"
#include "avstring.h"
#include "channel_layout.h"
#include "common.h"
#include "opt.h"
#include "eval.h"
#include "dict.h"
#include "log.h"
#include "parseutils.h"
#include "pixdesc.h"
#include "mathematics.h"
#include "samplefmt.h"
#include "bprint.h"
#include <float.h>

Go to the source code of this file.

Macros

#define DEFAULT_NUMVAL(opt)
 
#define OPT_EVAL_NUMBER(name, opttype, vartype)
 
#define WHITESPACES   " \n\t"
 

Functions

const AVOptionav_next_option (FF_CONST_AVUTIL55 void *obj, const AVOption *last)
 
const AVOptionav_opt_next (FF_CONST_AVUTIL55 void *obj, const AVOption *last)
 Iterate over all AVOptions belonging to obj. More...
 
static int read_number (const AVOption *o, const void *dst, double *num, int *den, int64_t *intnum)
 
static int write_number (void *obj, const AVOption *o, void *dst, double num, int den, int64_t intnum)
 
static int hexchar2int (char c)
 
static int set_string_binary (void *obj, const AVOption *o, const char *val, uint8_t **dst)
 
static int set_string (void *obj, const AVOption *o, const char *val, uint8_t **dst)
 
static int set_string_number (void *obj, void *target_obj, const AVOption *o, const char *val, void *dst)
 
static int set_string_image_size (void *obj, const AVOption *o, const char *val, int *dst)
 
static int set_string_video_rate (void *obj, const AVOption *o, const char *val, AVRational *dst)
 
static int set_string_color (void *obj, const AVOption *o, const char *val, uint8_t *dst)
 
static int set_string_fmt (void *obj, const AVOption *o, const char *val, uint8_t *dst, int fmt_nb, int((*get_fmt)(const char *)), const char *desc)
 
static int set_string_pixel_fmt (void *obj, const AVOption *o, const char *val, uint8_t *dst)
 
static int set_string_sample_fmt (void *obj, const AVOption *o, const char *val, uint8_t *dst)
 
int av_set_string3 (void *obj, const char *name, const char *val, int alloc, const AVOption **o_out)
 Set the field of obj with the given name to value. More...
 
int av_opt_set (void *obj, const char *name, const char *val, int search_flags)
 
static int set_number (void *obj, const char *name, double num, int den, int64_t intnum, int search_flags)
 
const AVOptionav_set_double (void *obj, const char *name, double n)
 
const AVOptionav_set_q (void *obj, const char *name, AVRational n)
 
const AVOptionav_set_int (void *obj, const char *name, int64_t n)
 
int av_opt_set_int (void *obj, const char *name, int64_t val, int search_flags)
 
int av_opt_set_double (void *obj, const char *name, double val, int search_flags)
 
int av_opt_set_q (void *obj, const char *name, AVRational val, int search_flags)
 
int av_opt_set_bin (void *obj, const char *name, const uint8_t *val, int len, int search_flags)
 
int av_opt_set_image_size (void *obj, const char *name, int w, int h, int search_flags)
 
int av_opt_set_video_rate (void *obj, const char *name, AVRational val, int search_flags)
 
static int set_format (void *obj, const char *name, int fmt, int search_flags, enum AVOptionType type, const char *desc, int nb_fmts)
 
int av_opt_set_pixel_fmt (void *obj, const char *name, enum AVPixelFormat fmt, int search_flags)
 
int av_opt_set_sample_fmt (void *obj, const char *name, enum AVSampleFormat fmt, int search_flags)
 
int av_opt_set_channel_layout (void *obj, const char *name, int64_t cl, int search_flags)
 
const char * av_get_string (void *obj, const char *name, const AVOption **o_out, char *buf, int buf_len)
 
int av_opt_set_dict_val (void *obj, const char *name, const AVDictionary *val, int search_flags)
 
int av_opt_get (void *obj, const char *name, int search_flags, uint8_t **out_val)
 
static int get_number (void *obj, const char *name, const AVOption **o_out, double *num, int *den, int64_t *intnum, int search_flags)
 
double av_get_double (void *obj, const char *name, const AVOption **o_out)
 
AVRational av_get_q (void *obj, const char *name, const AVOption **o_out)
 
int64_t av_get_int (void *obj, const char *name, const AVOption **o_out)
 
int av_opt_get_int (void *obj, const char *name, int search_flags, int64_t *out_val)
 
int av_opt_get_double (void *obj, const char *name, int search_flags, double *out_val)
 
int av_opt_get_q (void *obj, const char *name, int search_flags, AVRational *out_val)
 
int av_opt_get_image_size (void *obj, const char *name, int search_flags, int *w_out, int *h_out)
 
int av_opt_get_video_rate (void *obj, const char *name, int search_flags, AVRational *out_val)
 
static int get_format (void *obj, const char *name, int search_flags, int *out_fmt, enum AVOptionType type, const char *desc)
 
int av_opt_get_pixel_fmt (void *obj, const char *name, int search_flags, enum AVPixelFormat *out_fmt)
 
int av_opt_get_sample_fmt (void *obj, const char *name, int search_flags, enum AVSampleFormat *out_fmt)
 
int av_opt_get_channel_layout (void *obj, const char *name, int search_flags, int64_t *cl)
 
int av_opt_get_dict_val (void *obj, const char *name, int search_flags, AVDictionary **out_val)
 
int av_opt_flag_is_set (void *obj, const char *field_name, const char *flag_name)
 Check whether a particular flag is set in a flags field. More...
 
static void log_value (void *av_log_obj, int level, double d)
 
static void opt_list (void *obj, void *av_log_obj, const char *unit, int req_flags, int rej_flags)
 
int av_opt_show2 (void *obj, void *av_log_obj, int req_flags, int rej_flags)
 Show the obj options. More...
 
void av_opt_set_defaults (void *s)
 Set the values of all AVOption fields to their default values. More...
 
void av_opt_set_defaults2 (void *s, int mask, int flags)
 
static int parse_key_value_pair (void *ctx, const char **buf, const char *key_val_sep, const char *pairs_sep)
 Store the value in the field in ctx that is named like key. More...
 
int av_set_options_string (void *ctx, const char *opts, const char *key_val_sep, const char *pairs_sep)
 Parse the key/value pairs list in opts. More...
 
static int is_key_char (char c)
 
static int get_key (const char **ropts, const char *delim, char **rkey)
 Read a key from a string. More...
 
int av_opt_get_key_value (const char **ropts, const char *key_val_sep, const char *pairs_sep, unsigned flags, char **rkey, char **rval)
 Extract a key-value pair from the beginning of a string. More...
 
int av_opt_set_from_string (void *ctx, const char *opts, const char *const *shorthand, const char *key_val_sep, const char *pairs_sep)
 Parse the key-value pairs list in opts. More...
 
void av_opt_free (void *obj)
 Free all allocated objects in obj. More...
 
int av_opt_set_dict2 (void *obj, AVDictionary **options, int search_flags)
 Set all the options from a given dictionary on an object. More...
 
int av_opt_set_dict (void *obj, AVDictionary **options)
 Set all the options from a given dictionary on an object. More...
 
const AVOptionav_opt_find (void *obj, const char *name, const char *unit, int opt_flags, int search_flags)
 Look for an option in an object. More...
 
const AVOptionav_opt_find2 (void *obj, const char *name, const char *unit, int opt_flags, int search_flags, void **target_obj)
 Look for an option in an object. More...
 
voidav_opt_child_next (void *obj, void *prev)
 Iterate over AVOptions-enabled children of obj. More...
 
const AVClassav_opt_child_class_next (const AVClass *parent, const AVClass *prev)
 Iterate over potential AVOptions-enabled children of parent. More...
 
voidav_opt_ptr (const AVClass *class, void *obj, const char *name)
 Gets a pointer to the requested field in a struct. More...
 
static int opt_size (enum AVOptionType type)
 
int av_opt_copy (void *dst, FF_CONST_AVUTIL55 void *src)
 Copy options from src object into dest object. More...
 
int av_opt_query_ranges (AVOptionRanges **ranges_arg, void *obj, const char *key, int flags)
 Get a list of allowed ranges for the given option. More...
 
int av_opt_query_ranges_default (AVOptionRanges **ranges_arg, void *obj, const char *key, int flags)
 Get a default list of allowed ranges for the given option. More...
 
void av_opt_freep_ranges (AVOptionRanges **rangesp)
 Free an AVOptionRanges struct and set it to NULL. More...
 
int av_opt_is_set_to_default (void *obj, const AVOption *o)
 Check if given option is set to its default value. More...
 
int av_opt_is_set_to_default_by_name (void *obj, const char *name, int search_flags)
 Check if given option is set to its default value. More...
 
int av_opt_serialize (void *obj, int opt_flags, int flags, char **buffer, const char key_val_sep, const char pairs_sep)
 Serialize object's options. More...
 

Detailed Description

AVOptions.

Author
Michael Niedermayer micha.nosp@m.elni.nosp@m.@gmx..nosp@m.at

Definition in file opt.c.

Macro Definition Documentation

#define DEFAULT_NUMVAL (   opt)
Value:
((opt->type == AV_OPT_TYPE_INT64 || \
opt->type == AV_OPT_TYPE_CONST || \
opt->type == AV_OPT_TYPE_FLAGS || \
opt->type == AV_OPT_TYPE_INT) ? \
opt->default_val.i64 : opt->default_val.dbl)

Definition at line 171 of file opt.c.

Referenced by set_string_number().

#define OPT_EVAL_NUMBER (   name,
  opttype,
  vartype 
)
Value:
int av_opt_eval_ ## name(void *obj, const AVOption *o, const char *val, vartype *name ## _out)\
{\
if (!o || o->type != opttype || o->flags & AV_OPT_FLAG_READONLY)\
return AVERROR(EINVAL);\
return set_string_number(obj, obj, o, val, name ## _out);\
}
const char const char void * val
Definition: avisynth_c.h:634
AVOption.
Definition: opt.h:255
if()
Definition: avfilter.c:975
#define AVERROR(e)
Definition: error.h:43
return
static int set_string_number(void *obj, void *target_obj, const AVOption *o, const char *val, void *dst)
Definition: opt.c:177
#define AV_OPT_FLAG_READONLY
The option may not be set through the AVOptions API, only read.
Definition: opt.h:301
const char * name
Definition: opengl_enc.c:103

Definition at line 434 of file opt.c.

#define WHITESPACES   " \n\t"

Definition at line 1323 of file opt.c.

Referenced by get_key().

Function Documentation

static int read_number ( const AVOption o,
const void dst,
double *  num,
int *  den,
int64_t *  intnum 
)
static

Definition at line 64 of file opt.c.

Referenced by av_opt_is_set_to_default(), get_number(), and set_string_number().

static int write_number ( void obj,
const AVOption o,
void dst,
double  num,
int  den,
int64_t  intnum 
)
static

Definition at line 84 of file opt.c.

Referenced by av_opt_set_defaults2(), set_number(), and set_string_number().

static int hexchar2int ( char  c)
static

Definition at line 123 of file opt.c.

Referenced by set_string_binary().

static int set_string_binary ( void obj,
const AVOption o,
const char *  val,
uint8_t **  dst 
)
static

Definition at line 130 of file opt.c.

Referenced by av_opt_is_set_to_default(), av_opt_set(), and av_opt_set_defaults2().

static int set_string ( void obj,
const AVOption o,
const char *  val,
uint8_t **  dst 
)
static

Definition at line 164 of file opt.c.

Referenced by av_opt_set(), and av_opt_set_defaults2().

static int set_string_number ( void obj,
void target_obj,
const AVOption o,
const char *  val,
void dst 
)
static

Definition at line 177 of file opt.c.

Referenced by av_opt_set().

static int set_string_image_size ( void obj,
const AVOption o,
const char *  val,
int *  dst 
)
static

Definition at line 264 of file opt.c.

Referenced by av_opt_set(), and av_opt_set_defaults2().

static int set_string_video_rate ( void obj,
const AVOption o,
const char *  val,
AVRational dst 
)
static

Definition at line 279 of file opt.c.

Referenced by av_opt_set(), and av_opt_set_defaults2().

static int set_string_color ( void obj,
const AVOption o,
const char *  val,
uint8_t dst 
)
static

Definition at line 292 of file opt.c.

Referenced by av_opt_set(), and av_opt_set_defaults2().

static int set_string_fmt ( void obj,
const AVOption o,
const char *  val,
uint8_t dst,
int  fmt_nb,
int((*get_fmt)(const char *))  ,
const char *  desc 
)
static

Definition at line 307 of file opt.c.

Referenced by set_string_pixel_fmt(), and set_string_sample_fmt().

static int set_string_pixel_fmt ( void obj,
const AVOption o,
const char *  val,
uint8_t dst 
)
static

Definition at line 347 of file opt.c.

Referenced by av_opt_set().

static int set_string_sample_fmt ( void obj,
const AVOption o,
const char *  val,
uint8_t dst 
)
static

Definition at line 353 of file opt.c.

Referenced by av_opt_set().

static int set_number ( void obj,
const char *  name,
double  num,
int  den,
int64_t  intnum,
int  search_flags 
)
static
static int set_format ( void obj,
const char *  name,
int  fmt,
int  search_flags,
enum AVOptionType  type,
const char *  desc,
int  nb_fmts 
)
static

Definition at line 575 of file opt.c.

Referenced by av_opt_set_pixel_fmt(), av_opt_set_sample_fmt(), and dshow_cycle_pins().

static int get_number ( void obj,
const char *  name,
const AVOption **  o_out,
double *  num,
int *  den,
int64_t *  intnum,
int  search_flags 
)
static
static int get_format ( void obj,
const char *  name,
int  search_flags,
int *  out_fmt,
enum AVOptionType  type,
const char *  desc 
)
static

Definition at line 897 of file opt.c.

Referenced by av_opt_get_pixel_fmt(), and av_opt_get_sample_fmt().

static void log_value ( void av_log_obj,
int  level,
double  d 
)
static

Definition at line 972 of file opt.c.

Referenced by opt_list().

static void opt_list ( void obj,
void av_log_obj,
const char *  unit,
int  req_flags,
int  rej_flags 
)
static

Definition at line 1005 of file opt.c.

Referenced by av_opt_show2().

static int parse_key_value_pair ( void ctx,
const char **  buf,
const char *  key_val_sep,
const char *  pairs_sep 
)
static

Store the value in the field in ctx that is named like key.

ctx must be an AVClass context, storing is done using AVOptions.

Parameters
bufthe string to parse, buf will be updated to point at the separator just after the parsed key/value pair
key_val_sepa 0-terminated list of characters used to separate key from value
pairs_sepa 0-terminated list of characters used to separate two pairs from each other
Returns
0 if the key/value pair has been successfully parsed and set, or a negative value corresponding to an AVERROR code in case of error: AVERROR(EINVAL) if the key/value pair cannot be parsed, the error code issued by av_opt_set() if the key/value pair cannot be set

Definition at line 1269 of file opt.c.

Referenced by av_set_options_string().

static int is_key_char ( char  c)
static

Definition at line 1325 of file opt.c.

Referenced by get_key().

static int get_key ( const char **  ropts,
const char *  delim,
char **  rkey 
)
static

Read a key from a string.

The key consists of is_key_char characters and must be terminated by a character from the delim string; spaces are ignored.

Returns
0 for success (even with ellipsis), <0 for failure

Definition at line 1340 of file opt.c.

Referenced by av_opt_get_key_value().

static int opt_size ( enum AVOptionType  type)
static

Definition at line 1557 of file opt.c.

Referenced by av_opt_copy(), and av_opt_is_set_to_default().