diff options
| author | Andreas Huber <andih@google.com> | 2012-09-27 14:32:22 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2012-09-27 14:32:22 -0700 |
| commit | d398c2724c8a942961d13245a4669db0555080e4 (patch) | |
| tree | 9cb266a15854ea7fc2af8c4e1e8e38613b84107d /media/libmediaplayerservice | |
| parent | bf5d85e633d5818b47e5fd92d69bec7963fc3d52 (diff) | |
| parent | ecc8db5ee83d648532be1392f53277aa3a25284e (diff) | |
| download | frameworks_av-d398c2724c8a942961d13245a4669db0555080e4.zip frameworks_av-d398c2724c8a942961d13245a4669db0555080e4.tar.gz frameworks_av-d398c2724c8a942961d13245a4669db0555080e4.tar.bz2 | |
am ecc8db5e: Merge "Cleaner Wifi Display shutdown process, avoid crashing HDCP on exit." into jb-mr1-dev
* commit 'ecc8db5ee83d648532be1392f53277aa3a25284e':
Cleaner Wifi Display shutdown process, avoid crashing HDCP on exit.
Diffstat (limited to 'media/libmediaplayerservice')
| -rw-r--r-- | media/libmediaplayerservice/HDCP.cpp | 12 | ||||
| -rw-r--r-- | media/libmediaplayerservice/HDCP.h | 3 |
2 files changed, 15 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/HDCP.cpp b/media/libmediaplayerservice/HDCP.cpp index e7dea6e..09b9719 100644 --- a/media/libmediaplayerservice/HDCP.cpp +++ b/media/libmediaplayerservice/HDCP.cpp @@ -51,6 +51,8 @@ HDCP::HDCP() } HDCP::~HDCP() { + Mutex::Autolock autoLock(mLock); + if (mHDCPModule != NULL) { delete mHDCPModule; mHDCPModule = NULL; @@ -63,6 +65,8 @@ HDCP::~HDCP() { } status_t HDCP::setObserver(const sp<IHDCPObserver> &observer) { + Mutex::Autolock autoLock(mLock); + if (mHDCPModule == NULL) { return NO_INIT; } @@ -73,6 +77,8 @@ status_t HDCP::setObserver(const sp<IHDCPObserver> &observer) { } status_t HDCP::initAsync(const char *host, unsigned port) { + Mutex::Autolock autoLock(mLock); + if (mHDCPModule == NULL) { return NO_INIT; } @@ -81,6 +87,8 @@ status_t HDCP::initAsync(const char *host, unsigned port) { } status_t HDCP::shutdownAsync() { + Mutex::Autolock autoLock(mLock); + if (mHDCPModule == NULL) { return NO_INIT; } @@ -91,6 +99,8 @@ status_t HDCP::shutdownAsync() { status_t HDCP::encrypt( const void *inData, size_t size, uint32_t streamCTR, uint64_t *outInputCTR, void *outData) { + Mutex::Autolock autoLock(mLock); + if (mHDCPModule == NULL) { *outInputCTR = 0; @@ -106,6 +116,8 @@ void HDCP::ObserveWrapper(void *me, int msg, int ext1, int ext2) { } void HDCP::observe(int msg, int ext1, int ext2) { + Mutex::Autolock autoLock(mLock); + if (mObserver != NULL) { mObserver->notify(msg, ext1, ext2, NULL /* obj */); } diff --git a/media/libmediaplayerservice/HDCP.h b/media/libmediaplayerservice/HDCP.h index 4ee664d..b2fc457 100644 --- a/media/libmediaplayerservice/HDCP.h +++ b/media/libmediaplayerservice/HDCP.h @@ -19,6 +19,7 @@ #define HDCP_H_ #include <media/IHDCP.h> +#include <utils/Mutex.h> namespace android { @@ -35,6 +36,8 @@ struct HDCP : public BnHDCP { uint64_t *outInputCTR, void *outData); private: + Mutex mLock; + void *mLibHandle; HDCPModule *mHDCPModule; sp<IHDCPObserver> mObserver; |
