ffprobe: fix output of packets_and_frames section in JSON format

The "type" entry was hardcoded with an trailing comma, even if it was
the only entry in the section.

Fixes ticket #8228.

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer 2019-10-11 13:36:38 -03:00
parent 2bfa7df9fe
commit 2e4f86e04c
1 changed files with 7 additions and 3 deletions

View File

@ -1535,7 +1535,7 @@ static void json_print_section_header(WriterContext *wctx)
if (parent_section && parent_section->id == SECTION_ID_PACKETS_AND_FRAMES) { if (parent_section && parent_section->id == SECTION_ID_PACKETS_AND_FRAMES) {
if (!json->compact) if (!json->compact)
JSON_INDENT(); JSON_INDENT();
printf("\"type\": \"%s\"%s", section->name, json->item_sep); printf("\"type\": \"%s\"", section->name);
} }
} }
av_bprint_finalize(&buf, NULL); av_bprint_finalize(&buf, NULL);
@ -1579,8 +1579,10 @@ static inline void json_print_item_str(WriterContext *wctx,
static void json_print_str(WriterContext *wctx, const char *key, const char *value) static void json_print_str(WriterContext *wctx, const char *key, const char *value)
{ {
JSONContext *json = wctx->priv; JSONContext *json = wctx->priv;
const struct section *parent_section = wctx->level ?
wctx->section[wctx->level-1] : NULL;
if (wctx->nb_item[wctx->level]) if (wctx->nb_item[wctx->level] || (parent_section && parent_section->id == SECTION_ID_PACKETS_AND_FRAMES))
printf("%s", json->item_sep); printf("%s", json->item_sep);
if (!json->compact) if (!json->compact)
JSON_INDENT(); JSON_INDENT();
@ -1590,9 +1592,11 @@ static void json_print_str(WriterContext *wctx, const char *key, const char *val
static void json_print_int(WriterContext *wctx, const char *key, long long int value) static void json_print_int(WriterContext *wctx, const char *key, long long int value)
{ {
JSONContext *json = wctx->priv; JSONContext *json = wctx->priv;
const struct section *parent_section = wctx->level ?
wctx->section[wctx->level-1] : NULL;
AVBPrint buf; AVBPrint buf;
if (wctx->nb_item[wctx->level]) if (wctx->nb_item[wctx->level] || (parent_section && parent_section->id == SECTION_ID_PACKETS_AND_FRAMES))
printf("%s", json->item_sep); printf("%s", json->item_sep);
if (!json->compact) if (!json->compact)
JSON_INDENT(); JSON_INDENT();