Add some logging to track down where ANR happens during MediaPlayer._release().

o add a log message in AwesomePlayer::reset before acquiring the lock

Change-Id: I9f228f615f99c03c394e9d0dd78c855c0b9fcfbb
related-to-bug: 4409547
This commit is contained in:
James Dong
2011-05-19 15:56:50 -07:00
parent 2c7906eb39
commit a5293d1ca4
2 changed files with 7 additions and 1 deletions

View File

@ -400,6 +400,7 @@ status_t AwesomePlayer::setDataSource_l(const sp<MediaExtractor> &extractor) {
} }
void AwesomePlayer::reset() { void AwesomePlayer::reset() {
LOGI("reset");
Mutex::Autolock autoLock(mLock); Mutex::Autolock autoLock(mLock);
reset_l(); reset_l();
} }
@ -413,8 +414,10 @@ void AwesomePlayer::reset_l() {
Playback::STOP, 0); Playback::STOP, 0);
mDecryptHandle = NULL; mDecryptHandle = NULL;
mDrmManagerClient = NULL; mDrmManagerClient = NULL;
LOGI("DRM manager client stopped");
} }
if (mFlags & PLAYING) { if (mFlags & PLAYING) {
uint32_t params = IMediaPlayerService::kBatteryDataTrackDecoder; uint32_t params = IMediaPlayerService::kBatteryDataTrackDecoder;
if ((mAudioSource != NULL) && (mAudioSource != mAudioTrack)) { if ((mAudioSource != NULL) && (mAudioSource != mAudioTrack)) {
@ -447,6 +450,7 @@ void AwesomePlayer::reset_l() {
mPreparedCondition.wait(mLock); mPreparedCondition.wait(mLock);
} }
LOGI("cancel player events");
cancelPlayerEvents(); cancelPlayerEvents();
mWVMExtractor.clear(); mWVMExtractor.clear();
@ -496,6 +500,7 @@ void AwesomePlayer::reset_l() {
usleep(1000); usleep(1000);
} }
IPCThreadState::self()->flushCommands(); IPCThreadState::self()->flushCommands();
LOGI("video decoder shutdown completed");
} }
mDurationUs = -1; mDurationUs = -1;

View File

@ -3339,7 +3339,7 @@ status_t OMXCodec::start(MetaData *meta) {
} }
status_t OMXCodec::stop() { status_t OMXCodec::stop() {
CODEC_LOGV("stop mState=%d", mState); CODEC_LOGI("stop mState=%d", mState);
Mutex::Autolock autoLock(mLock); Mutex::Autolock autoLock(mLock);
@ -3401,6 +3401,7 @@ status_t OMXCodec::stop() {
mLeftOverBuffer = NULL; mLeftOverBuffer = NULL;
} }
CODEC_LOGI("stopping video source");
mSource->stop(); mSource->stop();
CODEC_LOGI("stopped in state %d", mState); CODEC_LOGI("stopped in state %d", mState);