summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/FileSource.cpp
diff options
context:
space:
mode:
authorGloria Wang <gwang@google.com>2011-02-08 11:16:27 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-02-08 11:16:27 -0800
commitb93d55d9f6e154629d47270970e0a0ace5a1b0a0 (patch)
tree4688ebaf105f5b3d211650b1b39a0bb32de2b769 /media/libstagefright/FileSource.cpp
parent8473bb556421ac08f4e03abd5d149852114c9238 (diff)
parent889b340ec736a9d3e3e690256d305cc8740f0c4b (diff)
downloadframeworks_av-b93d55d9f6e154629d47270970e0a0ace5a1b0a0.zip
frameworks_av-b93d55d9f6e154629d47270970e0a0ace5a1b0a0.tar.gz
frameworks_av-b93d55d9f6e154629d47270970e0a0ace5a1b0a0.tar.bz2
Merge "- Do not use global DrmManagerClient - Release the DrmManagerClient and DecryptHandle in DataSource Fix for bug 3429811"
Diffstat (limited to 'media/libstagefright/FileSource.cpp')
-rw-r--r--media/libstagefright/FileSource.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/media/libstagefright/FileSource.cpp b/media/libstagefright/FileSource.cpp
index 98d5b50..b8e75fd 100644
--- a/media/libstagefright/FileSource.cpp
+++ b/media/libstagefright/FileSource.cpp
@@ -60,6 +60,17 @@ FileSource::~FileSource() {
delete[] mDrmBuf;
mDrmBuf = NULL;
}
+
+ if (mDecryptHandle != NULL) {
+ // To release mDecryptHandle
+ mDrmManagerClient->closeDecryptSession(mDecryptHandle);
+ mDecryptHandle = NULL;
+ }
+
+ if (mDrmManagerClient != NULL) {
+ delete mDrmManagerClient;
+ mDrmManagerClient = NULL;
+ }
}
status_t FileSource::initCheck() const {
@@ -113,11 +124,14 @@ status_t FileSource::getSize(off64_t *size) {
return OK;
}
-DecryptHandle* FileSource::DrmInitialization(DrmManagerClient* client) {
- if (client == NULL) {
+DecryptHandle* FileSource::DrmInitialization() {
+ if (mDrmManagerClient == NULL) {
+ mDrmManagerClient = new DrmManagerClient();
+ }
+
+ if (mDrmManagerClient == NULL) {
return NULL;
}
- mDrmManagerClient = client;
if (mDecryptHandle == NULL) {
mDecryptHandle = mDrmManagerClient->openDecryptSession(
@@ -125,6 +139,7 @@ DecryptHandle* FileSource::DrmInitialization(DrmManagerClient* client) {
}
if (mDecryptHandle == NULL) {
+ delete mDrmManagerClient;
mDrmManagerClient = NULL;
}