summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2005-09-06 21:32:18 +0000
committerMichael Niedermayer <michaelni@gmx.at>2005-09-06 21:32:18 +0000
commit3735e82f2d2687c083d1fc9c6c276328cedb9895 (patch)
tree40e92714eda50ec38135ad8dc106d5a33b00047b
parent79396ac68573628f3b59142601db86a0f4ba7ad5 (diff)
AVOption enumeration support and some flags to classify AVOptions
Originally committed as revision 4568 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/avcodec.h10
-rw-r--r--libavcodec/opt.c6
2 files changed, 14 insertions, 2 deletions
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;