| Index: media/cdm/ppapi/cdm_adapter.cc
|
| diff --git a/media/cdm/ppapi/cdm_adapter.cc b/media/cdm/ppapi/cdm_adapter.cc
|
| index 6814a5ef5faa67a309fb9c11dc444b698c889980..92bb3264bc79ec6343c73af458265a0c9fa72bfa 100644
|
| --- a/media/cdm/ppapi/cdm_adapter.cc
|
| +++ b/media/cdm/ppapi/cdm_adapter.cc
|
| @@ -107,6 +107,26 @@ PP_DecryptedFrameFormat CdmVideoFormatToPpDecryptedFrameFormat(
|
| }
|
| }
|
|
|
| +PP_DecryptedSampleFormat CdmAudioFormatToPpDecryptedSampleFormat(
|
| + cdm::AudioFormat format) {
|
| + switch (format) {
|
| + case cdm::kAudioFormatU8:
|
| + return PP_DECRYPTEDSAMPLEFORMAT_U8;
|
| + case cdm::kAudioFormatS16:
|
| + return PP_DECRYPTEDSAMPLEFORMAT_S16;
|
| + case cdm::kAudioFormatS32:
|
| + return PP_DECRYPTEDSAMPLEFORMAT_S32;
|
| + case cdm::kAudioFormatF32:
|
| + return PP_DECRYPTEDSAMPLEFORMAT_F32;
|
| + case cdm::kAudioFormatPlanarS16:
|
| + return PP_DECRYPTEDSAMPLEFORMAT_PLANAR_S16;
|
| + case cdm::kAudioFormatPlanarF32:
|
| + return PP_DECRYPTEDSAMPLEFORMAT_PLANAR_F32;
|
| + default:
|
| + return PP_DECRYPTEDSAMPLEFORMAT_UNKNOWN;
|
| + }
|
| +}
|
| +
|
| cdm::AudioDecoderConfig::AudioCodec PpAudioCodecToCdmAudioCodec(
|
| PP_AudioCodec codec) {
|
| switch (codec) {
|
| @@ -675,30 +695,32 @@ void CdmAdapter::DeliverSamples(int32_t result,
|
| const PP_DecryptTrackingInfo& tracking_info) {
|
| PP_DCHECK(result == PP_OK);
|
|
|
| - PP_DecryptedBlockInfo decrypted_block_info;
|
| - decrypted_block_info.tracking_info = tracking_info;
|
| - decrypted_block_info.tracking_info.timestamp = 0;
|
| - decrypted_block_info.tracking_info.buffer_id = 0;
|
| - decrypted_block_info.data_size = 0;
|
| - decrypted_block_info.result = CdmStatusToPpDecryptResult(status);
|
| + PP_DecryptedSampleInfo decrypted_sample_info;
|
| + decrypted_sample_info.tracking_info = tracking_info;
|
| + decrypted_sample_info.tracking_info.timestamp = 0;
|
| + decrypted_sample_info.tracking_info.buffer_id = 0;
|
| + decrypted_sample_info.data_size = 0;
|
| + decrypted_sample_info.result = CdmStatusToPpDecryptResult(status);
|
|
|
| pp::Buffer_Dev buffer;
|
|
|
| - if (decrypted_block_info.result == PP_DECRYPTRESULT_SUCCESS) {
|
| + if (decrypted_sample_info.result == PP_DECRYPTRESULT_SUCCESS) {
|
| PP_DCHECK(audio_frames.get() && audio_frames->FrameBuffer());
|
| if (!audio_frames.get() || !audio_frames->FrameBuffer()) {
|
| PP_NOTREACHED();
|
| - decrypted_block_info.result = PP_DECRYPTRESULT_DECRYPT_ERROR;
|
| + decrypted_sample_info.result = PP_DECRYPTRESULT_DECRYPT_ERROR;
|
| } else {
|
| PpbBuffer* ppb_buffer =
|
| static_cast<PpbBuffer*>(audio_frames->FrameBuffer());
|
| buffer = ppb_buffer->buffer_dev();
|
| - decrypted_block_info.tracking_info.buffer_id = ppb_buffer->buffer_id();
|
| - decrypted_block_info.data_size = ppb_buffer->Size();
|
| + decrypted_sample_info.tracking_info.buffer_id = ppb_buffer->buffer_id();
|
| + decrypted_sample_info.data_size = ppb_buffer->Size();
|
| + decrypted_sample_info.format =
|
| + CdmAudioFormatToPpDecryptedSampleFormat(audio_frames->Format());
|
| }
|
| }
|
|
|
| - pp::ContentDecryptor_Private::DeliverSamples(buffer, decrypted_block_info);
|
| + pp::ContentDecryptor_Private::DeliverSamples(buffer, decrypted_sample_info);
|
| }
|
|
|
| bool CdmAdapter::IsValidVideoFrame(const LinkedVideoFrame& video_frame) {
|
|
|