Loading media/libmediaplayerservice/StagefrightPlayer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,7 @@ bool StagefrightPlayer::isPlaying() { } status_t StagefrightPlayer::seekTo(int msec) { LOGV("seekTo"); LOGV("seekTo %.2f secs", msec / 1E3); status_t err = mPlayer->seekTo((int64_t)msec * 1000); Loading media/libstagefright/AudioPlayer.cpp +19 −4 Original line number Diff line number Diff line Loading @@ -311,6 +311,10 @@ size_t AudioPlayer::fillBuffer(void *data, size_t size) { return size; } bool postSeekComplete = false; bool postEOS = false; int64_t postEOSDelayUs = 0; size_t size_done = 0; size_t size_remaining = size; while (size_remaining > 0) { Loading @@ -337,7 +341,7 @@ size_t AudioPlayer::fillBuffer(void *data, size_t size) { mSeeking = false; if (mObserver) { mObserver->postAudioSeekComplete(); postSeekComplete = true; } } } Loading Loading @@ -389,7 +393,8 @@ size_t AudioPlayer::fillBuffer(void *data, size_t size) { numFramesPendingPlayout, timeToCompletionUs, timeToCompletionUs / 1E6); mObserver->postAudioEOS(timeToCompletionUs + mLatencyUs); postEOS = true; postEOSDelayUs = timeToCompletionUs + mLatencyUs; } mReachedEOS = true; Loading Loading @@ -433,8 +438,18 @@ size_t AudioPlayer::fillBuffer(void *data, size_t size) { size_remaining -= copy; } { Mutex::Autolock autoLock(mLock); mNumFramesPlayed += size_done / mFrameSize; } if (postEOS) { mObserver->postAudioEOS(postEOSDelayUs); } if (postSeekComplete) { mObserver->postAudioSeekComplete(); } return size_done; } Loading media/libstagefright/AwesomePlayer.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -1859,10 +1859,12 @@ uint32_t AwesomePlayer::flags() const { } void AwesomePlayer::postAudioEOS(int64_t delayUs) { Mutex::Autolock autoLock(mLock); postCheckAudioStatusEvent_l(delayUs); } void AwesomePlayer::postAudioSeekComplete() { Mutex::Autolock autoLock(mLock); postCheckAudioStatusEvent_l(0 /* delayUs */); } Loading Loading
media/libmediaplayerservice/StagefrightPlayer.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,7 @@ bool StagefrightPlayer::isPlaying() { } status_t StagefrightPlayer::seekTo(int msec) { LOGV("seekTo"); LOGV("seekTo %.2f secs", msec / 1E3); status_t err = mPlayer->seekTo((int64_t)msec * 1000); Loading
media/libstagefright/AudioPlayer.cpp +19 −4 Original line number Diff line number Diff line Loading @@ -311,6 +311,10 @@ size_t AudioPlayer::fillBuffer(void *data, size_t size) { return size; } bool postSeekComplete = false; bool postEOS = false; int64_t postEOSDelayUs = 0; size_t size_done = 0; size_t size_remaining = size; while (size_remaining > 0) { Loading @@ -337,7 +341,7 @@ size_t AudioPlayer::fillBuffer(void *data, size_t size) { mSeeking = false; if (mObserver) { mObserver->postAudioSeekComplete(); postSeekComplete = true; } } } Loading Loading @@ -389,7 +393,8 @@ size_t AudioPlayer::fillBuffer(void *data, size_t size) { numFramesPendingPlayout, timeToCompletionUs, timeToCompletionUs / 1E6); mObserver->postAudioEOS(timeToCompletionUs + mLatencyUs); postEOS = true; postEOSDelayUs = timeToCompletionUs + mLatencyUs; } mReachedEOS = true; Loading Loading @@ -433,8 +438,18 @@ size_t AudioPlayer::fillBuffer(void *data, size_t size) { size_remaining -= copy; } { Mutex::Autolock autoLock(mLock); mNumFramesPlayed += size_done / mFrameSize; } if (postEOS) { mObserver->postAudioEOS(postEOSDelayUs); } if (postSeekComplete) { mObserver->postAudioSeekComplete(); } return size_done; } Loading
media/libstagefright/AwesomePlayer.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -1859,10 +1859,12 @@ uint32_t AwesomePlayer::flags() const { } void AwesomePlayer::postAudioEOS(int64_t delayUs) { Mutex::Autolock autoLock(mLock); postCheckAudioStatusEvent_l(delayUs); } void AwesomePlayer::postAudioSeekComplete() { Mutex::Autolock autoLock(mLock); postCheckAudioStatusEvent_l(0 /* delayUs */); } Loading