diff options
author | Clément Bœsch <ubitux@gmail.com> | 2012-05-26 01:27:19 +0200 |
---|---|---|
committer | Clément Bœsch <ubitux@gmail.com> | 2012-05-26 22:53:13 +0200 |
commit | 19c1bf1525b45473d2ed66129df66cb30b4d3100 (patch) | |
tree | f6039f9307b9088727d40714a74386b02decf02c | |
parent | 53ce9905134e042516ddd7a4476dc668c0b094c4 (diff) | |
download | ffmpeg-19c1bf1525b45473d2ed66129df66cb30b4d3100.tar.gz |
ffprobe: reduce the number of AVBPrint resets.
-rw-r--r-- | ffprobe.c | 23 |
1 files changed, 9 insertions, 14 deletions
@@ -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--; } |