Fix getSecureStop returns zero opaque data intermittently.
Merge from http://go/wvgerrit/69603 In getSecureStop, the life of cdmStop will expire when leaving the if (isCmdResponseTypeSuccess()) scope. Since setToExternal() which is called by toHidlVec() only performs a pointer assignment, the content of cdmStop is lost and secureStop.opaqueData will have all zeros. Test: netflix streaming and offline playback Test: Play Movies & TV Test: GTS test -m GtsMediaTestCases --test com.google.android.media.gts.MediaDrmTest#testWidevineApi28 Test: GTS test -m GtsMediaTestCases bug: 120624463 Change-Id: I8da473d5fd06d091980eade4b7216856ef097e04
This commit is contained in:
@@ -672,7 +672,9 @@ Return<void> WVDrmPlugin::getSecureStop(
|
||||
_hidl_cb(Status::BAD_VALUE, SecureStop());
|
||||
return Void();
|
||||
}
|
||||
|
||||
const std::vector<uint8_t> id = toVector(secureStopId);
|
||||
std::vector<uint8_t> cdmStopVec;
|
||||
SecureStop secureStop;
|
||||
|
||||
CdmIdentifier identifier;
|
||||
@@ -688,7 +690,6 @@ Return<void> WVDrmPlugin::getSecureStop(
|
||||
mPropertySet.app_id(), cdmSsId, identifier, &cdmUsageInfo);
|
||||
|
||||
if (isCdmResponseTypeSuccess(res)) {
|
||||
std::vector<uint8_t> cdmStopVec;
|
||||
for (CdmUsageInfo::const_iterator iter = cdmUsageInfo.begin();
|
||||
iter != cdmUsageInfo.end();
|
||||
++iter) {
|
||||
|
||||
Reference in New Issue
Block a user