summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/Threads.cpp
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2013-11-22 09:29:56 -0800
committerEric Laurent <elaurent@google.com>2013-11-22 10:15:42 -0800
commit04733dbdede313fc5e291070014c1a0641fe6166 (patch)
treef215383a4f483175e8d2d34939b337ae4558c1f4 /services/audioflinger/Threads.cpp
parentfc2e519dee2ae0a6a309183f936d43beecce6007 (diff)
downloadframeworks_av-04733dbdede313fc5e291070014c1a0641fe6166.zip
frameworks_av-04733dbdede313fc5e291070014c1a0641fe6166.tar.gz
frameworks_av-04733dbdede313fc5e291070014c1a0641fe6166.tar.bz2
audioflinger: fix offload write buffer offset
Fix current audio HAL write buffer offset calculation which assumes that the frame size is a multiple of 2. Change-Id: I0195ed5cfef225a6f114e7dd405a02680bb7254e
Diffstat (limited to 'services/audioflinger/Threads.cpp')
-rw-r--r--services/audioflinger/Threads.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index 4e23129..f3c7561 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp
@@ -1921,7 +1921,7 @@ ssize_t AudioFlinger::PlaybackThread::threadLoop_write()
// otherwise use the HAL / AudioStreamOut directly
} else {
// Direct output and offload threads
- size_t offset = (mCurrentWriteLength - mBytesRemaining) / sizeof(int16_t);
+ size_t offset = (mCurrentWriteLength - mBytesRemaining);
if (mUseAsyncWrite) {
ALOGW_IF(mWriteAckSequence & 1, "threadLoop_write(): out of sequence write request");
mWriteAckSequence += 2;
@@ -1932,7 +1932,7 @@ ssize_t AudioFlinger::PlaybackThread::threadLoop_write()
// FIXME We should have an implementation of timestamps for direct output threads.
// They are used e.g for multichannel PCM playback over HDMI.
bytesWritten = mOutput->stream->write(mOutput->stream,
- mMixBuffer + offset, mBytesRemaining);
+ (char *)mMixBuffer + offset, mBytesRemaining);
if (mUseAsyncWrite &&
((bytesWritten < 0) || (bytesWritten == (ssize_t)mBytesRemaining))) {
// do not wait for async callback in case of error of full write