aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClément Bœsch <ubitux@gmail.com>2012-05-26 01:27:19 +0200
committerClément Bœsch <ubitux@gmail.com>2012-05-26 22:53:13 +0200
commit19c1bf1525b45473d2ed66129df66cb30b4d3100 (patch)
treef6039f9307b9088727d40714a74386b02decf02c
parent53ce9905134e042516ddd7a4476dc668c0b094c4 (diff)
downloadffmpeg-19c1bf1525b45473d2ed66129df66cb30b4d3100.tar.gz
ffprobe: reduce the number of AVBPrint resets.
-rw-r--r--ffprobe.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/ffprobe.c b/ffprobe.c
index c98bdac3ff..bbcc5aeffd 100644
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -662,19 +662,17 @@ static void compact_show_tags(WriterContext *wctx, AVDictionary *dict)
AVDictionaryEntry *tag = NULL;
AVBPrint buf;
+ av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
while ((tag = av_dict_get(dict, "", tag, AV_DICT_IGNORE_SUFFIX))) {
if (wctx->nb_item) printf("%c", compact->item_sep);
-
if (!compact->nokey) {
- av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
+ av_bprint_clear(&buf);
printf("tag:%s=", compact->escape_str(&buf, tag->key, compact->item_sep, wctx));
- av_bprint_finalize(&buf, NULL);
}
-
- av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
+ av_bprint_clear(&buf);
printf("%s", compact->escape_str(&buf, tag->value, compact->item_sep, wctx));
- av_bprint_finalize(&buf, NULL);
}
+ av_bprint_finalize(&buf, NULL);
}
static const Writer compact_writer = {
@@ -867,9 +865,7 @@ static inline void json_print_item_str(WriterContext *wctx,
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf("\"%s\":", json_escape_str(&buf, key, wctx));
- av_bprint_finalize(&buf, NULL);
-
- av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
+ av_bprint_clear(&buf);
printf(" \"%s\"", json_escape_str(&buf, value, wctx));
av_bprint_finalize(&buf, NULL);
}
@@ -1124,6 +1120,7 @@ static void xml_show_tags(WriterContext *wctx, AVDictionary *dict)
int is_first = 1;
AVBPrint buf;
+ av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
xml->indent_level++;
while ((tag = av_dict_get(dict, "", tag, AV_DICT_IGNORE_SUFFIX))) {
if (is_first) {
@@ -1134,14 +1131,12 @@ static void xml_show_tags(WriterContext *wctx, AVDictionary *dict)
}
XML_INDENT();
- av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
+ av_bprint_clear(&buf);
printf("<tag key=\"%s\"", xml_escape_str(&buf, tag->key, wctx));
- av_bprint_finalize(&buf, NULL);
-
- av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
+ av_bprint_clear(&buf);
printf(" value=\"%s\"/>\n", xml_escape_str(&buf, tag->value, wctx));
- av_bprint_finalize(&buf, NULL);
}
+ av_bprint_finalize(&buf, NULL);
xml->indent_level--;
}