summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/WAVExtractor.cpp
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@android.com>2012-12-17 13:20:30 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2012-12-17 13:20:30 -0800
commit34d7db5dd43000cac7e8e156d79e9f97ccbb8990 (patch)
treeb477a8d13f7e4f3b6085a55af3b9088ca6e2d2fd /media/libstagefright/WAVExtractor.cpp
parentd272d6bf640dcaebeee7405469f9cacfa4bc1b72 (diff)
parente9a7857dc045a4465c9e59ea8df67cdd707345b7 (diff)
downloadframeworks_av-34d7db5dd43000cac7e8e156d79e9f97ccbb8990.zip
frameworks_av-34d7db5dd43000cac7e8e156d79e9f97ccbb8990.tar.gz
frameworks_av-34d7db5dd43000cac7e8e156d79e9f97ccbb8990.tar.bz2
am 9435b498: am f38259cf: Merge "Fix bug in WAVExtractor for 24-bit per sample wav"
* commit '9435b498123f3e22532391c30eb42c336bf743ec': Fix bug in WAVExtractor for 24-bit per sample wav
Diffstat (limited to 'media/libstagefright/WAVExtractor.cpp')
-rw-r--r--media/libstagefright/WAVExtractor.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/media/libstagefright/WAVExtractor.cpp b/media/libstagefright/WAVExtractor.cpp
index d32f4fb..22af6fb 100644
--- a/media/libstagefright/WAVExtractor.cpp
+++ b/media/libstagefright/WAVExtractor.cpp
@@ -426,8 +426,10 @@ status_t WAVSource::read(
return err;
}
+ // make sure that maxBytesToRead is multiple of 3, in 24-bit case
size_t maxBytesToRead =
- mBitsPerSample == 8 ? kMaxFrameSize / 2 : kMaxFrameSize;
+ mBitsPerSample == 8 ? kMaxFrameSize / 2 :
+ (mBitsPerSample == 24 ? 3*(kMaxFrameSize/3): kMaxFrameSize);
size_t maxBytesAvailable =
(mCurrentPos - mOffset >= (off64_t)mSize)
@@ -459,7 +461,7 @@ status_t WAVSource::read(
buffer->set_range(0, n);
- if (mWaveFormat == WAVE_FORMAT_PCM) {
+ if (mWaveFormat == WAVE_FORMAT_PCM || mWaveFormat == WAVE_FORMAT_EXTENSIBLE) {
if (mBitsPerSample == 8) {
// Convert 8-bit unsigned samples to 16-bit signed.