Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1102)

Unified Diff: media/cdm/ppapi/cdm_adapter.cc

Issue 26956002: Plumb support for audio sample formats. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix cast. Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/pepper/pepper_plugin_instance_impl.cc ('k') | media/cdm/ppapi/cdm_wrapper.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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) {
« no previous file with comments | « content/renderer/pepper/pepper_plugin_instance_impl.cc ('k') | media/cdm/ppapi/cdm_wrapper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698