Source release v2.1.2-0-773 + third_party libs
Change-Id: Ia07608577b65b301c22a8ff4bf7f743c2d3f9274
This commit is contained in:
@@ -97,7 +97,7 @@ cdm::Status WvContentDecryptionModule::GenerateKeyRequest(
|
||||
|
||||
std::string security_level;
|
||||
std::string privacy_mode;
|
||||
kVectorBytes service_certificate;
|
||||
VectorBytes service_certificate;
|
||||
|
||||
host_->GetPlatformString("SecurityLevel", &security_level);
|
||||
host_->GetPlatformString("PrivacyOn", &privacy_mode);
|
||||
@@ -353,10 +353,22 @@ cdm::Status WvContentDecryptionModule::DoSubsampleDecrypt(
|
||||
|
||||
CdmSessionId session_id; // it's empty but cdm_engine will locate via key_id.
|
||||
CdmResponseType status = NO_ERROR;
|
||||
uint8_t* output_buffer = decrypted_block
|
||||
? reinterpret_cast<uint8_t*>(
|
||||
decrypted_block->DecryptedBuffer()->Data())
|
||||
: NULL;
|
||||
|
||||
size_t output_size = 0;
|
||||
for (int i = 0; i < encrypted_buffer.num_subsamples; ++i) {
|
||||
const cdm::SubsampleEntry& subsample = encrypted_buffer.subsamples[i];
|
||||
output_size += subsample.cipher_bytes + subsample.clear_bytes;
|
||||
}
|
||||
parameters.decrypt_buffer_length = output_size;
|
||||
|
||||
if (decrypted_block) {
|
||||
cdm::Buffer* buffer = host_->Allocate(output_size);
|
||||
decrypted_block->SetDecryptedBuffer(buffer);
|
||||
parameters.decrypt_buffer = buffer->Data();
|
||||
} else {
|
||||
parameters.decrypt_buffer = NULL;
|
||||
}
|
||||
|
||||
size_t offset = 0;
|
||||
size_t encrypted_offset = 0;
|
||||
uint32_t block_ctr = 0;
|
||||
@@ -377,13 +389,10 @@ cdm::Status WvContentDecryptionModule::DoSubsampleDecrypt(
|
||||
block_ctr = counter;
|
||||
}
|
||||
|
||||
parameters.encrypt_buffer = &encrypted_buffer.data[encrypted_buffer
|
||||
.data_offset + offset];
|
||||
if (output_buffer)
|
||||
parameters.decrypt_buffer = &output_buffer[offset];
|
||||
|
||||
parameters.encrypt_buffer =
|
||||
&encrypted_buffer.data[encrypted_buffer.data_offset + offset];
|
||||
parameters.decrypt_buffer_offset = offset;
|
||||
parameters.encrypt_length = bytes;
|
||||
parameters.decrypt_buffer_length = encrypted_buffer.data_size - offset;
|
||||
parameters.block_offset = encrypted_offset % kIvSize;
|
||||
|
||||
offset += bytes;
|
||||
|
||||
Reference in New Issue
Block a user