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

Unified Diff: content/renderer/media/renderer_webaudiodevice_impl.cc

Issue 2708933005: Fix WebAudio support for discrete channel layouts. (Closed)
Patch Set: Zero session_id. Created 3 years, 10 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
Index: content/renderer/media/renderer_webaudiodevice_impl.cc
diff --git a/content/renderer/media/renderer_webaudiodevice_impl.cc b/content/renderer/media/renderer_webaudiodevice_impl.cc
index 6bb147a567673a1f08c622cfe897ff60ad4b2789..2c4f81b185d74fe96ab0a25d677a67fd0d3d9296 100644
--- a/content/renderer/media/renderer_webaudiodevice_impl.cc
+++ b/content/renderer/media/renderer_webaudiodevice_impl.cc
@@ -76,18 +76,20 @@ media::AudioParameters GetOutputDeviceParameters(
RendererWebAudioDeviceImpl* RendererWebAudioDeviceImpl::Create(
media::ChannelLayout layout,
+ int channels,
const blink::WebAudioLatencyHint& latency_hint,
WebAudioDevice::RenderCallback* callback,
int session_id,
const url::Origin& security_origin) {
- return new RendererWebAudioDeviceImpl(layout, latency_hint, callback,
- session_id, security_origin,
+ return new RendererWebAudioDeviceImpl(layout, channels, latency_hint,
+ callback, session_id, security_origin,
base::Bind(&GetOutputDeviceParameters),
base::Bind(&FrameIdFromCurrentContext));
}
RendererWebAudioDeviceImpl::RendererWebAudioDeviceImpl(
media::ChannelLayout layout,
+ int channels,
const blink::WebAudioLatencyHint& latency_hint,
WebAudioDevice::RenderCallback* callback,
int session_id,
@@ -135,6 +137,9 @@ RendererWebAudioDeviceImpl::RendererWebAudioDeviceImpl(
sink_params_.Reset(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, layout,
hardware_params.sample_rate(), 16, output_buffer_size);
+ // Always set channels, this should be a no-op in all but the discrete case;
+ // this call will fail if channels doesn't match the layout in other cases.
+ sink_params_.set_channels_for_discrete(channels);
// Specify the latency info to be passed to the browser side.
sink_params_.set_latency_tag(latency);
« no previous file with comments | « content/renderer/media/renderer_webaudiodevice_impl.h ('k') | content/renderer/media/renderer_webaudiodevice_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698