OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ppapi/shared_impl/ppb_audio_shared.h" | 5 #include "ppapi/shared_impl/ppb_audio_shared.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/trace_event/trace_event.h" | 8 #include "base/trace_event/trace_event.h" |
| 9 #include "media/audio/audio_parameters.h" |
9 #include "ppapi/nacl_irt/public/irt_ppapi.h" | 10 #include "ppapi/nacl_irt/public/irt_ppapi.h" |
10 #include "ppapi/shared_impl/ppapi_globals.h" | 11 #include "ppapi/shared_impl/ppapi_globals.h" |
11 #include "ppapi/shared_impl/ppb_audio_config_shared.h" | 12 #include "ppapi/shared_impl/ppb_audio_config_shared.h" |
12 #include "ppapi/shared_impl/proxy_lock.h" | 13 #include "ppapi/shared_impl/proxy_lock.h" |
13 | 14 |
14 namespace ppapi { | 15 namespace ppapi { |
15 | 16 |
16 namespace { | 17 namespace { |
17 bool g_nacl_mode = false; | 18 bool g_nacl_mode = false; |
18 // Because this is static, the function pointers will be NULL initially. | 19 // Because this is static, the function pointers will be NULL initially. |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 kAudioOutputChannels * (kBitsPerAudioOutputSample / 8) * sample_rate; | 106 kAudioOutputChannels * (kBitsPerAudioOutputSample / 8) * sample_rate; |
106 buffer_index_ = 0; | 107 buffer_index_ = 0; |
107 | 108 |
108 if (!shared_memory_->Map(shared_memory_size_)) { | 109 if (!shared_memory_->Map(shared_memory_size_)) { |
109 PpapiGlobals::Get()->LogWithSource( | 110 PpapiGlobals::Get()->LogWithSource( |
110 instance, | 111 instance, |
111 PP_LOGLEVEL_WARNING, | 112 PP_LOGLEVEL_WARNING, |
112 std::string(), | 113 std::string(), |
113 "Failed to map shared memory for PPB_Audio_Shared."); | 114 "Failed to map shared memory for PPB_Audio_Shared."); |
114 } else { | 115 } else { |
115 audio_bus_ = media::AudioBus::WrapMemory( | 116 DCHECK_EQ(shared_memory_size_, |
116 kAudioOutputChannels, sample_frame_count, shared_memory_->memory()); | 117 sizeof(media::AudioOutputBufferParameters) + |
| 118 media::AudioBus::CalculateMemorySize(kAudioOutputChannels, |
| 119 sample_frame_count)); |
| 120 media::AudioOutputBuffer* buffer = |
| 121 reinterpret_cast<media::AudioOutputBuffer*>(shared_memory_->memory()); |
| 122 audio_bus_ = media::AudioBus::WrapMemory(kAudioOutputChannels, |
| 123 sample_frame_count, buffer->audio); |
117 // Setup integer audio buffer for user audio data. | 124 // Setup integer audio buffer for user audio data. |
118 client_buffer_size_bytes_ = audio_bus_->frames() * audio_bus_->channels() * | 125 client_buffer_size_bytes_ = audio_bus_->frames() * audio_bus_->channels() * |
119 kBitsPerAudioOutputSample / 8; | 126 kBitsPerAudioOutputSample / 8; |
120 client_buffer_.reset(new uint8_t[client_buffer_size_bytes_]); | 127 client_buffer_.reset(new uint8_t[client_buffer_size_bytes_]); |
121 } | 128 } |
122 | 129 |
123 StartThread(); | 130 StartThread(); |
124 } | 131 } |
125 | 132 |
126 void PPB_Audio_Shared::StartThread() { | 133 void PPB_Audio_Shared::StartThread() { |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 // Let the other end know which buffer we just filled. The buffer index is | 240 // Let the other end know which buffer we just filled. The buffer index is |
234 // used to ensure the other end is getting the buffer it expects. For more | 241 // used to ensure the other end is getting the buffer it expects. For more |
235 // details on how this works see AudioSyncReader::WaitUntilDataIsReady(). | 242 // details on how this works see AudioSyncReader::WaitUntilDataIsReady(). |
236 size_t bytes_sent = socket_->Send(&buffer_index_, sizeof(buffer_index_)); | 243 size_t bytes_sent = socket_->Send(&buffer_index_, sizeof(buffer_index_)); |
237 if (bytes_sent != sizeof(buffer_index_)) | 244 if (bytes_sent != sizeof(buffer_index_)) |
238 break; | 245 break; |
239 } | 246 } |
240 } | 247 } |
241 | 248 |
242 } // namespace ppapi | 249 } // namespace ppapi |
OLD | NEW |