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

Unified Diff: content/renderer/render_view_impl.cc

Issue 10836025: Part 1: Plumb render view ID to render host (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address review comments Created 8 years, 5 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/render_view_impl.cc
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc
index de604b1ed103c79b921a8d9be6106a154c4bd72f..a144ebca390b906132d03edfe900f212f98c80e6 100644
--- a/content/renderer/render_view_impl.cc
+++ b/content/renderer/render_view_impl.cc
@@ -76,6 +76,7 @@
#include "content/renderer/media/render_audiosourceprovider.h"
#include "content/renderer/media/render_media_log.h"
#include "content/renderer/media/renderer_gpu_video_decoder_factories.h"
+#include "content/renderer/media/renderer_webaudiodevice_impl.h"
#include "content/renderer/mhtml_generator.h"
#include "content/renderer/notification_provider.h"
#include "content/renderer/p2p/socket_dispatcher.h"
@@ -2366,7 +2367,7 @@ WebMediaPlayer* RenderViewImpl::createMediaPlayer(
if (!cmd_line->HasSwitch(switches::kDisableAudio)) {
// audio_source_provider is a "provider" to WebKit, and a sink
// from the perspective of the audio renderer.
- audio_source_provider = new RenderAudioSourceProvider();
+ audio_source_provider = new RenderAudioSourceProvider(routing_id_);
// Add the chrome specific audio renderer, using audio_source_provider
// as the sink.
@@ -2426,6 +2427,58 @@ WebApplicationCacheHost* RenderViewImpl::createApplicationCacheHost(
RenderThreadImpl::current()->appcache_dispatcher()->backend_proxy());
}
+
+WebKit::WebAudioDevice*
+RenderViewImpl::createAudioDevice(
+ size_t bufferSize,
+ unsigned numberOfChannels,
+ double sampleRate,
+ WebKit::WebAudioDevice::RenderCallback* 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
+ // channel count. See http://crbug.com/139882.
+ 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_4_0;
+ break;
+ case 5:
+ layout = CHANNEL_LAYOUT_5_0;
+ break;
+ case 6:
+ layout = CHANNEL_LAYOUT_5_1;
+ break;
+ case 7:
+ layout = CHANNEL_LAYOUT_7_0;
+ break;
+ case 8:
+ layout = CHANNEL_LAYOUT_7_1;
+ break;
+ default:
+ layout = CHANNEL_LAYOUT_STEREO;
+ break;
+ }
+
+ media::AudioParameters params(
+ media::AudioParameters::AUDIO_PCM_LOW_LATENCY, layout,
+ static_cast<int>(sampleRate), 16, bufferSize);
+
+ return new RendererWebAudioDeviceImpl(
+ routing_id_, params, callback);
+}
+
WebCookieJar* RenderViewImpl::cookieJar(WebFrame* frame) {
return &cookie_jar_;
}

Powered by Google App Engine
This is Rietveld 408576698