diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index fdb8daeb36..44e91150e9 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -21,8 +21,8 @@ extern "C" { #define AV_STRINGIFY(s) AV_TOSTRING(s) #define AV_TOSTRING(s) #s -#define LIBAVCODEC_VERSION_INT ((49<<16)+(1<<8)+0) -#define LIBAVCODEC_VERSION 49.1.0 +#define LIBAVCODEC_VERSION_INT ((49<<16)+(2<<8)+0) +#define LIBAVCODEC_VERSION 49.2.0 #define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT #define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION) @@ -698,6 +698,11 @@ typedef struct AVOption { double default_val; double min; double max; + + 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_DECODING_PARAM 2 ///< a generic parameter which can be set by the user for demuxing or decoding +#define AV_OPT_FLAG_METADATA 4 ///< some data extracted or inserted into the file like title, comment, ... } AVOption; /** @@ -1883,6 +1888,7 @@ int av_set_q(void *obj, const char *name, AVRational n); int av_set_int(void *obj, const char *name, int64_t n); const char *av_get_string(void *obj, const char *name); double av_get_double(void *obj, const char *name); +AVOption *av_next_option(void *obj, AVOption *last); /** diff --git a/libavcodec/opt.c b/libavcodec/opt.c index 4d49570930..f273c1607b 100644 --- a/libavcodec/opt.c +++ b/libavcodec/opt.c @@ -46,6 +46,12 @@ static AVOption *find_opt(void *v, const char *name){ return NULL; } +AVOption *av_next_option(void *obj, AVOption *last){ + if(last && last[1].name) return ++last; + else if(last) return NULL; + else return (*(AVClass**)obj)->option; +} + static int av_set_number(void *obj, const char *name, double num, int den, int64_t intnum){ AVOption *o= find_opt(obj, name); void *dst;