Merge "Audio player must not be used as a timesource before it's started."

This commit is contained in:
Andreas Huber
2011-09-08 11:39:17 -07:00
committed by Android (Google) Code Review
2 changed files with 7 additions and 3 deletions

View File

@@ -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;
}

View File

@@ -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);