@ -179,6 +179,7 @@ struct WriterContext {
unsigned int nb_section ; ///< number of the section printed in the given section sequence, starting at 0
unsigned int nb_chapter ; ///< number of the chapter, starting at 0
int multiple_sections ; ///< tells if the current chapter can contain multiple sections
int is_fmt_chapter ; ///< tells if the current chapter is "format", required by the print_format_entry option
} ;
@ -255,6 +256,9 @@ static inline void writer_print_chapter_header(WriterContext *wctx,
wctx - > writer - > print_chapter_header ( wctx , chapter ) ;
wctx - > nb_section = 0 ;
wctx - > multiple_sections = ! strcmp ( chapter , " packets " ) | | ! strcmp ( chapter , " frames " ) | |
! strcmp ( chapter , " packets_and_frames " ) | |
! strcmp ( chapter , " streams " ) | | ! strcmp ( chapter , " library_versions " ) ;
wctx - > is_fmt_chapter = ! strcmp ( chapter , " format " ) ;
}
@ -713,7 +717,6 @@ static const Writer csv_writer = {
typedef struct {
const AVClass * class ;
int multiple_entries ; ///< tells if the given chapter requires multiple entries
int print_packets_and_frames ;
int indent_level ;
int compact ;
@ -804,10 +807,7 @@ static void json_print_chapter_header(WriterContext *wctx, const char *chapter)
if ( wctx - > nb_chapter )
printf ( " , " ) ;
printf ( " \n " ) ;
json - > multiple_entries = ! strcmp ( chapter , " packets " ) | | ! strcmp ( chapter , " frames " ) | |
! strcmp ( chapter , " packets_and_frames " ) | |
! strcmp ( chapter , " streams " ) | | ! strcmp ( chapter , " library_versions " ) ;
if ( json - > multiple_entries ) {
if ( wctx - > multiple_sections ) {
JSON_INDENT ( ) ;
av_bprint_init ( & buf , 1 , AV_BPRINT_SIZE_UNLIMITED ) ;
printf ( " \" %s \" : [ \n " , json_escape_str ( & buf , chapter , wctx ) ) ;
@ -821,7 +821,7 @@ static void json_print_chapter_footer(WriterContext *wctx, const char *chapter)
{
JSONContext * json = wctx - > priv ;
if ( json - > multiple_entrie s) {
if ( wctx - > multiple_section s) {
printf ( " \n " ) ;
json - > indent_level - - ;
JSON_INDENT ( ) ;
@ -836,7 +836,7 @@ static void json_print_section_header(WriterContext *wctx, const char *section)
if ( wctx - > nb_section )
printf ( " , \n " ) ;
JSON_INDENT ( ) ;
if ( ! json - > multiple_entrie s)
if ( ! wctx - > multiple_section s)
printf ( " \" %s \" : " , section ) ;
printf ( " {%s " , json - > item_start_end ) ;
json - > indent_level + + ;