Index: content/renderer/renderer_webkitplatformsupport_impl.cc |
diff --git a/content/renderer/renderer_webkitplatformsupport_impl.cc b/content/renderer/renderer_webkitplatformsupport_impl.cc |
index 1c5fc6fd1b3878441e361e9c01f719e86ff607d8..1b2db3c94078f2e1afc82eb54b1e6f9bd71359ce 100644 |
--- a/content/renderer/renderer_webkitplatformsupport_impl.cc |
+++ b/content/renderer/renderer_webkitplatformsupport_impl.cc |
@@ -589,14 +589,51 @@ size_t RendererWebKitPlatformSupportImpl::audioHardwareBufferSize() { |
WebAudioDevice* |
RendererWebKitPlatformSupportImpl::createAudioDevice( |
- size_t buffer_size, |
- unsigned channels, |
- double sample_rate, |
+ size_t bufferSize, |
+ unsigned numberOfChannels, |
+ double sampleRate, |
WebAudioDevice::RenderCallback* callback) { |
- return new RendererWebAudioDeviceImpl(buffer_size, |
- channels, |
- sample_rate, |
- callback); |
+ ChannelLayout layout = CHANNEL_LAYOUT_UNSUPPORTED; |
+ |
+ // The |numberOfChannels| does not exactly identify the channel layout of the |
+ // device. The switch statement below assigns a best guess to the channel |
+ // layout based on number of channels. |
+ // TODO(crogers): WebKit should give the channel layout instead of the hard |
vrk (LEFT CHROMIUM)
2012/03/09 20:59:32
crogers: Note this TODO I assigned to you! What do
|
+ // channel count. |
+ switch (numberOfChannels) { |
+ case 1: |
+ layout = CHANNEL_LAYOUT_MONO; |
+ break; |
+ case 2: |
+ layout = CHANNEL_LAYOUT_STEREO; |
+ break; |
+ case 3: |
+ layout = CHANNEL_LAYOUT_2_1; |
+ break; |
+ case 4: |
+ layout = CHANNEL_LAYOUT_4POINT0; |
tommi (sloooow) - chröme
2012/03/10 10:11:32
nit: what about using the underscore in all the va
vrk (LEFT CHROMIUM)
2012/03/16 18:30:41
SGTM. Looks like we were doing that to be consiste
|
+ break; |
+ case 5: |
+ layout = CHANNEL_LAYOUT_5POINT0; |
+ break; |
+ case 6: |
+ layout = CHANNEL_LAYOUT_5POINT1; |
+ break; |
+ case 7: |
+ layout = CHANNEL_LAYOUT_7POINT0; |
+ break; |
+ case 8: |
+ layout = CHANNEL_LAYOUT_7POINT1; |
+ break; |
+ } |
scherkus (not reviewing)
2012/03/09 21:48:59
we need a default case here -- perhaps stereo?
vrk (LEFT CHROMIUM)
2012/03/16 18:30:41
Done.
|
+ |
+ AudioParameters params(AudioParameters::AUDIO_PCM_LOW_LATENCY, |
+ layout, |
+ static_cast<int>(sampleRate), |
+ 16, |
+ bufferSize); |
+ |
+ return new RendererWebAudioDeviceImpl(params, callback); |
} |
//------------------------------------------------------------------------------ |