Merge "MediaCodec: don't crash on concurrent release/allocate" into qt-dev
diff --git a/media/libstagefright/MediaCodec.cpp b/media/libstagefright/MediaCodec.cpp
index b6b7784..a7d37e5 100644
--- a/media/libstagefright/MediaCodec.cpp
+++ b/media/libstagefright/MediaCodec.cpp
@@ -1934,6 +1934,13 @@
case kWhatComponentAllocated:
{
+ if (mState == RELEASING || mState == UNINITIALIZED) {
+ // In case a kWhatError or kWhatRelease message came in and replied,
+ // we log a warning and ignore.
+ ALOGW("allocate interrupted by error or release, current state %d",
+ mState);
+ break;
+ }
CHECK_EQ(mState, INITIALIZING);
setState(INITIALIZED);
mFlags |= kFlagIsComponentAllocated;