diff options
author | Joshua Lang <joshualang@google.com> | 2016-08-01 16:36:44 -0700 |
---|---|---|
committer | Joshua Lang <joshualang@google.com> | 2017-01-19 12:46:54 -0800 |
commit | 89f75f5fd4c9aaf9a740dbee1d732facd895c7c2 (patch) | |
tree | 8db388454d1b6f2821fbe13c6fb43b67bf329da7 /audio | |
parent | 8f7e649fef3a4e5b8dcc2545644106447bba9c44 (diff) | |
download | device_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.c | 13 |
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, |