summaryrefslogtreecommitdiff
path: root/ffprobe.c
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2011-11-16 00:41:55 +0100
committerStefano Sabatini <stefasab@gmail.com>2011-11-16 18:40:03 +0100
commit1f0d937f777a2d4d83200a4d26c7752735eee727 (patch)
treeb71a77cb521c29a1245ce931f6a557eb0c70b43c /ffprobe.c
parent4e7b3ef3b3cf71479dde1d4ae644eaf4857c4813 (diff)
ffprobe: add csv writer
Diffstat (limited to 'ffprobe.c')
-rw-r--r--ffprobe.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/ffprobe.c b/ffprobe.c
index c15cf7bd2b..8c44528af1 100644
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -688,6 +688,26 @@ static Writer compact_writer = {
.flags = WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS
};
+/* CSV output */
+
+static av_cold int csv_init(WriterContext *wctx, const char *args, void *opaque)
+{
+ return compact_init(wctx, "item_sep=,:nokey=1:escape=csv", opaque);
+}
+
+static Writer csv_writer = {
+ .name = "csv",
+ .priv_size = sizeof(CompactContext),
+ .init = csv_init,
+ .uninit = compact_uninit,
+ .print_section_header = compact_print_section_header,
+ .print_section_footer = compact_print_section_footer,
+ .print_integer = compact_print_int,
+ .print_string = compact_print_str,
+ .show_tags = compact_show_tags,
+ .flags = WRITER_FLAG_DISPLAY_OPTIONAL_FIELDS,
+};
+
/* JSON output */
typedef struct {
@@ -857,6 +877,7 @@ static void writer_register_all(void)
writer_register(&default_writer);
writer_register(&compact_writer);
+ writer_register(&csv_writer);
writer_register(&json_writer);
}
@@ -1203,7 +1224,8 @@ static const OptionDef options[] = {
"use sexagesimal format HOURS:MM:SS.MICROSECONDS for time units" },
{ "pretty", 0, {(void*)&opt_pretty},
"prettify the format of displayed values, make it more human readable" },
- { "print_format", OPT_STRING | HAS_ARG, {(void*)&print_format}, "set the output printing format (available formats are: default, compact, json)", "format" },
+ { "print_format", OPT_STRING | HAS_ARG, {(void*)&print_format},
+ "set the output printing format (available formats are: default, compact, csv, json)", "format" },
{ "show_format", OPT_BOOL, {(void*)&do_show_format} , "show format/container info" },
{ "show_packets", OPT_BOOL, {(void*)&do_show_packets}, "show packets info" },
{ "show_streams", OPT_BOOL, {(void*)&do_show_streams}, "show streams info" },