[SCM] libav/experimental: add av_opt_set_defaults2() which sets just defaults from AVOptions whos flags match a user specified & mask = flags

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:57:26 UTC 2013


The following commit has been merged in the experimental branch:
commit 20e708cbbeffcc3e55f77cbb0d4ae85a54196d62
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Wed Mar 7 02:21:35 2007 +0000

    add av_opt_set_defaults2() which sets just defaults from AVOptions whos flags match a user specified & mask = flags
    
    Originally committed as revision 8280 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/opt.c b/libavcodec/opt.c
index bbfc42b..ed7aaa0 100644
--- a/libavcodec/opt.c
+++ b/libavcodec/opt.c
@@ -343,10 +343,12 @@ int av_opt_show(void *obj, void *av_log_obj){
  *
  * @param s AVCodecContext or AVFormatContext for which the defaults will be set
  */
-void av_opt_set_defaults(void *s)
+void av_opt_set_defaults2(void *s, int mask, int flags)
 {
     const AVOption *opt = NULL;
     while ((opt = av_next_option(s, opt)) != NULL) {
+        if((opt->flags & mask) != flags)
+            continue;
         switch(opt->type) {
             case FF_OPT_TYPE_CONST:
                 /* Nothing to be done here */
@@ -379,3 +381,7 @@ void av_opt_set_defaults(void *s)
     }
 }
 
+void av_opt_set_defaults(void *s){
+    av_opt_set_defaults2(s, 0, 0);
+}
+
diff --git a/libavcodec/opt.h b/libavcodec/opt.h
index 1d750ff..151dbb7 100644
--- a/libavcodec/opt.h
+++ b/libavcodec/opt.h
@@ -80,5 +80,6 @@ const char *av_get_string(void *obj, const char *name, const AVOption **o_out, c
 const AVOption *av_next_option(void *obj, const AVOption *last);
 int av_opt_show(void *obj, void *av_log_obj);
 void av_opt_set_defaults(void *s);
+void av_opt_set_defaults2(void *s, int mask, int flags);
 
 #endif

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list