Modular DRM for MediaPlayer: L3 playback fails at OMX mmap; preparDrm preparing
Bug: 34559906
Bug: 38390836
Bug: 38039230
Bug: 62194380
Test: GTS Tests
Change-Id: I51e2479f745a4c3e271628abdd79efcb97368ec2
diff --git a/media/libmediaplayerservice/nuplayer/GenericSource.cpp b/media/libmediaplayerservice/nuplayer/GenericSource.cpp
index 00a1f9c..d83c406 100644
--- a/media/libmediaplayerservice/nuplayer/GenericSource.cpp
+++ b/media/libmediaplayerservice/nuplayer/GenericSource.cpp
@@ -1979,7 +1979,8 @@
// The legacy mDecryptHandle!=NULL check (for FLAG_PROTECTED) is equivalent to mIsDrmProtected.
notifyFlagsChanged(
(mIsSecure ? FLAG_SECURE : 0) |
- (mIsDrmProtected ? FLAG_PROTECTED : 0) |
+ // Setting "protected screen" only for L1: b/38390836
+ (mIsSecure ? FLAG_PROTECTED : 0) |
FLAG_CAN_PAUSE |
FLAG_CAN_SEEK_BACKWARD |
FLAG_CAN_SEEK_FORWARD |
diff --git a/media/libmediaplayerservice/nuplayer/GenericSource.h b/media/libmediaplayerservice/nuplayer/GenericSource.h
index b0c6695..4064133 100644
--- a/media/libmediaplayerservice/nuplayer/GenericSource.h
+++ b/media/libmediaplayerservice/nuplayer/GenericSource.h
@@ -222,6 +222,7 @@
int32_t mFetchTimedTextDataGeneration;
int64_t mDurationUs;
bool mAudioIsVorbis;
+ // Secure codec is required.
bool mIsSecure;
bool mIsStreaming;
bool mUIDValid;
@@ -310,7 +311,9 @@
bool seeking, bool formatChange, media_track_type trackType, Track *track);
// Modular DRM
+ // The source is DRM protected and is prepared for DRM.
bool mIsDrmProtected;
+ // releaseDrm has been processed.
bool mIsDrmReleased;
Vector<String8> mMimes;
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerSource.h b/media/libmediaplayerservice/nuplayer/NuPlayerSource.h
index e7cca27..8ba9c0d 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerSource.h
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerSource.h
@@ -38,8 +38,8 @@
FLAG_CAN_SEEK_FORWARD = 4, // the "10 sec forward button"
FLAG_CAN_SEEK = 8, // the "seek bar"
FLAG_DYNAMIC_DURATION = 16,
- FLAG_SECURE = 32,
- FLAG_PROTECTED = 64,
+ FLAG_SECURE = 32, // Secure codec is required.
+ FLAG_PROTECTED = 64, // The screen needs to be protected (screenshot is disabled).
};
enum {