| Index: content/renderer/pepper/content_decryptor_delegate.cc
|
| diff --git a/content/renderer/pepper/content_decryptor_delegate.cc b/content/renderer/pepper/content_decryptor_delegate.cc
|
| index e8dc612953d2b1ae9ff368e67c5098775faed1f9..0cf812d6939f39beddfc7e4423ec2f1534ed7b51 100644
|
| --- a/content/renderer/pepper/content_decryptor_delegate.cc
|
| +++ b/content/renderer/pepper/content_decryptor_delegate.cc
|
| @@ -8,6 +8,7 @@
|
| #include "base/message_loop/message_loop_proxy.h"
|
| #include "base/metrics/sparse_histogram.h"
|
| #include "base/numerics/safe_conversions.h"
|
| +#include "base/stl_util.h"
|
| #include "base/trace_event/trace_event.h"
|
| #include "content/renderer/pepper/ppb_buffer_impl.h"
|
| #include "media/base/audio_buffer.h"
|
| @@ -53,7 +54,7 @@ namespace {
|
| // reference-count of 0. If |data| is NULL, sets |*resource| to NULL. Returns
|
| // true upon success and false if any error happened.
|
| bool MakeBufferResource(PP_Instance instance,
|
| - const uint8* data,
|
| + const uint8_t* data,
|
| uint32_t size,
|
| scoped_refptr<PPB_Buffer_Impl>* resource) {
|
| TRACE_EVENT0("media", "ContentDecryptorDelegate - MakeBufferResource");
|
| @@ -83,7 +84,7 @@ bool MakeBufferResource(PP_Instance instance,
|
| // Returns true if copy succeeded. Returns false if copy failed, e.g. if the
|
| // |array_size| is smaller than the |str| length.
|
| template <uint32_t array_size>
|
| -bool CopyStringToArray(const std::string& str, uint8 (&array)[array_size]) {
|
| +bool CopyStringToArray(const std::string& str, uint8_t(&array)[array_size]) {
|
| if (array_size < str.size())
|
| return false;
|
|
|
| @@ -345,7 +346,7 @@ MediaKeys::MessageType PpCdmMessageTypeToMediaMessageType(
|
|
|
| // TODO(xhwang): Unify EME UMA reporting code when prefixed EME is deprecated.
|
| // See http://crbug.com/412987 for details.
|
| -void ReportSystemCodeUMA(const std::string& key_system, uint32 system_code) {
|
| +void ReportSystemCodeUMA(const std::string& key_system, uint32_t system_code) {
|
| // Sparse histogram macro does not cache the histogram, so it's safe to use
|
| // macro with non-static histogram name here.
|
| UMA_HISTOGRAM_SPARSE_SLOWLY(
|
| @@ -405,12 +406,10 @@ void ContentDecryptorDelegate::InstanceCrashed() {
|
| }
|
|
|
| void ContentDecryptorDelegate::SetServerCertificate(
|
| - const uint8_t* certificate,
|
| - uint32_t certificate_length,
|
| + const std::vector<uint8_t>& certificate,
|
| scoped_ptr<media::SimpleCdmPromise> promise) {
|
| - if (!certificate ||
|
| - certificate_length < media::limits::kMinCertificateLength ||
|
| - certificate_length > media::limits::kMaxCertificateLength) {
|
| + if (certificate.size() < media::limits::kMinCertificateLength ||
|
| + certificate.size() > media::limits::kMaxCertificateLength) {
|
| promise->reject(
|
| media::MediaKeys::INVALID_ACCESS_ERROR, 0, "Incorrect certificate.");
|
| return;
|
| @@ -419,7 +418,8 @@ void ContentDecryptorDelegate::SetServerCertificate(
|
| uint32_t promise_id = cdm_promise_adapter_.SavePromise(promise.Pass());
|
| PP_Var certificate_array =
|
| PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(
|
| - certificate_length, certificate);
|
| + base::checked_cast<uint32>(certificate.size()),
|
| + vector_as_array(&certificate));
|
| plugin_decryption_interface_->SetServerCertificate(
|
| pp_instance_, promise_id, certificate_array);
|
| }
|
| @@ -427,13 +427,13 @@ void ContentDecryptorDelegate::SetServerCertificate(
|
| void ContentDecryptorDelegate::CreateSessionAndGenerateRequest(
|
| MediaKeys::SessionType session_type,
|
| media::EmeInitDataType init_data_type,
|
| - const uint8* init_data,
|
| - int init_data_length,
|
| + const std::vector<uint8_t>& init_data,
|
| scoped_ptr<NewSessionCdmPromise> promise) {
|
| uint32_t promise_id = cdm_promise_adapter_.SavePromise(promise.Pass());
|
| PP_Var init_data_array =
|
| PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(
|
| - init_data_length, init_data);
|
| + base::checked_cast<uint32>(init_data.size()),
|
| + vector_as_array(&init_data));
|
| plugin_decryption_interface_->CreateSessionAndGenerateRequest(
|
| pp_instance_, promise_id, MediaSessionTypeToPpSessionType(session_type),
|
| MediaInitDataTypeToPpInitDataType(init_data_type), init_data_array);
|
| @@ -451,13 +451,13 @@ void ContentDecryptorDelegate::LoadSession(
|
|
|
| void ContentDecryptorDelegate::UpdateSession(
|
| const std::string& session_id,
|
| - const uint8* response,
|
| - int response_length,
|
| + const std::vector<uint8_t>& response,
|
| scoped_ptr<SimpleCdmPromise> promise) {
|
| uint32_t promise_id = cdm_promise_adapter_.SavePromise(promise.Pass());
|
| PP_Var response_array =
|
| PpapiGlobals::Get()->GetVarTracker()->MakeArrayBufferPPVar(
|
| - response_length, response);
|
| + base::checked_cast<uint32>(response.size()),
|
| + vector_as_array(&response));
|
| plugin_decryption_interface_->UpdateSession(
|
| pp_instance_, promise_id, StringVar::StringToPPVar(session_id),
|
| response_array);
|
| @@ -734,11 +734,11 @@ bool ContentDecryptorDelegate::DecryptAndDecodeVideo(
|
| return true;
|
| }
|
|
|
| -void ContentDecryptorDelegate::OnPromiseResolved(uint32 promise_id) {
|
| +void ContentDecryptorDelegate::OnPromiseResolved(uint32_t promise_id) {
|
| cdm_promise_adapter_.ResolvePromise(promise_id);
|
| }
|
|
|
| -void ContentDecryptorDelegate::OnPromiseResolvedWithSession(uint32 promise_id,
|
| +void ContentDecryptorDelegate::OnPromiseResolvedWithSession(uint32_t promise_id,
|
| PP_Var session_id) {
|
| StringVar* session_id_string = StringVar::FromPPVar(session_id);
|
| DCHECK(session_id_string);
|
| @@ -746,9 +746,9 @@ void ContentDecryptorDelegate::OnPromiseResolvedWithSession(uint32 promise_id,
|
| }
|
|
|
| void ContentDecryptorDelegate::OnPromiseRejected(
|
| - uint32 promise_id,
|
| + uint32_t promise_id,
|
| PP_CdmExceptionCode exception_code,
|
| - uint32 system_code,
|
| + uint32_t system_code,
|
| PP_Var error_description) {
|
| ReportSystemCodeUMA(key_system_, system_code);
|
|
|
| @@ -770,9 +770,10 @@ void ContentDecryptorDelegate::OnSessionMessage(PP_Var session_id,
|
| DCHECK(session_id_string);
|
|
|
| ArrayBufferVar* message_array_buffer = ArrayBufferVar::FromPPVar(message);
|
| - std::vector<uint8> message_vector;
|
| + std::vector<uint8_t> message_vector;
|
| if (message_array_buffer) {
|
| - const uint8* data = static_cast<const uint8*>(message_array_buffer->Map());
|
| + const uint8_t* data =
|
| + static_cast<const uint8_t*>(message_array_buffer->Map());
|
| message_vector.assign(data, data + message_array_buffer->ByteLength());
|
| }
|
|
|
| @@ -849,7 +850,7 @@ void ContentDecryptorDelegate::OnSessionClosed(PP_Var session_id) {
|
| void ContentDecryptorDelegate::OnLegacySessionError(
|
| PP_Var session_id,
|
| PP_CdmExceptionCode exception_code,
|
| - uint32 system_code,
|
| + uint32_t system_code,
|
| PP_Var error_description) {
|
| ReportSystemCodeUMA(key_system_, system_code);
|
|
|
| @@ -949,7 +950,7 @@ void ContentDecryptorDelegate::DeliverBlock(
|
| // TODO(tomfinegan): Find a way to take ownership of the shared memory
|
| // managed by the PPB_Buffer_Dev, and avoid the extra copy.
|
| scoped_refptr<media::DecoderBuffer> decrypted_buffer(
|
| - media::DecoderBuffer::CopyFrom(static_cast<uint8*>(mapper.data()),
|
| + media::DecoderBuffer::CopyFrom(static_cast<uint8_t*>(mapper.data()),
|
| block_info->data_size));
|
| decrypted_buffer->set_timestamp(
|
| base::TimeDelta::FromMicroseconds(block_info->tracking_info.timestamp));
|
| @@ -968,13 +969,13 @@ static void BufferNoLongerNeeded(
|
|
|
| // Enters |resource|, maps shared memory and returns pointer of mapped data.
|
| // Returns NULL if any error occurs.
|
| -static uint8* GetMappedBuffer(PP_Resource resource,
|
| - scoped_refptr<PPB_Buffer_Impl>* ppb_buffer) {
|
| +static uint8_t* GetMappedBuffer(PP_Resource resource,
|
| + scoped_refptr<PPB_Buffer_Impl>* ppb_buffer) {
|
| EnterResourceNoLock<PPB_Buffer_API> enter(resource, true);
|
| if (!enter.succeeded())
|
| return NULL;
|
|
|
| - uint8* mapped_data = static_cast<uint8*>(enter.object()->Map());
|
| + uint8_t* mapped_data = static_cast<uint8_t*>(enter.object()->Map());
|
| if (!enter.object()->IsMapped() || !mapped_data)
|
| return NULL;
|
|
|
| @@ -1018,7 +1019,7 @@ void ContentDecryptorDelegate::DeliverFrame(
|
| }
|
|
|
| scoped_refptr<PPB_Buffer_Impl> ppb_buffer;
|
| - uint8* frame_data = GetMappedBuffer(decrypted_frame, &ppb_buffer);
|
| + uint8_t* frame_data = GetMappedBuffer(decrypted_frame, &ppb_buffer);
|
| if (!frame_data) {
|
| FreeBuffer(frame_info->tracking_info.buffer_id);
|
| video_decode_cb.Run(Decryptor::kError, NULL);
|
| @@ -1208,7 +1209,7 @@ bool ContentDecryptorDelegate::DeserializeAudioFrames(
|
| // TODO(jrummell): Pass ownership of data() directly to AudioBuffer to avoid
|
| // the copy. Since it is possible to get multiple buffers, it would need to be
|
| // sliced and ref counted appropriately. http://crbug.com/255576.
|
| - const uint8* cur = static_cast<uint8*>(mapper.data());
|
| + const uint8_t* cur = static_cast<uint8_t*>(mapper.data());
|
| size_t bytes_left = data_size;
|
|
|
| const int audio_bytes_per_frame =
|
| @@ -1218,8 +1219,7 @@ bool ContentDecryptorDelegate::DeserializeAudioFrames(
|
| return false;
|
|
|
| // Allocate space for the channel pointers given to AudioBuffer.
|
| - std::vector<const uint8*> channel_ptrs(audio_channel_count_,
|
| - static_cast<const uint8*>(NULL));
|
| + std::vector<const uint8_t*> channel_ptrs(audio_channel_count_, nullptr);
|
| do {
|
| int64 timestamp = 0;
|
| int64 frame_size = -1;
|
|
|