ffprobe: add "nokey" option to default writer
authorStefano Sabatini <stefasab@gmail.com>
Wed, 9 May 2012 23:28:07 +0000 (01:28 +0200)
committerStefano Sabatini <stefasab@gmail.com>
Mon, 14 May 2012 10:59:51 +0000 (12:59 +0200)
Help simplifying parsing in certain cases.

doc/ffprobe.texi
ffprobe.c

index a1af680..2d87c9a 100644 (file)
@@ -202,10 +202,13 @@ A description of the accepted options follows.
 
 @table @option
 
+@item nokey, nk
+If set to 1 specify not to print the key of each field. Default value
+is 0.
+
 @item noprint_wrappers, nw
 If set to 1 specify not to print the section header and footer.
 Default value is 0.
-
 @end table
 
 @section compact
index 5a8c9e8..d3cad33 100644 (file)
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -403,6 +403,7 @@ fail:
 
 typedef struct DefaultContext {
     const AVClass *class;
+    int nokey;
     int noprint_wrappers;
 } DefaultContext;
 
@@ -411,6 +412,8 @@ typedef struct DefaultContext {
 static const AVOption default_options[] = {
     { "noprint_wrappers", "do not print headers and footers", OFFSET(noprint_wrappers), AV_OPT_TYPE_INT, {.dbl=0}, 0, 1 },
     { "nw",               "do not print headers and footers", OFFSET(noprint_wrappers), AV_OPT_TYPE_INT, {.dbl=0}, 0, 1 },
+    { "nokey",          "force no key printing",     OFFSET(nokey),          AV_OPT_TYPE_INT, {.dbl=0}, 0, 1 },
+    { "nk",             "force no key printing",     OFFSET(nokey),          AV_OPT_TYPE_INT, {.dbl=0}, 0, 1 },
     {NULL},
 };
 
@@ -490,12 +493,19 @@ static void default_print_section_footer(WriterContext *wctx, const char *sectio
 
 static void default_print_str(WriterContext *wctx, const char *key, const char *value)
 {
-    printf("%s=%s\n", key, value);
+    DefaultContext *def = wctx->priv;
+    if (!def->nokey)
+        printf("%s=", key);
+    printf("%s\n", value);
 }
 
 static void default_print_int(WriterContext *wctx, const char *key, long long int value)
 {
-    printf("%s=%lld\n", key, value);
+    DefaultContext *def = wctx->priv;
+
+    if (!def->nokey)
+        printf("%s=", key);
+    printf("%lld\n", value);
 }
 
 static void default_show_tags(WriterContext *wctx, AVDictionary *dict)