[FFmpeg-cvslog] cmdutils: Add -buildconf option.

Stephen Hutchinson git at videolan.org
Tue Nov 19 22:32:32 CET 2013


ffmpeg | branch: master | Stephen Hutchinson <qyot27 at gmail.com> | Sun Aug 11 12:17:57 2013 -0400| [69cf626f9c1ba29e66ff62e2b835dcfc3031db8d] | committer: Michael Niedermayer

cmdutils: Add -buildconf option.

The output is formatted to display one option per line.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=69cf626f9c1ba29e66ff62e2b835dcfc3031db8d
---

 cmdutils.c             |   34 ++++++++++++++++++++++++++++++++++
 cmdutils.h             |    7 +++++++
 cmdutils_common_opts.h |    1 +
 3 files changed, 42 insertions(+)

diff --git a/cmdutils.c b/cmdutils.c
index b10a552..e9545fe 100644
--- a/cmdutils.c
+++ b/cmdutils.c
@@ -1079,6 +1079,32 @@ static void print_program_info(int flags, int level)
     av_log(NULL, level, "%sconfiguration: " FFMPEG_CONFIGURATION "\n", indent);
 }
 
+static void print_buildconf(int flags, int level)
+{
+    const char *indent = flags & INDENT? "  " : "";
+    char str[] = { FFMPEG_CONFIGURATION };
+    char *conflist, *remove_tilde, *splitconf;
+
+    // Change all the ' --' strings to '~--' so that
+    // they can be identified as tokens.
+    while( (conflist = strstr(str, " --")) != NULL ) {
+        strncpy(conflist, "~--", 3);
+    }
+
+    // Compensate for the weirdness this would cause
+    // when passing 'pkg-config --static'.
+    while( (remove_tilde = strstr(str, "pkg-config~")) != NULL ) {
+        strncpy(remove_tilde, "pkg-config ",11);
+    }
+
+    splitconf = strtok(str, "~");
+    av_log(NULL, level, "\n%sconfiguration:\n",indent);
+    while(splitconf != NULL) {
+        av_log(NULL, level, "%s%s%s\n", indent, indent, splitconf);
+        splitconf = strtok(NULL, "~");
+    }
+}
+
 void show_banner(int argc, char **argv, const OptionDef *options)
 {
     int idx = locate_option(argc, argv, options, "version");
@@ -1099,6 +1125,14 @@ int show_version(void *optctx, const char *opt, const char *arg)
     return 0;
 }
 
+int show_buildconf(void *optctx, const char *opt, const char *arg)
+{
+    av_log_set_callback(log_callback_help);
+    print_buildconf      (INDENT|0, AV_LOG_INFO);
+
+    return 0;
+}
+
 int show_license(void *optctx, const char *opt, const char *arg)
 {
 #if CONFIG_NONFREE
diff --git a/cmdutils.h b/cmdutils.h
index 2d2afc8..ce6660a 100644
--- a/cmdutils.h
+++ b/cmdutils.h
@@ -415,6 +415,13 @@ void show_banner(int argc, char **argv, const OptionDef *options);
 int show_version(void *optctx, const char *opt, const char *arg);
 
 /**
+ * Print the build configuration of the program to stdout. The contents
+ * depend on the definition of FFMPEG_CONFIGURATION.
+ * This option processing function does not utilize the arguments.
+ */
+int show_buildconf(void *optctx, const char *opt, const char *arg);
+
+/**
  * Print the license of the program to stdout. The license depends on
  * the license of the libraries compiled into the program.
  * This option processing function does not utilize the arguments.
diff --git a/cmdutils_common_opts.h b/cmdutils_common_opts.h
index 6966303..3e3f0ac 100644
--- a/cmdutils_common_opts.h
+++ b/cmdutils_common_opts.h
@@ -4,6 +4,7 @@
     { "help"       , OPT_EXIT, {.func_arg = show_help},         "show help", "topic" },
     { "-help"      , OPT_EXIT, {.func_arg = show_help},         "show help", "topic" },
     { "version"    , OPT_EXIT, {.func_arg = show_version},      "show version" },
+    { "buildconf"  , OPT_EXIT, {.func_arg = show_buildconf},    "show build configuration" },
     { "formats"    , OPT_EXIT, {.func_arg = show_formats  },    "show available formats" },
     { "codecs"     , OPT_EXIT, {.func_arg = show_codecs   },    "show available codecs" },
     { "decoders"   , OPT_EXIT, {.func_arg = show_decoders },    "show available decoders" },



More information about the ffmpeg-cvslog mailing list