Commit 19c1bf15 authored by Clément Bœsch's avatar Clément Bœsch

ffprobe: reduce the number of AVBPrint resets.

parent 53ce9905
...@@ -662,19 +662,17 @@ static void compact_show_tags(WriterContext *wctx, AVDictionary *dict) ...@@ -662,19 +662,17 @@ static void compact_show_tags(WriterContext *wctx, AVDictionary *dict)
AVDictionaryEntry *tag = NULL; AVDictionaryEntry *tag = NULL;
AVBPrint buf; AVBPrint buf;
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
while ((tag = av_dict_get(dict, "", tag, AV_DICT_IGNORE_SUFFIX))) { while ((tag = av_dict_get(dict, "", tag, AV_DICT_IGNORE_SUFFIX))) {
if (wctx->nb_item) printf("%c", compact->item_sep); if (wctx->nb_item) printf("%c", compact->item_sep);
if (!compact->nokey) { 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)); printf("tag:%s=", compact->escape_str(&buf, tag->key, compact->item_sep, wctx));
av_bprint_finalize(&buf, NULL);
} }
av_bprint_clear(&buf);
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf("%s", compact->escape_str(&buf, tag->value, compact->item_sep, wctx)); 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 = { static const Writer compact_writer = {
...@@ -867,9 +865,7 @@ static inline void json_print_item_str(WriterContext *wctx, ...@@ -867,9 +865,7 @@ static inline void json_print_item_str(WriterContext *wctx,
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED); av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf("\"%s\":", json_escape_str(&buf, key, wctx)); printf("\"%s\":", json_escape_str(&buf, key, wctx));
av_bprint_finalize(&buf, NULL); av_bprint_clear(&buf);
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf(" \"%s\"", json_escape_str(&buf, value, wctx)); printf(" \"%s\"", json_escape_str(&buf, value, wctx));
av_bprint_finalize(&buf, NULL); av_bprint_finalize(&buf, NULL);
} }
...@@ -1124,6 +1120,7 @@ static void xml_show_tags(WriterContext *wctx, AVDictionary *dict) ...@@ -1124,6 +1120,7 @@ static void xml_show_tags(WriterContext *wctx, AVDictionary *dict)
int is_first = 1; int is_first = 1;
AVBPrint buf; AVBPrint buf;
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
xml->indent_level++; xml->indent_level++;
while ((tag = av_dict_get(dict, "", tag, AV_DICT_IGNORE_SUFFIX))) { while ((tag = av_dict_get(dict, "", tag, AV_DICT_IGNORE_SUFFIX))) {
if (is_first) { if (is_first) {
...@@ -1134,14 +1131,12 @@ static void xml_show_tags(WriterContext *wctx, AVDictionary *dict) ...@@ -1134,14 +1131,12 @@ static void xml_show_tags(WriterContext *wctx, AVDictionary *dict)
} }
XML_INDENT(); 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)); printf("<tag key=\"%s\"", xml_escape_str(&buf, tag->key, wctx));
av_bprint_finalize(&buf, NULL); av_bprint_clear(&buf);
av_bprint_init(&buf, 1, AV_BPRINT_SIZE_UNLIMITED);
printf(" value=\"%s\"/>\n", xml_escape_str(&buf, tag->value, wctx)); printf(" value=\"%s\"/>\n", xml_escape_str(&buf, tag->value, wctx));
av_bprint_finalize(&buf, NULL);
} }
av_bprint_finalize(&buf, NULL);
xml->indent_level--; xml->indent_level--;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment