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

Unified Diff: content/renderer/render_view_impl.cc

Issue 8980008: Integrate HTMLMediaElement with Web Audio API's MediaElementAudioSourceNode (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 8 years, 12 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
===================================================================
--- content/renderer/render_view_impl.cc (revision 116581)
+++ content/renderer/render_view_impl.cc (working copy)
@@ -65,6 +65,7 @@
#include "content/renderer/notification_provider.h"
#include "content/renderer/p2p/socket_dispatcher.h"
#include "content/renderer/plugin_channel_host.h"
+#include "content/renderer/render_audiosourceprovider.h"
#include "content/renderer/render_process.h"
#include "content/renderer/render_thread_impl.h"
#include "content/renderer/render_widget_fullscreen_pepper.h"
@@ -1931,11 +1932,20 @@
media::FilterCollection* collection = new media::FilterCollection();
RenderMediaLog* render_media_log = new RenderMediaLog();
+ RenderAudioSourceProvider* audio_source_provider = NULL;
+
// Add in any custom filter factories first.
const CommandLine* cmd_line = CommandLine::ForCurrentProcess();
if (!cmd_line->HasSwitch(switches::kDisableAudio)) {
- // Add the chrome specific audio renderer.
- collection->AddAudioRenderer(new AudioRendererImpl());
+ // audio_source_provider is a "provider" to WebKit, and a sink
+ // from the perspective of the audio renderer.
+ audio_source_provider = new RenderAudioSourceProvider();
+
+ // Add the chrome specific audio renderer, using audio_source_provider
+ // as the sink.
+ AudioRendererImpl* audio_renderer =
+ new AudioRendererImpl(audio_source_provider);
+ collection->AddAudioRenderer(audio_renderer);
}
#if defined(OS_CHROMEOS) && defined(ARCH_CPU_ARMEL)
@@ -1959,11 +1969,12 @@
webkit_media::WebMediaPlayerImpl* result_ptr;
if (!content::GetContentClient()->renderer()->OverrideCreateWebMediaPlayer(
- this, client, AsWeakPtr(), collection, message_loop_factory,
- media_stream_impl_.get(), render_media_log, &result_ptr)) {
+ this, client, AsWeakPtr(), collection, audio_source_provider,
+ message_loop_factory, media_stream_impl_.get(), render_media_log,
+ &result_ptr)) {
result_ptr = new webkit_media::WebMediaPlayerImpl(
- client, AsWeakPtr(), collection, message_loop_factory,
- media_stream_impl_.get(), render_media_log);
+ client, AsWeakPtr(), collection, audio_source_provider,
+ message_loop_factory, media_stream_impl_.get(), render_media_log);
}
DCHECK(result_ptr);

Powered by Google App Engine
This is Rietveld 408576698