diff options
author | Andreas Huber <andih@google.com> | 2011-09-08 11:33:47 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2011-09-08 11:33:47 -0700 |
commit | f7eade99250520f2c9c8366a20a9256c4b34abc1 (patch) | |
tree | b60360cfaa7a504d564810dc0aedc96ee34f7066 /media | |
parent | 41610c37763fcea076cce18de9f5b4c7d9c30ea6 (diff) | |
download | frameworks_av-f7eade99250520f2c9c8366a20a9256c4b34abc1.zip frameworks_av-f7eade99250520f2c9c8366a20a9256c4b34abc1.tar.gz frameworks_av-f7eade99250520f2c9c8366a20a9256c4b34abc1.tar.bz2 |
Audio player must not be used as a timesource before it's started.
Otherwise it'll trigger a division-by-zero exception since the audio sample rate
is as yet unknown.
Change-Id: I0793aa7c1c348ffa2611272bb646eff6ecf6ff53
related-to-bug: 5242451
Diffstat (limited to 'media')
-rw-r--r-- | media/libstagefright/AudioPlayer.cpp | 6 | ||||
-rw-r--r-- | media/libstagefright/AwesomePlayer.cpp | 4 |
2 files changed, 7 insertions, 3 deletions
diff --git a/media/libstagefright/AudioPlayer.cpp b/media/libstagefright/AudioPlayer.cpp index d41ab1b..ba076f5 100644 --- a/media/libstagefright/AudioPlayer.cpp +++ b/media/libstagefright/AudioPlayer.cpp @@ -20,8 +20,8 @@ #include <binder/IPCThreadState.h> #include <media/AudioTrack.h> +#include <media/stagefright/foundation/ADebug.h> #include <media/stagefright/AudioPlayer.h> -#include <media/stagefright/MediaDebug.h> #include <media/stagefright/MediaDefs.h> #include <media/stagefright/MediaErrors.h> #include <media/stagefright/MediaSource.h> @@ -60,7 +60,7 @@ AudioPlayer::~AudioPlayer() { } void AudioPlayer::setSource(const sp<MediaSource> &source) { - CHECK_EQ(mSource, NULL); + CHECK(mSource == NULL); mSource = source; } @@ -466,6 +466,8 @@ int64_t AudioPlayer::getRealTimeUs() { } int64_t AudioPlayer::getRealTimeUsLocked() const { + CHECK(mStarted); + CHECK_NE(mSampleRate, 0); return -mLatencyUs + (mNumFramesPlayed * 1000000) / mSampleRate; } diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp index 47224cc..07a46bd 100644 --- a/media/libstagefright/AwesomePlayer.cpp +++ b/media/libstagefright/AwesomePlayer.cpp @@ -1736,7 +1736,9 @@ void AwesomePlayer::onVideoEvent() { modifyFlags(TEXT_RUNNING, SET); } - TimeSource *ts = (mFlags & AUDIO_AT_EOS) ? &mSystemTimeSource : mTimeSource; + TimeSource *ts = + ((mFlags & AUDIO_AT_EOS) || !(mFlags & AUDIOPLAYER_STARTED)) + ? &mSystemTimeSource : mTimeSource; if (mFlags & FIRST_FRAME) { modifyFlags(FIRST_FRAME, CLEAR); |