diff --git a/ffprobe.c b/ffprobe.c index 28a05cb022..748a4b9d35 100644 --- a/ffprobe.c +++ b/ffprobe.c @@ -1095,13 +1095,13 @@ static void json_print_section_header(WriterContext *wctx) json->indent_level++; if (section->flags & SECTION_FLAG_IS_ARRAY) { printf("\"%s\": [\n", buf.str); - } else if (!(parent_section->flags & SECTION_FLAG_IS_ARRAY)) { + } else if (parent_section && !(parent_section->flags & SECTION_FLAG_IS_ARRAY)) { printf("\"%s\": {%s", buf.str, json->item_start_end); } else { printf("{%s", json->item_start_end); /* this is required so the parser can distinguish between packets and frames */ - if (parent_section->id == SECTION_ID_PACKETS_AND_FRAMES) { + if (parent_section && parent_section->id == SECTION_ID_PACKETS_AND_FRAMES) { if (!json->compact) JSON_INDENT(); printf("\"type\": \"%s\"%s", section->name, json->item_sep);