summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
authorWei Jia <wjia@google.com>2014-09-02 01:40:36 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-09-02 01:40:37 +0000
commite7494680914c384dc6e93ae85f4337b06b300468 (patch)
treec339ec97ce887432dcde4933af993d833abb175f /media/libmediaplayerservice
parent64a385d5d8e42ac96c88fb025212b4023690db39 (diff)
parent73ddd210ea572375198cac1d4960df793745fb4b (diff)
downloadframeworks_av-e7494680914c384dc6e93ae85f4337b06b300468.zip
frameworks_av-e7494680914c384dc6e93ae85f4337b06b300468.tar.gz
frameworks_av-e7494680914c384dc6e93ae85f4337b06b300468.tar.bz2
Merge "NuPlayerRenderer: stop feeding AudioSink when paused." into lmp-dev
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r--media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp6
-rw-r--r--media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp7
2 files changed, 7 insertions, 6 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
index c4bbcdf..2423f5f 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
@@ -560,8 +560,10 @@ void NuPlayerDriver::notifyDuration(int64_t durationUs) {
void NuPlayerDriver::notifyPosition(int64_t positionUs) {
Mutex::Autolock autoLock(mLock);
- mPositionUs = positionUs;
- mNotifyTimeRealUs = ALooper::GetNowUs();
+ if (isPlaying()) {
+ mPositionUs = positionUs;
+ mNotifyTimeRealUs = ALooper::GetNowUs();
+ }
}
void NuPlayerDriver::notifySeekComplete() {
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
index bf6b3df..49941f8 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
@@ -315,7 +315,7 @@ size_t NuPlayer::Renderer::AudioSinkCallback(
size_t NuPlayer::Renderer::fillAudioBuffer(void *buffer, size_t size) {
Mutex::Autolock autoLock(mLock);
- if (!offloadingAudio()) {
+ if (!offloadingAudio() || mPaused) {
return 0;
}
@@ -887,6 +887,7 @@ void NuPlayer::Renderer::onPause() {
++mAudioQueueGeneration;
++mVideoQueueGeneration;
prepareForMediaRenderingStart();
+ mPaused = true;
}
mDrainAudioQueuePending = false;
@@ -898,8 +899,6 @@ void NuPlayer::Renderer::onPause() {
ALOGV("now paused audio queue has %d entries, video has %d entries",
mAudioQueue.size(), mVideoQueue.size());
-
- mPaused = true;
}
void NuPlayer::Renderer::onResume() {
@@ -911,9 +910,9 @@ void NuPlayer::Renderer::onResume() {
mAudioSink->start();
}
+ Mutex::Autolock autoLock(mLock);
mPaused = false;
- Mutex::Autolock autoLock(mLock);
if (!mAudioQueue.empty()) {
postDrainAudioQueue_l();
}