From 7e892180f3992c088dc0d44f0b0e54ace4dabe3c Mon Sep 17 00:00:00 2001 From: Chong Zhang Date: Tue, 5 Aug 2014 11:58:21 -0700 Subject: set secure flag for secure file playback Bug: 16786456 Change-Id: I06f18b0e9c3f65e3e127369baa1f9ea8c9307762 --- media/libmediaplayerservice/nuplayer/GenericSource.cpp | 13 ++++++++++++- media/libmediaplayerservice/nuplayer/NuPlayer.cpp | 4 +++- 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'media') diff --git a/media/libmediaplayerservice/nuplayer/GenericSource.cpp b/media/libmediaplayerservice/nuplayer/GenericSource.cpp index a3e84df..32842bb 100644 --- a/media/libmediaplayerservice/nuplayer/GenericSource.cpp +++ b/media/libmediaplayerservice/nuplayer/GenericSource.cpp @@ -14,6 +14,9 @@ * limitations under the License. */ +//#define LOG_NDEBUG 0 +#define LOG_TAG "GenericSource" + #include "GenericSource.h" #include "AnotherPacketSource.h" @@ -65,7 +68,9 @@ NuPlayer::GenericSource::GenericSource( mFetchTimedTextDataGeneration(0), mDurationUs(0ll), mAudioIsVorbis(false), - mIsWidevine(false) { + mIsWidevine(false), + mUIDValid(false), + mUID(0) { DataSource::RegisterDefaultSniffers(); sp dataSource = new FileSource(dup(fd), offset, length); @@ -134,6 +139,12 @@ void NuPlayer::GenericSource::initFromDataSource( if (mVideoTrack.mSource == NULL) { mVideoTrack.mIndex = i; mVideoTrack.mSource = track; + + // check if the source requires secure buffers + int32_t secure; + if (meta->findInt32(kKeyRequiresSecureBuffers, &secure) && secure) { + mIsWidevine = true; + } } } diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp index 58d0138..71857c3 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp @@ -227,7 +227,9 @@ void NuPlayer::setDataSourceAsync( } else if ((!strncasecmp(url, "widevine://", 11))) { source = new GenericSource(notify, httpService, url, headers, true /* isWidevine */, mUIDValid, mUID); - mSourceFlags |= Source::FLAG_SECURE; + // Don't set FLAG_SECURE on mSourceFlags here, the correct flags + // will be updated in Source::kWhatFlagsChanged handler when + // GenericSource is prepared. } else { source = new GenericSource(notify, httpService, url, headers); } -- cgit v1.1