summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2012-06-21 12:56:37 -0700
committerGlenn Kasten <gkasten@google.com>2012-11-14 16:45:53 -0800
commit60a839204713e0f8258d082af83262b1eb33a6c3 (patch)
tree5b8ef6ace475c96637bb6498b1c0a602611f9a58 /media
parent3b16c766d1ae2cfd8487e8ffb2b23936fc0a8e17 (diff)
downloadframeworks_av-60a839204713e0f8258d082af83262b1eb33a6c3.zip
frameworks_av-60a839204713e0f8258d082af83262b1eb33a6c3.tar.gz
frameworks_av-60a839204713e0f8258d082af83262b1eb33a6c3.tar.bz2
Clean up frame size in AudioTrack and AudioFlinger
TrackBase::mFrameSize, mChannelMask, and mChannelCount are now const. Use TrackBase::mFrameSize instead of re-calculating frame size. AudioFlinger only sees 16-bit PCM format, conversion from 8-bit is now entirely on the client side. Previously a small part of the responsibility was on server side also. size_t is unsigned, so use %u in logs. Fix theoretical bug where TrackBase constructor was over-allocating space for non-linear AudioTrack or 8-bit PCM AudioRecord (probably benign). Change-Id: I7cbbba0bf4dba29ea751d8af341ab8e5cbbdc206
Diffstat (limited to 'media')
-rw-r--r--media/libmedia/AudioTrack.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp
index 7480807..5fb36ee 100644
--- a/media/libmedia/AudioTrack.cpp
+++ b/media/libmedia/AudioTrack.cpp
@@ -858,7 +858,9 @@ status_t AudioTrack::createTrack_l(
sp<IAudioTrack> track = audioFlinger->createTrack(getpid(),
streamType,
sampleRate,
- format,
+ // AudioFlinger only sees 16-bit PCM
+ format == AUDIO_FORMAT_PCM_8_BIT ?
+ AUDIO_FORMAT_PCM_16_BIT : format,
channelMask,
frameCount,
&trackFlags,