---
 avprobe.c | 70 +++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 35 insertions(+), 35 deletions(-)

diff --git a/avprobe.c b/avprobe.c
index d786840..f9a351c 100644
--- a/avprobe.c
+++ b/avprobe.c
@@ -796,41 +796,48 @@ static int opt_format(void *optctx, const char *opt, 
const char *arg)
     }
     return 0;
 }
-
-static int opt_output_format(void *optctx, const char *opt, const char *arg)
+static int print_set_formatter(PrintContext *pctx, const char *formatter)
 {
+    if (!formatter)
+        return AVERROR(EINVAL);
 
-    if (!strcmp(arg, "json")) {
-        octx.print_header        = json_print_header;
-        octx.print_footer        = json_print_footer;
-        octx.print_array_header  = json_print_array_header;
-        octx.print_array_footer  = json_print_array_footer;
-        octx.print_object_header = json_print_object_header;
-        octx.print_object_footer = json_print_object_footer;
-
-        octx.print_integer = json_print_integer;
-        octx.print_string  = json_print_string;
-    } else if (!strcmp(arg, "ini")) {
-        octx.print_header        = ini_print_header;
-        octx.print_footer        = ini_print_footer;
-        octx.print_array_header  = ini_print_array_header;
-        octx.print_object_header = ini_print_object_header;
-
-        octx.print_integer = ini_print_integer;
-        octx.print_string  = ini_print_string;
-    } else if (!strcmp(arg, "old")) {
-        octx.print_header        = NULL;
-        octx.print_object_header = old_print_object_header;
-        octx.print_object_footer = old_print_object_footer;
-
-        octx.print_string        = old_print_string;
+    if (!strcmp(formatter, "json")) {
+        pctx->print_header        = json_print_header;
+        pctx->print_footer        = json_print_footer;
+        pctx->print_array_header  = json_print_array_header;
+        pctx->print_array_footer  = json_print_array_footer;
+        pctx->print_object_header = json_print_object_header;
+        pctx->print_object_footer = json_print_object_footer;
+
+        pctx->print_integer = json_print_integer;
+        pctx->print_string  = json_print_string;
+    } else if (!strcmp(formatter, "ini")) {
+        pctx->print_header        = ini_print_header;
+        pctx->print_footer        = ini_print_footer;
+        pctx->print_array_header  = ini_print_array_header;
+        pctx->print_object_header = ini_print_object_header;
+
+        pctx->print_integer = ini_print_integer;
+        pctx->print_string  = ini_print_string;
+    } else if (!strcmp(formatter, "old")) {
+        pctx->print_header        = NULL;
+        pctx->print_object_header = old_print_object_header;
+        pctx->print_object_footer = old_print_object_footer;
+
+        pctx->print_string        = old_print_string;
     } else {
-        av_log(NULL, AV_LOG_ERROR, "Unsupported formatter %s\n", arg);
+        av_log(NULL, AV_LOG_ERROR, "Unsupported formatter %s\n", formatter);
         return AVERROR(EINVAL);
     }
+
     return 0;
 }
 
+static int opt_output_format(void *optctx, const char *opt, const char *arg)
+{
+    return print_set_formatter(&octx, arg);
+}
+
 static int opt_show_format_entry(void *optctx, const char *opt, const char 
*arg)
 {
     do_show_format = 1;
@@ -932,14 +939,7 @@ int main(int argc, char **argv)
 
     show_banner();
 
-    octx.print_header = ini_print_header;
-    octx.print_footer = ini_print_footer;
-
-    octx.print_array_header = ini_print_array_header;
-    octx.print_object_header = ini_print_object_header;
-
-    octx.print_integer = ini_print_integer;
-    octx.print_string = ini_print_string;
+    print_set_formatter(&octx, "ini");
 
     parse_options(NULL, argc, argv, options, opt_input_file);
 
-- 
1.8.2.1

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to