summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCheng-Yi Chiang <cychiang@chromium.org>2017-02-28 07:33:29 +0800
committerchrome-bot <chrome-bot@chromium.org>2017-03-10 10:54:49 -0800
commitbd7dee79e32fcd3452599f8e75d3599152369ddb (patch)
treec114fa4fe1cbd157e9ed9e16f012aa3de76da3b4
parenta260b3aaaff38cb3972158739436ad32db15a8a8 (diff)
downloadadhd-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.h1
-rw-r--r--cras/src/server/audio_thread.c1
-rw-r--r--cras/src/tests/cras_test_client.c18
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");