3
3
* copyright (c) 2005 Michael Niedermayer <michaelni@gmx.at>
5
* This file is part of FFmpeg.
5
* This file is part of Libav.
7
* FFmpeg is free software; you can redistribute it and/or
7
* Libav is free software; you can redistribute it and/or
8
8
* modify it under the terms of the GNU Lesser General Public
9
9
* License as published by the Free Software Foundation; either
10
10
* version 2.1 of the License, or (at your option) any later version.
12
* FFmpeg is distributed in the hope that it will be useful,
12
* Libav is distributed in the hope that it will be useful,
13
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
15
* Lesser General Public License for more details.
17
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with FFmpeg; if not, write to the Free Software
18
* License along with Libav; if not, write to the Free Software
19
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
30
30
#include "libavutil/rational.h"
31
31
#include "avcodec.h"
41
FF_OPT_TYPE_BINARY, ///< offset must point to a pointer immediately followed by an int for the length
42
FF_OPT_TYPE_CONST=128,
48
typedef struct AVOption {
52
* short English help text
53
* @todo What about other languages?
58
* The offset relative to the context structure where the option
59
* value is stored. It should be 0 for named constants.
62
enum AVOptionType type;
65
* the default value for scalar options
68
double min; ///< minimum valid value for the option
69
double max; ///< maximum valid value for the option
72
#define AV_OPT_FLAG_ENCODING_PARAM 1 ///< a generic parameter which can be set by the user for muxing or encoding
73
#define AV_OPT_FLAG_DECODING_PARAM 2 ///< a generic parameter which can be set by the user for demuxing or decoding
74
#define AV_OPT_FLAG_METADATA 4 ///< some data extracted or inserted into the file like title, comment, ...
75
#define AV_OPT_FLAG_AUDIO_PARAM 8
76
#define AV_OPT_FLAG_VIDEO_PARAM 16
77
#define AV_OPT_FLAG_SUBTITLE_PARAM 32
78
//FIXME think about enc-audio, ... style flags
81
* The logical unit to which the option belongs. Non-constant
82
* options and corresponding named constants share the same
90
* THIS IS NOT PART OF THE API/ABI YET!
91
* This is identical to AVOption except that default_val was replaced by
92
* an union, it should be compatible with AVOption on normal platforms.
94
typedef struct AVOption2 {
98
* short English help text
99
* @todo What about other languages?
104
* The offset relative to the context structure where the option
105
* value is stored. It should be 0 for named constants.
108
enum AVOptionType type;
111
* the default value for scalar options
118
double min; ///< minimum valid value for the option
119
double max; ///< maximum valid value for the option
123
#define AV_OPT_FLAG_ENCODING_PARAM 1 ///< a generic parameter which can be set by the user for muxing or encoding
124
#define AV_OPT_FLAG_DECODING_PARAM 2 ///< a generic parameter which can be set by the user for demuxing or decoding
125
#define AV_OPT_FLAG_METADATA 4 ///< some data extracted or inserted into the file like title, comment, ...
126
#define AV_OPT_FLAG_AUDIO_PARAM 8
127
#define AV_OPT_FLAG_VIDEO_PARAM 16
128
#define AV_OPT_FLAG_SUBTITLE_PARAM 32
130
//FIXME think about enc-audio, ... style flags
133
* The logical unit to which the option belongs. Non-constant
134
* options and corresponding named constants share the same
142
* Looks for an option in obj. Looks only for the options which
143
* have the flags set as specified in mask and flags (that is,
144
* for which it is the case that opt->flags & mask == flags).
146
* @param[in] obj a pointer to a struct whose first element is a
147
* pointer to an AVClass
148
* @param[in] name the name of the option to look for
149
* @param[in] unit the unit of the option to look for, or any if NULL
150
* @return a pointer to the option found, or NULL if no option
153
const AVOption *av_find_opt(void *obj, const char *name, const char *unit, int mask, int flags);
155
#if LIBAVCODEC_VERSION_MAJOR < 53
32
#include "libavutil/opt.h"
34
#if FF_API_SET_STRING_OLD
157
36
* @see av_set_string2()
167
46
attribute_deprecated const AVOption *av_set_string2(void *obj, const char *name, const char *val, int alloc);
171
* Sets the field of obj with the given name to value.
173
* @param[in] obj A struct whose first element is a pointer to an
175
* @param[in] name the name of the field to set
176
* @param[in] val The value to set. If the field is not of a string
177
* type, then the given string is parsed.
178
* SI postfixes and some named scalars are supported.
179
* If the field is of a numeric type, it has to be a numeric or named
180
* scalar. Behavior with more than one scalar and +- infix operators
182
* If the field is of a flags type, it has to be a sequence of numeric
183
* scalars or named flags separated by '+' or '-'. Prefixing a flag
184
* with '+' causes it to be set without affecting the other flags;
185
* similarly, '-' unsets a flag.
186
* @param[out] o_out if non-NULL put here a pointer to the AVOption
188
* @param alloc when 1 then the old value will be av_freed() and the
190
* when 0 then no av_free() nor av_strdup() will be used
191
* @return 0 if the value has been set, or an AVERROR code in case of
193
* AVERROR(ENOENT) if no matching option exists
194
* AVERROR(ERANGE) if the value is out of range
195
* AVERROR(EINVAL) if the value is not valid
50
* @deprecated Use av_opt_show2() instead.
197
int av_set_string3(void *obj, const char *name, const char *val, int alloc, const AVOption **o_out);
199
const AVOption *av_set_double(void *obj, const char *name, double n);
200
const AVOption *av_set_q(void *obj, const char *name, AVRational n);
201
const AVOption *av_set_int(void *obj, const char *name, int64_t n);
202
double av_get_double(void *obj, const char *name, const AVOption **o_out);
203
AVRational av_get_q(void *obj, const char *name, const AVOption **o_out);
204
int64_t av_get_int(void *obj, const char *name, const AVOption **o_out);
205
const char *av_get_string(void *obj, const char *name, const AVOption **o_out, char *buf, int buf_len);
206
const AVOption *av_next_option(void *obj, const AVOption *last);
207
int av_opt_show(void *obj, void *av_log_obj);
208
void av_opt_set_defaults(void *s);
209
void av_opt_set_defaults2(void *s, int mask, int flags);
52
attribute_deprecated int av_opt_show(void *obj, void *av_log_obj);
211
55
#endif /* AVCODEC_OPT_H */