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 "content/renderer/pepper/pepper_platform_audio_output.h" | 5 #include "content/renderer/pepper/pepper_platform_audio_output.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/location.h" | 8 #include "base/location.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
11 #include "base/threading/thread_task_runner_handle.h" | 11 #include "base/threading/thread_task_runner_handle.h" |
12 #include "build/build_config.h" | 12 #include "build/build_config.h" |
13 #include "content/child/child_process.h" | 13 #include "content/child/child_process.h" |
14 #include "content/common/media/audio_messages.h" | 14 #include "content/common/media/audio_messages.h" |
15 #include "content/renderer/media/audio_message_filter.h" | 15 #include "content/renderer/media/audio_output_ipc_factory.h" |
16 #include "content/renderer/pepper/audio_helper.h" | 16 #include "content/renderer/pepper/audio_helper.h" |
17 #include "content/renderer/render_thread_impl.h" | 17 #include "content/renderer/render_thread_impl.h" |
| 18 #include "media/media_features.h" |
18 #include "ppapi/shared_impl/ppb_audio_config_shared.h" | 19 #include "ppapi/shared_impl/ppb_audio_config_shared.h" |
19 | 20 |
20 namespace content { | 21 namespace content { |
21 | 22 |
22 // static | 23 // static |
23 PepperPlatformAudioOutput* PepperPlatformAudioOutput::Create( | 24 PepperPlatformAudioOutput* PepperPlatformAudioOutput::Create( |
24 int sample_rate, | 25 int sample_rate, |
25 int frames_per_buffer, | 26 int frames_per_buffer, |
26 int source_render_frame_id, | 27 int source_render_frame_id, |
27 AudioHelper* client) { | 28 AudioHelper* client) { |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 void PepperPlatformAudioOutput::ShutDown() { | 74 void PepperPlatformAudioOutput::ShutDown() { |
74 // Called on the main thread to stop all audio callbacks. We must only change | 75 // Called on the main thread to stop all audio callbacks. We must only change |
75 // the client on the main thread, and the delegates from the I/O thread. | 76 // the client on the main thread, and the delegates from the I/O thread. |
76 client_ = NULL; | 77 client_ = NULL; |
77 io_task_runner_->PostTask( | 78 io_task_runner_->PostTask( |
78 FROM_HERE, | 79 FROM_HERE, |
79 base::Bind(&PepperPlatformAudioOutput::ShutDownOnIOThread, this)); | 80 base::Bind(&PepperPlatformAudioOutput::ShutDownOnIOThread, this)); |
80 } | 81 } |
81 | 82 |
82 void PepperPlatformAudioOutput::OnStateChanged( | 83 void PepperPlatformAudioOutput::OnStateChanged( |
83 media::AudioOutputIPCDelegateState state) {} | 84 media::mojom::AudioOutputStreamState state) {} |
84 | 85 |
85 void PepperPlatformAudioOutput::OnDeviceAuthorized( | 86 void PepperPlatformAudioOutput::OnDeviceAuthorized( |
86 media::OutputDeviceStatus device_status, | 87 media::OutputDeviceStatus device_status, |
87 const media::AudioParameters& output_params, | 88 const media::AudioParameters& output_params, |
88 const std::string& matched_device_id) { | 89 const std::string& matched_device_id) { |
89 NOTREACHED(); | 90 NOTREACHED(); |
90 } | 91 } |
91 | 92 |
92 void PepperPlatformAudioOutput::OnStreamCreated( | 93 void PepperPlatformAudioOutput::OnStreamCreated( |
93 base::SharedMemoryHandle handle, | 94 base::SharedMemoryHandle handle, |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 } | 131 } |
131 | 132 |
132 bool PepperPlatformAudioOutput::Initialize(int sample_rate, | 133 bool PepperPlatformAudioOutput::Initialize(int sample_rate, |
133 int frames_per_buffer, | 134 int frames_per_buffer, |
134 int source_render_frame_id, | 135 int source_render_frame_id, |
135 AudioHelper* client) { | 136 AudioHelper* client) { |
136 DCHECK(client); | 137 DCHECK(client); |
137 client_ = client; | 138 client_ = client; |
138 | 139 |
139 RenderThreadImpl* const render_thread = RenderThreadImpl::current(); | 140 RenderThreadImpl* const render_thread = RenderThreadImpl::current(); |
140 ipc_ = render_thread->audio_message_filter()->CreateAudioOutputIPC( | 141 ipc_ = render_thread->audio_output_ipc_factory()->CreateAudioOutputIPC( |
141 source_render_frame_id); | 142 source_render_frame_id); |
142 CHECK(ipc_); | 143 CHECK(ipc_); |
143 | 144 |
144 media::AudioParameters params(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, | 145 media::AudioParameters params(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, |
145 media::CHANNEL_LAYOUT_STEREO, | 146 media::CHANNEL_LAYOUT_STEREO, |
146 sample_rate, | 147 sample_rate, |
147 ppapi::kBitsPerAudioOutputSample, | 148 ppapi::kBitsPerAudioOutputSample, |
148 frames_per_buffer); | 149 frames_per_buffer); |
149 | 150 |
150 io_task_runner_->PostTask( | 151 io_task_runner_->PostTask( |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 return; | 187 return; |
187 | 188 |
188 ipc_->CloseStream(); | 189 ipc_->CloseStream(); |
189 ipc_.reset(); | 190 ipc_.reset(); |
190 | 191 |
191 Release(); // Release for the delegate, balances out the reference taken in | 192 Release(); // Release for the delegate, balances out the reference taken in |
192 // PepperPlatformAudioOutput::Create. | 193 // PepperPlatformAudioOutput::Create. |
193 } | 194 } |
194 | 195 |
195 } // namespace content | 196 } // namespace content |
OLD | NEW |