diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-09-25 23:53:41 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-09-25 23:53:41 +0000 |
commit | bc8ac069774467ca6789bb93df3f236b09790f06 (patch) | |
tree | 94c83f569599ded4a35cfc03a99a632fb6647181 | |
parent | 8051a196acbd5271961c351843483741b3062cf0 (diff) | |
parent | 5db434f877c33c351aef1bd391210815628ba6fb (diff) | |
download | av-android13-d1-release.tar.gz |
Merge cherrypicks of [19008482, 20001918] into tm-d1-release.android-13.0.0_r15android-13.0.0_r14android-13.0.0_r13android13-d1-s3-releaseandroid13-d1-release
Change-Id: Id62833a7dfb661b6a7892490eb59f4a435600c30
-rw-r--r-- | drm/mediadrm/plugins/clearkey/hidl/DrmPlugin.cpp | 2 | ||||
-rw-r--r-- | drm/mediadrm/plugins/clearkey/hidl/include/DrmPlugin.h | 4 | ||||
-rw-r--r-- | media/libstagefright/FrameDecoder.cpp | 13 |
3 files changed, 13 insertions, 6 deletions
diff --git a/drm/mediadrm/plugins/clearkey/hidl/DrmPlugin.cpp b/drm/mediadrm/plugins/clearkey/hidl/DrmPlugin.cpp index 32d7723715..e04dd7ef44 100644 --- a/drm/mediadrm/plugins/clearkey/hidl/DrmPlugin.cpp +++ b/drm/mediadrm/plugins/clearkey/hidl/DrmPlugin.cpp @@ -619,6 +619,7 @@ Return<void> DrmPlugin::getSecurityLevel(const hidl_vec<uint8_t>& sessionId, return Void(); } + Mutex::Autolock lock(mSecurityLevelLock); std::map<std::vector<uint8_t>, SecurityLevel>::iterator itr = mSecurityLevel.find(sid); if (itr == mSecurityLevel.end()) { @@ -691,6 +692,7 @@ Return<Status> DrmPlugin::setSecurityLevel(const hidl_vec<uint8_t>& sessionId, return Status::ERROR_DRM_SESSION_NOT_OPENED; } + Mutex::Autolock lock(mSecurityLevelLock); std::map<std::vector<uint8_t>, SecurityLevel>::iterator itr = mSecurityLevel.find(sid); if (itr != mSecurityLevel.end()) { diff --git a/drm/mediadrm/plugins/clearkey/hidl/include/DrmPlugin.h b/drm/mediadrm/plugins/clearkey/hidl/include/DrmPlugin.h index cb5c9fe5c1..10195202aa 100644 --- a/drm/mediadrm/plugins/clearkey/hidl/include/DrmPlugin.h +++ b/drm/mediadrm/plugins/clearkey/hidl/include/DrmPlugin.h @@ -414,7 +414,8 @@ private: std::map<std::string, std::vector<uint8_t> > mByteArrayProperties; std::map<std::string, std::vector<uint8_t> > mReleaseKeysMap; std::map<std::vector<uint8_t>, std::string> mPlaybackId; - std::map<std::vector<uint8_t>, SecurityLevel> mSecurityLevel; + std::map<std::vector<uint8_t>, SecurityLevel> mSecurityLevel + GUARDED_BY(mSecurityLevelLock); sp<IDrmPluginListener> mListener; sp<IDrmPluginListener_V1_2> mListenerV1_2; SessionLibrary *mSessionLibrary; @@ -434,6 +435,7 @@ private: DeviceFiles mFileHandle; Mutex mSecureStopLock; + Mutex mSecurityLevelLock; CLEARKEY_DISALLOW_COPY_AND_ASSIGN_AND_NEW(DrmPlugin); }; diff --git a/media/libstagefright/FrameDecoder.cpp b/media/libstagefright/FrameDecoder.cpp index 3df8766cfb..344456c757 100644 --- a/media/libstagefright/FrameDecoder.cpp +++ b/media/libstagefright/FrameDecoder.cpp @@ -86,11 +86,14 @@ sp<IMemory> allocVideoFrame(const sp<MetaData>& trackMeta, displayHeight = height; } - if (allocRotated && (rotationAngle == 90 || rotationAngle == 270)) { - int32_t tmp; - tmp = width; width = height; height = tmp; - tmp = displayWidth; displayWidth = displayHeight; displayHeight = tmp; - tmp = tileWidth; tileWidth = tileHeight; tileHeight = tmp; + if (allocRotated) { + if (rotationAngle == 90 || rotationAngle == 270) { + // swap width and height for 90 & 270 degrees rotation + std::swap(width, height); + std::swap(displayWidth, displayHeight); + std::swap(tileWidth, tileHeight); + } + // Rotation is already applied. rotationAngle = 0; } |