* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef AVOPT_H
-#define AVOPT_H
+#ifndef FFMPEG_OPT_H
+#define FFMPEG_OPT_H
/**
* @file opt.h
* AVOptions
*/
-#include "rational.h"
+#include "libavutil/rational.h"
enum AVOptionType{
FF_OPT_TYPE_FLAGS,
FF_OPT_TYPE_FLOAT,
FF_OPT_TYPE_STRING,
FF_OPT_TYPE_RATIONAL,
+ FF_OPT_TYPE_BINARY, ///< offset must point to a pointer immediately followed by an int for the length
FF_OPT_TYPE_CONST=128,
};
/**
- * AVOption.
+ * AVOption
*/
typedef struct AVOption {
const char *name;
/**
- * short English text help.
- * @fixme what about other languages
+ * short English help text
+ * @todo What about other languages?
*/
const char *help;
- int offset; ///< offset to context structure where the parsed value should be stored
+
+ /**
+ * The offset relative to the context structure where the option
+ * value is stored. It should be 0 for named constants.
+ */
+ int offset;
enum AVOptionType type;
+ /**
+ * the default value for non-constant and value for constant scalars
+ */
double default_val;
- double min;
- double max;
+ double min; ///< minimum valid value for the option
+ double max; ///< maximum valid value for the option
int flags;
#define AV_OPT_FLAG_ENCODING_PARAM 1 ///< a generic parameter which can be set by the user for muxing or encoding
#define AV_OPT_FLAG_VIDEO_PARAM 16
#define AV_OPT_FLAG_SUBTITLE_PARAM 32
//FIXME think about enc-audio, ... style flags
+
+ /**
+ * The logical unit to which the option belongs. Non-constant
+ * options and corresponding named constants share the same
+ * unit. May be NULL.
+ */
const char *unit;
} AVOption;
void av_opt_set_defaults(void *s);
void av_opt_set_defaults2(void *s, int mask, int flags);
-#endif
+#endif /* FFMPEG_OPT_H */