From a6f1104b9d829c636b60b9387e379f9667b5df09 Mon Sep 17 00:00:00 2001 From: Gloria Wang Date: Fri, 20 May 2011 10:15:21 -0700 Subject: [PATCH] Use pread() to get the decrypted data for container based DRM file. For bug 4392094. Change-Id: Icc64a26c5b413313cc35dcd02d60484dc8245dfb --- media/libstagefright/NuHTTPDataSource.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/media/libstagefright/NuHTTPDataSource.cpp b/media/libstagefright/NuHTTPDataSource.cpp index 62fb732569874..dd29c8485d7e7 100644 --- a/media/libstagefright/NuHTTPDataSource.cpp +++ b/media/libstagefright/NuHTTPDataSource.cpp @@ -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;