| 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) { | 
|  |