Modular DRM for MediaPlayer/Race at stop/releaseDrm
Bug: 34559906
Bug: 37960096
Test: GTS LLAMA_H264_XX_V0_SYNC (1000 rounds)
Change-Id: I8576fb9dadf8922c2a54f2ea9e199d2e07c1820e
diff --git a/media/libmediaplayerservice/nuplayer/GenericSource.h b/media/libmediaplayerservice/nuplayer/GenericSource.h
index 64f21a6..b0c6695 100644
--- a/media/libmediaplayerservice/nuplayer/GenericSource.h
+++ b/media/libmediaplayerservice/nuplayer/GenericSource.h
@@ -91,6 +91,8 @@
virtual status_t prepareDrm(
const uint8_t uuid[16], const Vector<uint8_t> &drmSessionId, sp<ICrypto> *crypto);
+ virtual status_t releaseDrm();
+
protected:
virtual ~GenericSource();
@@ -119,6 +121,7 @@
kWhatSecureDecodersInstantiated,
// Modular DRM
kWhatPrepareDrm,
+ kWhatReleaseDrm,
};
struct Track {
@@ -308,10 +311,12 @@
// Modular DRM
bool mIsDrmProtected;
+ bool mIsDrmReleased;
Vector<String8> mMimes;
status_t checkDrmInfo();
status_t onPrepareDrm(const sp<AMessage> &msg);
+ status_t onReleaseDrm();
DISALLOW_EVIL_CONSTRUCTORS(GenericSource);
};