summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2014-07-01 20:33:36 -0700
committerEric Laurent <elaurent@google.com>2014-07-01 20:33:36 -0700
commit40508f66cacca49688b85540c79a2ddc3d96d13d (patch)
treecee3577bfe5a536184c436dada0effe9e5aba71d /audio
parent03d92f4a6ec954cfa81765f00c1784e2c2ff2f49 (diff)
downloadhardware_libhardware_legacy-40508f66cacca49688b85540c79a2ddc3d96d13d.zip
hardware_libhardware_legacy-40508f66cacca49688b85540c79a2ddc3d96d13d.tar.gz
hardware_libhardware_legacy-40508f66cacca49688b85540c79a2ddc3d96d13d.tar.bz2
audio: fixed channel count determination from channel mask
Do not use popcount() to derive channel count from channel mask. Bug: 15000850. Change-Id: I5050ce7fd7884369eb0de37967e40052630006a9
Diffstat (limited to 'audio')
-rw-r--r--audio/AudioHardwareStub.cpp6
-rw-r--r--audio/audio_hw_hal.cpp2
2 files changed, 5 insertions, 3 deletions
diff --git a/audio/AudioHardwareStub.cpp b/audio/AudioHardwareStub.cpp
index 1083889..fd647d5 100644
--- a/audio/AudioHardwareStub.cpp
+++ b/audio/AudioHardwareStub.cpp
@@ -128,7 +128,8 @@ status_t AudioStreamOutStub::set(int *pFormat, uint32_t *pChannels, uint32_t *pR
ssize_t AudioStreamOutStub::write(const void* buffer, size_t bytes)
{
// fake timing for audio output
- usleep(bytes * 1000000 / sizeof(int16_t) / AudioSystem::popCount(channels()) / sampleRate());
+ usleep(bytes * 1000000 / sizeof(int16_t) /
+ audio_channel_count_from_out_mask(channels()) / sampleRate());
return bytes;
}
@@ -174,7 +175,8 @@ status_t AudioStreamInStub::set(int *pFormat, uint32_t *pChannels, uint32_t *pRa
ssize_t AudioStreamInStub::read(void* buffer, ssize_t bytes)
{
// fake timing for audio input
- usleep(bytes * 1000000 / sizeof(int16_t) / AudioSystem::popCount(channels()) / sampleRate());
+ usleep(bytes * 1000000 / sizeof(int16_t) /
+ audio_channel_count_from_in_mask(channels()) / sampleRate());
memset(buffer, 0, bytes);
return bytes;
}
diff --git a/audio/audio_hw_hal.cpp b/audio/audio_hw_hal.cpp
index 9b1f1a3..23ebdae 100644
--- a/audio/audio_hw_hal.cpp
+++ b/audio/audio_hw_hal.cpp
@@ -480,7 +480,7 @@ static size_t adev_get_input_buffer_size(const struct audio_hw_device *dev,
{
const struct legacy_audio_device *ladev = to_cladev(dev);
return ladev->hwif->getInputBufferSize(config->sample_rate, (int) config->format,
- popcount(config->channel_mask));
+ audio_channel_count_from_in_mask(config->channel_mask));
}
static int adev_open_output_stream(struct audio_hw_device *dev,