123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871 |
- #ifndef AVUTIL_OPT_H
- #define AVUTIL_OPT_H
- #include "rational.h"
- #include "avutil.h"
- #include "dict.h"
- #include "log.h"
- #include "pixfmt.h"
- #include "samplefmt.h"
- #include "version.h"
- enum AVOptionType{
- AV_OPT_TYPE_FLAGS,
- AV_OPT_TYPE_INT,
- AV_OPT_TYPE_INT64,
- AV_OPT_TYPE_DOUBLE,
- AV_OPT_TYPE_FLOAT,
- AV_OPT_TYPE_STRING,
- AV_OPT_TYPE_RATIONAL,
- AV_OPT_TYPE_BINARY,
- AV_OPT_TYPE_DICT,
- AV_OPT_TYPE_UINT64,
- AV_OPT_TYPE_CONST,
- AV_OPT_TYPE_IMAGE_SIZE,
- AV_OPT_TYPE_PIXEL_FMT,
- AV_OPT_TYPE_SAMPLE_FMT,
- AV_OPT_TYPE_VIDEO_RATE,
- AV_OPT_TYPE_DURATION,
- AV_OPT_TYPE_COLOR,
- AV_OPT_TYPE_CHANNEL_LAYOUT,
- AV_OPT_TYPE_BOOL,
- };
- typedef struct AVOption {
- const char *name;
-
- const char *help;
-
- int offset;
- enum AVOptionType type;
-
- union {
- int64_t i64;
- double dbl;
- const char *str;
-
- AVRational q;
- } default_val;
- double min;
- double max;
- int flags;
- #define AV_OPT_FLAG_ENCODING_PARAM 1
- #define AV_OPT_FLAG_DECODING_PARAM 2
- #define AV_OPT_FLAG_AUDIO_PARAM 8
- #define AV_OPT_FLAG_VIDEO_PARAM 16
- #define AV_OPT_FLAG_SUBTITLE_PARAM 32
- #define AV_OPT_FLAG_EXPORT 64
- #define AV_OPT_FLAG_READONLY 128
- #define AV_OPT_FLAG_BSF_PARAM (1<<8)
- #define AV_OPT_FLAG_RUNTIME_PARAM (1<<15)
- #define AV_OPT_FLAG_FILTERING_PARAM (1<<16)
- #define AV_OPT_FLAG_DEPRECATED (1<<17)
- #define AV_OPT_FLAG_CHILD_CONSTS (1<<18)
-
- const char *unit;
- } AVOption;
- typedef struct AVOptionRange {
- const char *str;
-
- double value_min, value_max;
-
- double component_min, component_max;
-
- int is_range;
- } AVOptionRange;
- typedef struct AVOptionRanges {
-
- AVOptionRange **range;
-
- int nb_ranges;
-
- int nb_components;
- } AVOptionRanges;
- int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags);
- void av_opt_set_defaults(void *s);
- void av_opt_set_defaults2(void *s, int mask, int flags);
- int av_set_options_string(void *ctx, const char *opts,
- const char *key_val_sep, const char *pairs_sep);
- int av_opt_set_from_string(void *ctx, const char *opts,
- const char *const *shorthand,
- const char *key_val_sep, const char *pairs_sep);
- void av_opt_free(void *obj);
- int av_opt_flag_is_set(void *obj, const char *field_name, const char *flag_name);
- int av_opt_set_dict(void *obj, struct AVDictionary **options);
- int av_opt_set_dict2(void *obj, struct AVDictionary **options, int search_flags);
- int av_opt_get_key_value(const char **ropts,
- const char *key_val_sep, const char *pairs_sep,
- unsigned flags,
- char **rkey, char **rval);
- enum {
-
- AV_OPT_FLAG_IMPLICIT_KEY = 1,
- };
- int av_opt_eval_flags (void *obj, const AVOption *o, const char *val, int *flags_out);
- int av_opt_eval_int (void *obj, const AVOption *o, const char *val, int *int_out);
- int av_opt_eval_int64 (void *obj, const AVOption *o, const char *val, int64_t *int64_out);
- int av_opt_eval_float (void *obj, const AVOption *o, const char *val, float *float_out);
- int av_opt_eval_double(void *obj, const AVOption *o, const char *val, double *double_out);
- int av_opt_eval_q (void *obj, const AVOption *o, const char *val, AVRational *q_out);
- #define AV_OPT_SEARCH_CHILDREN (1 << 0)
- #define AV_OPT_SEARCH_FAKE_OBJ (1 << 1)
- #define AV_OPT_ALLOW_NULL (1 << 2)
- #define AV_OPT_MULTI_COMPONENT_RANGE (1 << 12)
- const AVOption *av_opt_find(void *obj, const char *name, const char *unit,
- int opt_flags, int search_flags);
- const AVOption *av_opt_find2(void *obj, const char *name, const char *unit,
- int opt_flags, int search_flags, void **target_obj);
- const AVOption *av_opt_next(const void *obj, const AVOption *prev);
- void *av_opt_child_next(void *obj, void *prev);
- const AVClass *av_opt_child_class_next(const AVClass *parent, const AVClass *prev);
- int av_opt_set (void *obj, const char *name, const char *val, int search_flags);
- 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 size, 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_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_video_rate(void *obj, const char *name, AVRational val, int search_flags);
- int av_opt_set_channel_layout(void *obj, const char *name, int64_t ch_layout, int search_flags);
- int av_opt_set_dict_val(void *obj, const char *name, const AVDictionary *val, int search_flags);
- #define av_opt_set_int_list(obj, name, val, term, flags) \
- (av_int_list_length(val, term) > INT_MAX / sizeof(*(val)) ? \
- AVERROR(EINVAL) : \
- av_opt_set_bin(obj, name, (const uint8_t *)(val), \
- av_int_list_length(val, term) * sizeof(*(val)), flags))
- int av_opt_get (void *obj, const char *name, int search_flags, uint8_t **out_val);
- 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_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_video_rate(void *obj, const char *name, int search_flags, AVRational *out_val);
- int av_opt_get_channel_layout(void *obj, const char *name, int search_flags, int64_t *ch_layout);
- int av_opt_get_dict_val(void *obj, const char *name, int search_flags, AVDictionary **out_val);
- void *av_opt_ptr(const AVClass *avclass, void *obj, const char *name);
- void av_opt_freep_ranges(AVOptionRanges **ranges);
- int av_opt_query_ranges(AVOptionRanges **, void *obj, const char *key, int flags);
- int av_opt_copy(void *dest, const void *src);
- int av_opt_query_ranges_default(AVOptionRanges **, void *obj, const char *key, int flags);
- int av_opt_is_set_to_default(void *obj, const AVOption *o);
- int av_opt_is_set_to_default_by_name(void *obj, const char *name, int search_flags);
- #define AV_OPT_SERIALIZE_SKIP_DEFAULTS 0x00000001
- #define AV_OPT_SERIALIZE_OPT_FLAGS_EXACT 0x00000002
- int av_opt_serialize(void *obj, int opt_flags, int flags, char **buffer,
- const char key_val_sep, const char pairs_sep);
- #endif
|