Chromium Code Reviews| Index: content/renderer/renderer_blink_platform_impl.cc |
| diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc |
| index 9130436578d442e3e57a31042b4aa220484aa5e3..f3d13a70e7ed519f11628450181dbdb14e909d49 100644 |
| --- a/content/renderer/renderer_blink_platform_impl.cc |
| +++ b/content/renderer/renderer_blink_platform_impl.cc |
| @@ -701,8 +701,6 @@ WebAudioDevice* RendererBlinkPlatformImpl::createAudioDevice( |
| // The |channels| 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 |
|
Raymond Toy
2015/01/08 21:55:54
This TODO is still true isn't it? WebKit does sti
hongchan
2015/01/08 21:58:33
Still true for WebKit, but here at Blink we have t
Raymond Toy
2015/01/08 22:02:57
But creatAudioDevice still takes unsigned channels
|
| - // channel count. |
| media::ChannelLayout layout = media::CHANNEL_LAYOUT_UNSUPPORTED; |
| switch (channels) { |
| case 1: |
| @@ -730,7 +728,9 @@ WebAudioDevice* RendererBlinkPlatformImpl::createAudioDevice( |
| layout = media::CHANNEL_LAYOUT_7_1; |
| break; |
| default: |
| - layout = media::CHANNEL_LAYOUT_STEREO; |
| + // If the layout is not supported (more than 9 channels), falls back to |
| + // discrete mode. |
| + layout = media::CHANNEL_LAYOUT_DISCRETE; |
| } |
| int session_id = 0; |
| @@ -742,9 +742,11 @@ WebAudioDevice* RendererBlinkPlatformImpl::createAudioDevice( |
| input_channels = 0; |
| } |
| + // For CHANNEL_LAYOUT_DISCRETE, pass the explicit channel count along with |
| + // the channel layout when creating an |AudioParameters| object. |
| media::AudioParameters params( |
| media::AudioParameters::AUDIO_PCM_LOW_LATENCY, |
| - layout, static_cast<int>(sample_rate), 16, buffer_size, |
| + layout, channels, static_cast<int>(sample_rate), 16, buffer_size, |
| media::AudioParameters::NO_EFFECTS); |
| return new RendererWebAudioDeviceImpl(params, callback, session_id); |