Loading drm/mediacas/plugins/clearkey/ClearKeyCasPlugin.cpp +22 −1 Original line number Diff line number Diff line Loading @@ -97,7 +97,8 @@ status_t ClearKeyDescramblerFactory::createPlugin( /////////////////////////////////////////////////////////////////////////////// ClearKeyCasPlugin::ClearKeyCasPlugin( void *appData, CasPluginCallback callback) : mCallback(callback), mCallbackExt(NULL), mAppData(appData) { : mCallback(callback), mCallbackExt(NULL), mStatusCallback(NULL), mAppData(appData) { ALOGV("CTOR"); } Loading @@ -112,6 +113,13 @@ ClearKeyCasPlugin::~ClearKeyCasPlugin() { ClearKeySessionLibrary::get()->destroyPlugin(this); } status_t ClearKeyCasPlugin::setStatusCallback( CasPluginStatusCallback callback) { ALOGV("setStatusCallback"); mStatusCallback = callback; return OK; } status_t ClearKeyCasPlugin::setPrivateData(const CasData &/*data*/) { ALOGV("setPrivateData"); Loading @@ -135,6 +143,19 @@ status_t ClearKeyCasPlugin::openSession(CasSessionId* sessionId) { return ClearKeySessionLibrary::get()->addSession(this, sessionId); } status_t ClearKeyCasPlugin::openSession(uint32_t intent, uint32_t mode, CasSessionId* sessionId) { ALOGV("openSession with intent=%d, mode=%d", intent, mode); // Echo the received information to the callback. // Clear key plugin doesn't use any event, echo'ing for testing only. if (mStatusCallback != NULL) { mStatusCallback((void*)mAppData, intent, mode); } // Clear key plugin doesn't use intent and mode. return ClearKeySessionLibrary::get()->addSession(this, sessionId); } status_t ClearKeyCasPlugin::closeSession(const CasSessionId &sessionId) { ALOGV("closeSession: sessionId=%s", sessionIdToString(sessionId).string()); std::shared_ptr<ClearKeyCasSession> session = Loading drm/mediacas/plugins/clearkey/ClearKeyCasPlugin.h +7 −0 Original line number Diff line number Diff line Loading @@ -71,11 +71,17 @@ public: ClearKeyCasPlugin(void *appData, CasPluginCallbackExt callback); virtual ~ClearKeyCasPlugin(); virtual status_t setStatusCallback( CasPluginStatusCallback callback) override; virtual status_t setPrivateData( const CasData &data) override; virtual status_t openSession(CasSessionId *sessionId) override; virtual status_t openSession(uint32_t intent, uint32_t mode, CasSessionId *sessionId) override; virtual status_t closeSession( const CasSessionId &sessionId) override; Loading Loading @@ -105,6 +111,7 @@ private: std::unique_ptr<KeyFetcher> mKeyFetcher; CasPluginCallback mCallback; CasPluginCallbackExt mCallbackExt; CasPluginStatusCallback mStatusCallback; void* mAppData; }; Loading drm/mediacas/plugins/mock/MockCasPlugin.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -111,6 +111,12 @@ MockCasPlugin::~MockCasPlugin() { MockSessionLibrary::get()->destroyPlugin(this); } status_t MockCasPlugin::setStatusCallback( CasPluginStatusCallback /*callback*/) { ALOGV("setStatusCallback"); return OK; } status_t MockCasPlugin::setPrivateData(const CasData& /*data*/) { ALOGV("setPrivateData"); return OK; Loading @@ -121,6 +127,13 @@ status_t MockCasPlugin::openSession(CasSessionId* sessionId) { return MockSessionLibrary::get()->addSession(this, sessionId); } status_t MockCasPlugin::openSession(uint32_t intent, uint32_t mode, CasSessionId* sessionId) { ALOGV("openSession with intent=%d, mode=%d", intent, mode); // Clear key plugin doesn't use intent and mode. return MockSessionLibrary::get()->addSession(this, sessionId); } status_t MockCasPlugin::closeSession(const CasSessionId &sessionId) { ALOGV("closeSession: sessionId=%s", arrayToString(sessionId).string()); Mutex::Autolock lock(mLock); Loading drm/mediacas/plugins/mock/MockCasPlugin.h +6 −0 Original line number Diff line number Diff line Loading @@ -65,11 +65,17 @@ public: MockCasPlugin(); virtual ~MockCasPlugin(); virtual status_t setStatusCallback( CasPluginStatusCallback callback) override; virtual status_t setPrivateData( const CasData &data) override; virtual status_t openSession(CasSessionId *sessionId) override; virtual status_t openSession(uint32_t intent, uint32_t mode, CasSessionId *sessionId) override; virtual status_t closeSession( const CasSessionId &sessionId) override; Loading media/libstagefright/include/media/stagefright/MediaErrors.h +7 −1 Original line number Diff line number Diff line Loading @@ -99,7 +99,13 @@ enum { ERROR_CAS_DEVICE_REVOKED = CAS_ERROR_BASE - 9, ERROR_CAS_RESOURCE_BUSY = CAS_ERROR_BASE - 10, ERROR_CAS_INSUFFICIENT_OUTPUT_PROTECTION = CAS_ERROR_BASE - 11, ERROR_CAS_LAST_USED_ERRORCODE = CAS_ERROR_BASE - 11, ERROR_CAS_NEED_ACTIVATION = CAS_ERROR_BASE - 12, ERROR_CAS_NEED_PAIRING = CAS_ERROR_BASE - 13, ERROR_CAS_NO_CARD = CAS_ERROR_BASE - 14, ERROR_CAS_CARD_MUTE = CAS_ERROR_BASE - 15, ERROR_CAS_CARD_INVALID = CAS_ERROR_BASE - 16, ERROR_CAS_BLACKOUT = CAS_ERROR_BASE - 17, ERROR_CAS_LAST_USED_ERRORCODE = CAS_ERROR_BASE - 17, ERROR_CAS_VENDOR_MAX = CAS_ERROR_BASE - 500, ERROR_CAS_VENDOR_MIN = CAS_ERROR_BASE - 999, Loading Loading
drm/mediacas/plugins/clearkey/ClearKeyCasPlugin.cpp +22 −1 Original line number Diff line number Diff line Loading @@ -97,7 +97,8 @@ status_t ClearKeyDescramblerFactory::createPlugin( /////////////////////////////////////////////////////////////////////////////// ClearKeyCasPlugin::ClearKeyCasPlugin( void *appData, CasPluginCallback callback) : mCallback(callback), mCallbackExt(NULL), mAppData(appData) { : mCallback(callback), mCallbackExt(NULL), mStatusCallback(NULL), mAppData(appData) { ALOGV("CTOR"); } Loading @@ -112,6 +113,13 @@ ClearKeyCasPlugin::~ClearKeyCasPlugin() { ClearKeySessionLibrary::get()->destroyPlugin(this); } status_t ClearKeyCasPlugin::setStatusCallback( CasPluginStatusCallback callback) { ALOGV("setStatusCallback"); mStatusCallback = callback; return OK; } status_t ClearKeyCasPlugin::setPrivateData(const CasData &/*data*/) { ALOGV("setPrivateData"); Loading @@ -135,6 +143,19 @@ status_t ClearKeyCasPlugin::openSession(CasSessionId* sessionId) { return ClearKeySessionLibrary::get()->addSession(this, sessionId); } status_t ClearKeyCasPlugin::openSession(uint32_t intent, uint32_t mode, CasSessionId* sessionId) { ALOGV("openSession with intent=%d, mode=%d", intent, mode); // Echo the received information to the callback. // Clear key plugin doesn't use any event, echo'ing for testing only. if (mStatusCallback != NULL) { mStatusCallback((void*)mAppData, intent, mode); } // Clear key plugin doesn't use intent and mode. return ClearKeySessionLibrary::get()->addSession(this, sessionId); } status_t ClearKeyCasPlugin::closeSession(const CasSessionId &sessionId) { ALOGV("closeSession: sessionId=%s", sessionIdToString(sessionId).string()); std::shared_ptr<ClearKeyCasSession> session = Loading
drm/mediacas/plugins/clearkey/ClearKeyCasPlugin.h +7 −0 Original line number Diff line number Diff line Loading @@ -71,11 +71,17 @@ public: ClearKeyCasPlugin(void *appData, CasPluginCallbackExt callback); virtual ~ClearKeyCasPlugin(); virtual status_t setStatusCallback( CasPluginStatusCallback callback) override; virtual status_t setPrivateData( const CasData &data) override; virtual status_t openSession(CasSessionId *sessionId) override; virtual status_t openSession(uint32_t intent, uint32_t mode, CasSessionId *sessionId) override; virtual status_t closeSession( const CasSessionId &sessionId) override; Loading Loading @@ -105,6 +111,7 @@ private: std::unique_ptr<KeyFetcher> mKeyFetcher; CasPluginCallback mCallback; CasPluginCallbackExt mCallbackExt; CasPluginStatusCallback mStatusCallback; void* mAppData; }; Loading
drm/mediacas/plugins/mock/MockCasPlugin.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -111,6 +111,12 @@ MockCasPlugin::~MockCasPlugin() { MockSessionLibrary::get()->destroyPlugin(this); } status_t MockCasPlugin::setStatusCallback( CasPluginStatusCallback /*callback*/) { ALOGV("setStatusCallback"); return OK; } status_t MockCasPlugin::setPrivateData(const CasData& /*data*/) { ALOGV("setPrivateData"); return OK; Loading @@ -121,6 +127,13 @@ status_t MockCasPlugin::openSession(CasSessionId* sessionId) { return MockSessionLibrary::get()->addSession(this, sessionId); } status_t MockCasPlugin::openSession(uint32_t intent, uint32_t mode, CasSessionId* sessionId) { ALOGV("openSession with intent=%d, mode=%d", intent, mode); // Clear key plugin doesn't use intent and mode. return MockSessionLibrary::get()->addSession(this, sessionId); } status_t MockCasPlugin::closeSession(const CasSessionId &sessionId) { ALOGV("closeSession: sessionId=%s", arrayToString(sessionId).string()); Mutex::Autolock lock(mLock); Loading
drm/mediacas/plugins/mock/MockCasPlugin.h +6 −0 Original line number Diff line number Diff line Loading @@ -65,11 +65,17 @@ public: MockCasPlugin(); virtual ~MockCasPlugin(); virtual status_t setStatusCallback( CasPluginStatusCallback callback) override; virtual status_t setPrivateData( const CasData &data) override; virtual status_t openSession(CasSessionId *sessionId) override; virtual status_t openSession(uint32_t intent, uint32_t mode, CasSessionId *sessionId) override; virtual status_t closeSession( const CasSessionId &sessionId) override; Loading
media/libstagefright/include/media/stagefright/MediaErrors.h +7 −1 Original line number Diff line number Diff line Loading @@ -99,7 +99,13 @@ enum { ERROR_CAS_DEVICE_REVOKED = CAS_ERROR_BASE - 9, ERROR_CAS_RESOURCE_BUSY = CAS_ERROR_BASE - 10, ERROR_CAS_INSUFFICIENT_OUTPUT_PROTECTION = CAS_ERROR_BASE - 11, ERROR_CAS_LAST_USED_ERRORCODE = CAS_ERROR_BASE - 11, ERROR_CAS_NEED_ACTIVATION = CAS_ERROR_BASE - 12, ERROR_CAS_NEED_PAIRING = CAS_ERROR_BASE - 13, ERROR_CAS_NO_CARD = CAS_ERROR_BASE - 14, ERROR_CAS_CARD_MUTE = CAS_ERROR_BASE - 15, ERROR_CAS_CARD_INVALID = CAS_ERROR_BASE - 16, ERROR_CAS_BLACKOUT = CAS_ERROR_BASE - 17, ERROR_CAS_LAST_USED_ERRORCODE = CAS_ERROR_BASE - 17, ERROR_CAS_VENDOR_MAX = CAS_ERROR_BASE - 500, ERROR_CAS_VENDOR_MIN = CAS_ERROR_BASE - 999, Loading