summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorJoshua Lang <joshualang@google.com>2016-08-01 16:36:44 -0700
committerJoshua Lang <joshualang@google.com>2017-01-19 12:46:54 -0800
commit89f75f5fd4c9aaf9a740dbee1d732facd895c7c2 (patch)
tree8db388454d1b6f2821fbe13c6fb43b67bf329da7 /audio
parent8f7e649fef3a4e5b8dcc2545644106447bba9c44 (diff)
downloaddevice_generic_goldfish-89f75f5fd4c9aaf9a740dbee1d732facd895c7c2.tar.gz
device_generic_goldfish-89f75f5fd4c9aaf9a740dbee1d732facd895c7c2.tar.bz2
device_generic_goldfish-89f75f5fd4c9aaf9a740dbee1d732facd895c7c2.zip
Fix audio output period size and buffer size
Previous values were causing many test failures due to increased audio latency and incorrect buffer sizing. Test: Run cts audio playback tests Change-Id: If68449bbbca0ef219b44401192fa5d22a6c45413 (cherry picked from commit 0cc9aef3408231a7d5cec47879f2fe65102d9441)
Diffstat (limited to 'audio')
-rw-r--r--audio/audio_hw.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/audio/audio_hw.c b/audio/audio_hw.c
index 4ecb6313..d47c874b 100644
--- a/audio/audio_hw.c
+++ b/audio/audio_hw.c
@@ -36,9 +36,8 @@
#define PCM_DEVICE 0
-/* TODO validate values */
-#define OUT_PERIOD_SIZE 880
-#define OUT_LONG_PERIOD_COUNT 8
+#define OUT_PERIOD_SIZE 2048
+#define OUT_LONG_PERIOD_COUNT 2
#define IN_PERIOD_MS 20
#define IN_PERIOD_COUNT 4
@@ -118,9 +117,10 @@ static size_t out_get_buffer_size(const struct audio_stream *stream)
{
struct generic_stream_out *out = (struct generic_stream_out *)stream;
int channel_count = popcount(out->req_config.channel_mask);
- int size = pcm_get_buffer_size(out->pcm);
+ int size = out->pcm_config.period_size *
+ audio_stream_out_frame_size(&out->stream);
- return size*channel_count*sizeof(short);
+ return size;
}
static audio_channel_mask_t out_get_channels(const struct audio_stream *stream)
@@ -245,7 +245,8 @@ static char * out_get_parameters(const struct audio_stream *stream, const char *
static uint32_t out_get_latency(const struct audio_stream_out *stream)
{
struct generic_stream_out *out = (struct generic_stream_out *)stream;
- return (out->pcm_config.period_size * out->pcm_config.period_count * 1000) / out->pcm_config.rate;
+ return (out->pcm_config.period_size *
+ out->pcm_config.period_count * 1000) / out->pcm_config.rate;
}
static int out_set_volume(struct audio_stream_out *stream, float left,