diff options
author | Cheng-Yi Chiang <cychiang@chromium.org> | 2017-02-28 07:33:29 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-03-10 10:54:49 -0800 |
commit | bd7dee79e32fcd3452599f8e75d3599152369ddb (patch) | |
tree | c114fa4fe1cbd157e9ed9e16f012aa3de76da3b4 | |
parent | a260b3aaaff38cb3972158739436ad32db15a8a8 (diff) | |
download | adhd-bd7dee79e32fcd3452599f8e75d3599152369ddb.tar.gz |
CRAS: test_client - Add log for number of overruns of streams
Logs number of overruns of streams in audio thread log.
Also, makes the device and stream info easier to read.
BUG=chrome-os-partner:60786
TEST=cras_test_client --dump_a /tmp/log and check stream info contains
num_overruns
Change-Id: If6bcee4710fbbc976a736b48a95e612c999243e4
Reviewed-on: https://chromium-review.googlesource.com/447185
Commit-Ready: Cheng-Yi Chiang <cychiang@chromium.org>
Tested-by: Cheng-Yi Chiang <cychiang@chromium.org>
Reviewed-by: Dylan Reid <dgreid@chromium.org>
-rw-r--r-- | cras/src/common/cras_types.h | 1 | ||||
-rw-r--r-- | cras/src/server/audio_thread.c | 1 | ||||
-rw-r--r-- | cras/src/tests/cras_test_client.c | 18 |
3 files changed, 16 insertions, 4 deletions
diff --git a/cras/src/common/cras_types.h b/cras/src/common/cras_types.h index 8fecbf13..b9dfc127 100644 --- a/cras/src/common/cras_types.h +++ b/cras/src/common/cras_types.h @@ -231,6 +231,7 @@ struct __attribute__ ((__packed__)) audio_stream_debug_info { uint32_t num_channels; uint32_t longest_fetch_sec; uint32_t longest_fetch_nsec; + uint32_t num_overruns; int8_t channel_layout[CRAS_CH_MAX]; }; diff --git a/cras/src/server/audio_thread.c b/cras/src/server/audio_thread.c index 2b8ada8a..d87b8912 100644 --- a/cras/src/server/audio_thread.c +++ b/cras/src/server/audio_thread.c @@ -810,6 +810,7 @@ static void append_stream_dump_info(struct audio_debug_info *info, sizeof(si->channel_layout)); si->longest_fetch_sec = stream->stream->longest_fetch_interval.tv_sec; si->longest_fetch_nsec = stream->stream->longest_fetch_interval.tv_nsec; + si->num_overruns = cras_shm_num_overruns(&stream->stream->shm); longest_wake.tv_sec = 0; longest_wake.tv_nsec = 0; diff --git a/cras/src/tests/cras_test_client.c b/cras/src/tests/cras_test_client.c index 56a91943..506821db 100644 --- a/cras/src/tests/cras_test_client.c +++ b/cras/src/tests/cras_test_client.c @@ -582,6 +582,7 @@ static void audio_debug_info(struct cras_client *client) info->devs[i].est_rate_ratio, (unsigned int)info->devs[i].num_underruns, (unsigned int)info->devs[i].num_severe_underruns); + printf("\n"); } printf("-------------stream_dump------------\n"); @@ -593,17 +594,26 @@ static void audio_debug_info(struct cras_client *client) printf("stream: %llx dev: %u\n", (unsigned long long)info->streams[i].stream_id, (unsigned int)info->streams[i].dev_idx); - printf("%d %u %u %u %u %u.%09u\n", - info->streams[i].direction, + printf("direction: %s\n", + (info->streams[i].direction == CRAS_STREAM_INPUT) + ? "Input" : "Output"); + printf("buffer_frames: %u\n" + "cb_threshold: %u\n" + "frame_rate: %u\n" + "num_channels: %u\n" + "longest_fetch_sec: %u.%09u\n" + "num_overruns: %u\n", (unsigned int)info->streams[i].buffer_frames, (unsigned int)info->streams[i].cb_threshold, (unsigned int)info->streams[i].frame_rate, (unsigned int)info->streams[i].num_channels, (unsigned int)info->streams[i].longest_fetch_sec, - (unsigned int)info->streams[i].longest_fetch_nsec); + (unsigned int)info->streams[i].longest_fetch_nsec, + (unsigned int)info->streams[i].num_overruns); + printf("channel map:"); for (channel = 0; channel < CRAS_CH_MAX; channel++) printf("%d ", info->streams[i].channel_layout[channel]); - printf("\n"); + printf("\n\n"); } printf("Audio Thread Event Log:\n"); |