AVOptions: add av_opt_free convenience function.
authorAnton Khirnov <anton@khirnov.net>
Sun, 5 Jun 2011 11:17:26 +0000 (13:17 +0200)
committerAnton Khirnov <anton@khirnov.net>
Sun, 5 Jun 2011 13:01:36 +0000 (15:01 +0200)
doc/APIchanges
libavutil/avutil.h
libavutil/opt.c
libavutil/opt.h

index a55b15284b055b948e552ffb63d511be59e2dbf2..77eb6d2d2757d51de583e2bf9cd9d1fe0d645751 100644 (file)
@@ -13,6 +13,9 @@ libavutil:   2011-04-18
 
 API changes, most recent first:
 
+2011-06-xx - xxxxxxx - lavu 51.3.0 - opt.h
+  Add av_opt_free convenience function.
+
 2011-05-28 - 0420bd7 - lavu 51.2.0 - pixdesc.h
   Add av_get_pix_fmt_name() in libavutil/pixdesc.h, and deprecate
   avcodec_get_pix_fmt_name() in libavcodec/avcodec.h in its favor.
index 8b8ca40c94666e95e92046b1bb880cadd025fbab..5085a6dd0b351cf5a7f8155bd8895586f552bdfd 100644 (file)
@@ -40,7 +40,7 @@
 #define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
 
 #define LIBAVUTIL_VERSION_MAJOR 51
-#define LIBAVUTIL_VERSION_MINOR  2
+#define LIBAVUTIL_VERSION_MINOR  3
 #define LIBAVUTIL_VERSION_MICRO  0
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
index 4e25918ed14f5d961ba2ff0c834b36438e7b5713..172fcec456079dc6f88e840bc55b6288fb8a9454 100644 (file)
@@ -520,6 +520,14 @@ int av_set_options_string(void *ctx, const char *opts,
     return count;
 }
 
+void av_opt_free(void *obj)
+{
+    const AVOption *o = NULL;
+    while ((o = av_next_option(obj, o)))
+        if (o->type == FF_OPT_TYPE_STRING || o->type == FF_OPT_TYPE_BINARY)
+            av_freep((uint8_t *)obj + o->offset);
+}
+
 #ifdef TEST
 
 #undef printf
index 6668139fecc73bc9dd5e6075922d323b85781182..8c3b6c1c365dccd3bffaea68351dab72e6bfbdcb 100644 (file)
@@ -176,4 +176,9 @@ 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);
 
+/**
+ * Free all string and binary options in obj.
+ */
+void av_opt_free(void *obj);
+
 #endif /* AVUTIL_OPT_H */