OSDN Git Service

Use pread() to get the decrypted data for container based DRM file.
authorGloria Wang <gwang@google.com>
Fri, 20 May 2011 17:15:21 +0000 (10:15 -0700)
committerGloria Wang <gwang@google.com>
Fri, 20 May 2011 17:15:21 +0000 (10:15 -0700)
For bug 4392094.

Change-Id: Icc64a26c5b413313cc35dcd02d60484dc8245dfb

media/libstagefright/NuHTTPDataSource.cpp

index 62fb732..dd29c84 100644 (file)
@@ -383,6 +383,13 @@ ssize_t NuHTTPDataSource::readAt(off64_t offset, void *data, size_t size) {
 
     Mutex::Autolock autoLock(mLock);
 
+    // if it's a DRM container based streaming, call pread() of the DRM plugin
+    // to get the decrypted data
+    if (mDecryptHandle != NULL && DecryptApiType::CONTAINER_BASED
+            == mDecryptHandle->decryptApiType) {
+        return mDrmManagerClient->pread(mDecryptHandle, data, size, offset);
+    }
+
     if (offset != mOffset) {
         String8 host = mHost;
         String8 path = mPath;