diff --git a/main/output_dac.c b/main/output_dac.c index 4146e951..2fe277e8 100644 --- a/main/output_dac.c +++ b/main/output_dac.c @@ -360,6 +360,40 @@ static void *output_thread() { * End Statistics reporting */ //wait_for_frames(BYTES_TO_FRAME(i2s_bytes_written)); + + /* + * Statistics reporting + */ +#define STATS_PERIOD_MS 5000 + count++; + TIMED_SECTION_START_MS(STATS_PERIOD_MS); + + LOG_INFO( "count:%d, current sample rate: %d, bytes per frame: %d, avg cycle duration (ms): %d",count,output.current_sample_rate, out_bytes_per_frame,STATS_PERIOD_MS/count); + LOG_INFO( " ----------+----------+-----------+ +----------+----------+----------------+"); + LOG_INFO( " max | min | current| | max | min | current |"); + LOG_INFO( " (ms) | (ms) | (ms)| | (bytes) | (bytes) | (bytes) |"); + LOG_INFO( " ----------+----------+-----------+ +----------+----------+----------------+"); + LOG_INFO(LINE_MIN_MAX_FORMAT_STREAM, LINE_MIN_MAX_STREAM("stream",s)); + LOG_INFO(LINE_MIN_MAX_FORMAT,LINE_MIN_MAX("output",o)); + LOG_INFO(LINE_MIN_MAX_FORMAT,LINE_MIN_MAX("i2swrite",i2savailable)); + LOG_INFO(LINE_MIN_MAX_FORMAT,LINE_MIN_MAX("local free",loci2sbuf)); + LOG_INFO(LINE_MIN_MAX_FORMAT,LINE_MIN_MAX("requested",req)); + LOG_INFO(LINE_MIN_MAX_FORMAT,LINE_MIN_MAX("received",rec)); + LOG_INFO(LINE_MIN_MAX_FORMAT,LINE_MIN_MAX("overflow",over)); + LOG_INFO(" ----------+----------+-----------+ +----------+----------+----------------+"); + LOG_INFO(""); + LOG_INFO(" max (us) | min (us) |current(us)| "); + LOG_INFO(" ----------+----------+-----------+ "); + LOG_INFO(LINE_MIN_MAX_DURATION_FORMAT,LINE_MIN_MAX_DURATION("Buffering(us)",buffering)); + LOG_INFO(LINE_MIN_MAX_DURATION_FORMAT,LINE_MIN_MAX_DURATION("i2s tfr(us)",i2s_time)); + LOG_INFO(" ----------+----------+-----------+ "); + RESET_ALL_MIN_MAX; + count=0; + TIMED_SECTION_END; + /* + * End Statistics reporting + */ + wait_for_frames(BYTES_TO_FRAME(i2s_bytes_written)); }