am d179bd67: (-s ours) Merge "DO NOT MERGE - NuPlayer: invalid anchor time when render is flushed."
* commit 'd179bd6779bf0ff5614c5c58de36f989b4b58d04':
DO NOT MERGE - NuPlayer: invalid anchor time when render is flushed.
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
index 4bff90f..ab46074 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
@@ -316,13 +316,6 @@
}
status_t NuPlayerDriver::pause() {
- // The NuPlayerRenderer may get flushed if pause for long enough, e.g. the pause timeout tear
- // down for audio offload mode. If that happens, the NuPlayerRenderer will no longer know the
- // current position. So similar to seekTo, update |mPositionUs| to the pause position by calling
- // getCurrentPosition here.
- int msec;
- getCurrentPosition(&msec);
-
Mutex::Autolock autoLock(mLock);
switch (mState) {
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
index b5577c4..638d9bc 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp
@@ -1012,7 +1012,6 @@
Mutex::Autolock autoLock(mLock);
syncQueuesDone_l();
setPauseStartedTimeRealUs(-1);
- setAnchorTime(-1, -1);
}
ALOGV("flushing %s", audio ? "audio" : "video");
diff --git a/services/audiopolicy/AudioPolicyManager.cpp b/services/audiopolicy/AudioPolicyManager.cpp
index 3e1506d..536987a 100644
--- a/services/audiopolicy/AudioPolicyManager.cpp
+++ b/services/audiopolicy/AudioPolicyManager.cpp
@@ -2561,10 +2561,13 @@
void AudioPolicyManager::clearAudioPatches(uid_t uid)
{
- for (ssize_t i = (ssize_t)mAudioPatches.size() - 1; i >= 0; i--) {
+ for (ssize_t i = 0; i < (ssize_t)mAudioPatches.size(); i++) {
sp<AudioPatch> patchDesc = mAudioPatches.valueAt(i);
if (patchDesc->mUid == uid) {
- releaseAudioPatch(mAudioPatches.keyAt(i), uid);
+ // releaseAudioPatch() removes the patch from mAudioPatches
+ if (releaseAudioPatch(mAudioPatches.keyAt(i), uid) == NO_ERROR) {
+ i--;
+ }
}
}
}