summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/MediaPlayerService.h
diff options
context:
space:
mode:
authorAndy Hung <hunga@google.com>2014-08-20 17:37:59 -0700
committerAndy Hung <hunga@google.com>2014-08-21 16:51:28 -0700
commita31335a4ec96ba351f25f3b26fa79a78c2723a13 (patch)
tree2c1aea6357ac46dcdeecc0b1b5b80a4b6bd05cd3 /media/libmediaplayerservice/MediaPlayerService.h
parent2a1bcb8347ad4778a49bb340c3ed28ba27caa7d7 (diff)
downloadframeworks_av-a31335a4ec96ba351f25f3b26fa79a78c2723a13.zip
frameworks_av-a31335a4ec96ba351f25f3b26fa79a78c2723a13.tar.gz
frameworks_av-a31335a4ec96ba351f25f3b26fa79a78c2723a13.tar.bz2
Fix SoundPool and MediaPlayerService buffer overflow
Overflow occurs when SoundPool sample tracks cannot fit in the MediaPlayerService AudioCache buffer. Unnecessary decoding occurred with AwesomePlayer and an assert failure occurred with NuPlayer. NuPlayerRenderer is also tweaked to handle the latter case. Bug: 17122639 Change-Id: I4d25d3e2c0c62e36a91da6bf969edabddc2ebbb0
Diffstat (limited to 'media/libmediaplayerservice/MediaPlayerService.h')
-rw-r--r--media/libmediaplayerservice/MediaPlayerService.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.h b/media/libmediaplayerservice/MediaPlayerService.h
index 406e3f6..4fe7075 100644
--- a/media/libmediaplayerservice/MediaPlayerService.h
+++ b/media/libmediaplayerservice/MediaPlayerService.h
@@ -194,7 +194,7 @@ class MediaPlayerService : public BnMediaPlayerService
virtual ssize_t bufferSize() const { return frameSize() * mFrameCount; }
virtual ssize_t frameCount() const { return mFrameCount; }
virtual ssize_t channelCount() const { return (ssize_t)mChannelCount; }
- virtual ssize_t frameSize() const { return ssize_t(mChannelCount * ((mFormat == AUDIO_FORMAT_PCM_16_BIT)?sizeof(int16_t):sizeof(u_int8_t))); }
+ virtual ssize_t frameSize() const { return (ssize_t)mFrameSize; }
virtual uint32_t latency() const;
virtual float msecsPerFrame() const;
virtual status_t getPosition(uint32_t *position) const;
@@ -244,6 +244,7 @@ class MediaPlayerService : public BnMediaPlayerService
ssize_t mFrameCount;
uint32_t mSampleRate;
uint32_t mSize;
+ size_t mFrameSize;
int mError;
bool mCommandComplete;