[FFmpeg-cvslog] r25166 - in trunk: ffmpeg.c libavcodec/avcodec.h libavcodec/opt.c libavcodec/opt.h

stefano subversion
Fri Sep 24 02:51:40 CEST 2010


Author: stefano
Date: Fri Sep 24 02:51:40 2010
New Revision: 25166

Log:
Deprecate av_opt_show() in favor of a new function av_opt_show2(),
which allows to specify only a subset of all the options to show.

Modified:
   trunk/ffmpeg.c
   trunk/libavcodec/avcodec.h
   trunk/libavcodec/opt.c
   trunk/libavcodec/opt.h

Modified: trunk/ffmpeg.c
==============================================================================
--- trunk/ffmpeg.c	Fri Sep 24 02:32:22 2010	(r25165)
+++ trunk/ffmpeg.c	Fri Sep 24 02:51:40 2010	(r25166)
@@ -3905,11 +3905,11 @@ static void show_help(void)
                       OPT_GRAB,
                       OPT_GRAB);
     printf("\n");
-    av_opt_show(avcodec_opts[0], NULL);
+    av_opt_show2(avcodec_opts[0], NULL, AV_OPT_FLAG_ENCODING_PARAM|AV_OPT_FLAG_DECODING_PARAM, 0);
     printf("\n");
-    av_opt_show(avformat_opts, NULL);
+    av_opt_show2(avformat_opts, NULL, AV_OPT_FLAG_ENCODING_PARAM|AV_OPT_FLAG_DECODING_PARAM, 0);
     printf("\n");
-    av_opt_show(sws_opts, NULL);
+    av_opt_show2(sws_opts, NULL, AV_OPT_FLAG_ENCODING_PARAM|AV_OPT_FLAG_DECODING_PARAM, 0);
 }
 
 static void opt_target(const char *arg)

Modified: trunk/libavcodec/avcodec.h
==============================================================================
--- trunk/libavcodec/avcodec.h	Fri Sep 24 02:32:22 2010	(r25165)
+++ trunk/libavcodec/avcodec.h	Fri Sep 24 02:51:40 2010	(r25166)
@@ -31,7 +31,7 @@
 #include "libavutil/cpu.h"
 
 #define LIBAVCODEC_VERSION_MAJOR 52
-#define LIBAVCODEC_VERSION_MINOR 89
+#define LIBAVCODEC_VERSION_MINOR 90
 #define LIBAVCODEC_VERSION_MICRO  0
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
@@ -54,6 +54,9 @@
 #ifndef FF_API_MM_FLAGS
 #define FF_API_MM_FLAGS         (LIBAVCODEC_VERSION_MAJOR < 53)
 #endif
+#ifndef FF_API_OPT_SHOW
+#define FF_API_OPT_SHOW         (LIBAVCODEC_VERSION_MAJOR < 53)
+#endif
 
 #define AV_NOPTS_VALUE          INT64_C(0x8000000000000000)
 #define AV_TIME_BASE            1000000

Modified: trunk/libavcodec/opt.c
==============================================================================
--- trunk/libavcodec/opt.c	Fri Sep 24 02:32:22 2010	(r25165)
+++ trunk/libavcodec/opt.c	Fri Sep 24 02:51:40 2010	(r25166)
@@ -319,12 +319,13 @@ int64_t av_get_int(void *obj, const char
     return num*intnum/den;
 }
 
-static void opt_list(void *obj, void *av_log_obj, const char *unit)
+static void opt_list(void *obj, void *av_log_obj, const char *unit,
+                     int req_flags, int rej_flags)
 {
     const AVOption *opt=NULL;
 
     while((opt= av_next_option(obj, opt))){
-        if(!(opt->flags & (AV_OPT_FLAG_ENCODING_PARAM|AV_OPT_FLAG_DECODING_PARAM)))
+        if (!(opt->flags & req_flags) || (opt->flags & rej_flags))
             continue;
 
         /* Don't print CONST's on level one.
@@ -383,22 +384,30 @@ static void opt_list(void *obj, void *av
             av_log(av_log_obj, AV_LOG_INFO, " %s", opt->help);
         av_log(av_log_obj, AV_LOG_INFO, "\n");
         if (opt->unit && opt->type != FF_OPT_TYPE_CONST) {
-            opt_list(obj, av_log_obj, opt->unit);
+            opt_list(obj, av_log_obj, opt->unit, req_flags, rej_flags);
         }
     }
 }
 
-int av_opt_show(void *obj, void *av_log_obj){
+int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags)
+{
     if(!obj)
         return -1;
 
     av_log(av_log_obj, AV_LOG_INFO, "%s AVOptions:\n", (*(AVClass**)obj)->class_name);
 
-    opt_list(obj, av_log_obj, NULL);
+    opt_list(obj, av_log_obj, NULL, req_flags, rej_flags);
 
     return 0;
 }
 
+#if FF_API_OPT_SHOW
+int av_opt_show(void *obj, void *av_log_obj){
+    return av_opt_show2(obj, av_log_obj,
+                        AV_OPT_FLAG_ENCODING_PARAM|AV_OPT_FLAG_DECODING_PARAM, 0);
+}
+#endif
+
 /** Set the values of the AVCodecContext or AVFormatContext structure.
  * They are set to the defaults specified in the according AVOption options
  * array default_val field.

Modified: trunk/libavcodec/opt.h
==============================================================================
--- trunk/libavcodec/opt.h	Fri Sep 24 02:32:22 2010	(r25165)
+++ trunk/libavcodec/opt.h	Fri Sep 24 02:51:40 2010	(r25166)
@@ -204,7 +204,25 @@ AVRational av_get_q(void *obj, const cha
 int64_t av_get_int(void *obj, const char *name, const AVOption **o_out);
 const char *av_get_string(void *obj, const char *name, const AVOption **o_out, char *buf, int buf_len);
 const AVOption *av_next_option(void *obj, const AVOption *last);
-int av_opt_show(void *obj, void *av_log_obj);
+
+#if FF_API_OPT_SHOW
+/**
+ * @deprecated Use av_opt_show2() instead.
+ */
+attribute_deprecated int av_opt_show(void *obj, void *av_log_obj);
+#endif
+
+/**
+ * Show the obj options.
+ *
+ * @param req_flags requested flags for the options to show. Show only the
+ * options for which it is opt->flags & req_flags.
+ * @param rej_flags rejected flags for the options to show. Show only the
+ * options for which it is !(opt->flags & req_flags).
+ * @param av_log_obj log context to use for showing the options
+ */
+int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags);
+
 void av_opt_set_defaults(void *s);
 void av_opt_set_defaults2(void *s, int mask, int flags);
 



More information about the ffmpeg-cvslog mailing list