Fix for the occasional prepareDrm/releaseDrm deadlock
Bug: 36023772
Test: Manual through GTS tests
Change-Id: Id2e8e5390231aa27e8f9a66613c2be6ce86e23a0
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
index 3b2a8a1..19c4d85 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
@@ -49,6 +49,7 @@
mSeekInProgress(false),
mPlayingTimeUs(0),
mLooper(new ALooper),
+ mPlayer(new NuPlayer(pid)),
mPlayerFlags(0),
mAnalyticsItem(NULL),
mAtEOS(false),
@@ -66,7 +67,6 @@
true, /* canCallJava */
PRIORITY_AUDIO);
- mPlayer = new NuPlayer(pid);
mLooper->registerHandler(mPlayer);
mPlayer->setDriver(this);
@@ -998,8 +998,6 @@
{
ALOGV("prepareDrm(%p) state: %d", this, mState);
- Mutex::Autolock autoLock(mLock);
-
// leaving the state verification for mediaplayer.cpp
status_t ret = mPlayer->prepareDrm(uuid, drmSessionId);
@@ -1012,8 +1010,6 @@
{
ALOGV("releaseDrm(%p) state: %d", this, mState);
- Mutex::Autolock autoLock(mLock);
-
// leaving the state verification for mediaplayer.cpp
status_t ret = mPlayer->releaseDrm();