GenericSource: restore mLock state in error cases
initFromDataSource and onPrepareAsync are called with mLock acquired.
When initFromDataSource returns with error, notifyPreparedAndCleanup
will be called and it requires mLock acquired.
Test: cts
Bug: 122564587
Change-Id: I430dbc5f1f30c06223ea22438282bd388174f7df
diff --git a/media/libmediaplayerservice/nuplayer/GenericSource.cpp b/media/libmediaplayerservice/nuplayer/GenericSource.cpp
index 831a012..0807896 100644
--- a/media/libmediaplayerservice/nuplayer/GenericSource.cpp
+++ b/media/libmediaplayerservice/nuplayer/GenericSource.cpp
@@ -171,6 +171,7 @@
if (extractor == NULL) {
ALOGE("initFromDataSource, cannot create extractor!");
+ mLock.lock();
return UNKNOWN_ERROR;
}
@@ -179,6 +180,7 @@
size_t numtracks = extractor->countTracks();
if (numtracks == 0) {
ALOGE("initFromDataSource, source has no track!");
+ mLock.lock();
return UNKNOWN_ERROR;
}