---
avprobe.c | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/avprobe.c b/avprobe.c
index d969257..a22cb8f 100644
--- a/avprobe.c
+++ b/avprobe.c
@@ -104,6 +104,10 @@ typedef struct PrintContext {
void (*print_integer) (const char *key, int64_t value);
void (*print_string) (const char *key, const char *value);
+
+ void (*print_array_int) (const char *key,
+ const int *array,
+ const int size);
} PrintContext;
static AVIOContext *probe_out = NULL;
@@ -201,6 +205,21 @@ static void ini_print_string(const char *key, const char
*value)
avio_w8(probe_out, '\n');
}
+static void ini_print_array_int(const char *key,
+ const int *array,
+ const int size)
+{
+ int i;
+ if (size < 1)
+ return;
+
+ ini_escape_print(key);
+ avio_printf(probe_out, "=%d", array[0]);
+ for (i = 1; i < size; i++)
+ avio_printf(probe_out, ", %d", array[i]);
+ avio_w8(probe_out, '\n');
+}
+
/*
* Alternate format, JSON
*/
@@ -255,6 +274,22 @@ static void json_print_integer(const char *key, int64_t
value)
avio_printf(probe_out, "\"%s\" : %"PRId64"", key, value);
}
+static void json_print_array_int(const char *key,
+ const int *array,
+ const int size)
+{
+ int i;
+ if (size < 1)
+ return;
+ if (octx.prefix[octx.level -1].nb_elems)
+ avio_printf(probe_out, ",\n");
+ AVP_INDENT();
+ avio_printf(probe_out, "\"%s\" : [ %d", key, array[0]);
+ for (i = 1; i < size; i++)
+ avio_printf(probe_out, ", %d", array[i]);
+ avio_printf(probe_out, " ]\n");
+}
+
static void json_escape_print(const char *s)
{
int i = 0;
@@ -822,6 +857,8 @@ static int opt_output_format(void *optctx, const char *opt,
const char *arg)
octx.print_integer = json_print_integer;
octx.print_string = json_print_string;
+
+ octx.print_array_int = json_print_array_int;
} else if (!strcmp(arg, "ini")) {
octx.print_header = ini_print_header;
octx.print_footer = ini_print_footer;
@@ -953,6 +990,8 @@ int main(int argc, char **argv)
octx.print_integer = ini_print_integer;
octx.print_string = ini_print_string;
+ octx.print_array_int = ini_print_array_int;
+
parse_options(NULL, argc, argv, options, opt_input_file);
if (!input_filename) {
--
1.9.0
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel