diff options
author | miu@chromium.org <miu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-11 09:31:47 +0000 |
---|---|---|
committer | miu@chromium.org <miu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-11 09:31:47 +0000 |
commit | f8d1737f16939011ce55ab2a7ce438bc7172b87c (patch) | |
tree | fdfd957972bd74cfbe5c1122bd54a0449bf75ebd /content/test | |
parent | 98efbd9c6e1dd6db2a4f73eca2ce79ac77d3d0db (diff) | |
download | chromium_src-f8d1737f16939011ce55ab2a7ce438bc7172b87c.zip chromium_src-f8d1737f16939011ce55ab2a7ce438bc7172b87c.tar.gz chromium_src-f8d1737f16939011ce55ab2a7ce438bc7172b87c.tar.bz2 |
Tab Audio Mirroring/Capture: Browser-side connect/disconnect functionality:
1. Added new AudioMirroringManager to dynamically match/route "divertable" audio streams with mirroring destinations.
2. Modified AudioOutputController to provide "divert audio data" functionality.
3. Modified AudioRendererHost to notify AudioMirroringManager of all audio streams.
The intention is, in a later change, to introduce a "WebContentsAudioInputStream" which will implement the AudioMirroringManager::MirroringDestination interface introduced in this change. WCAIS will represent the lifetime of a tab audio mirroring session, calling AudioMirroringManager::Start/StopMirroring() as appropriate.
Testing:
1. Rewrote most of unit testing for AudioOutputController, addressing bug 112500. Also added testing for the new Divert functionality.
2. Added extensive unit testing for the new Start/StopMirroring functionality in AudioMirroringManager.
3. Minor testing clean-ups/additions elsewhere.
BUG=153392,112500
TEST=Run media_unittests and content_unittests.
Review URL: https://chromiumcodereview.appspot.com/11413078
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176295 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/test')
-rw-r--r-- | content/test/webrtc_audio_device_test.cc | 10 | ||||
-rw-r--r-- | content/test/webrtc_audio_device_test.h | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/content/test/webrtc_audio_device_test.cc b/content/test/webrtc_audio_device_test.cc index 72d94e5..b31d4bb 100644 --- a/content/test/webrtc_audio_device_test.cc +++ b/content/test/webrtc_audio_device_test.cc @@ -12,6 +12,7 @@ #include "base/synchronization/waitable_event.h" #include "base/test/test_timeouts.h" #include "content/browser/renderer_host/media/audio_input_renderer_host.h" +#include "content/browser/renderer_host/media/audio_mirroring_manager.h" #include "content/browser/renderer_host/media/audio_renderer_host.h" #include "content/browser/renderer_host/media/media_stream_manager.h" #include "content/browser/renderer_host/media/mock_media_observer.h" @@ -172,6 +173,7 @@ void WebRTCAudioDeviceTest::TearDown() { WaitForIOThreadCompletion(); mock_process_.reset(); media_stream_manager_.reset(); + mirroring_manager_.reset(); audio_manager_.reset(); RendererWebKitPlatformSupportImpl::SetSandboxEnabledForTesting( sandbox_was_enabled_); @@ -206,8 +208,9 @@ void WebRTCAudioDeviceTest::InitializeIOThread(const char* thread_name) { resource_context->set_request_context(test_request_context_.get()); media_observer_.reset(new MockMediaObserver()); - // Create our own AudioManager and MediaStreamManager. + // Create our own AudioManager, AudioMirroringManager and MediaStreamManager. audio_manager_.reset(media::AudioManager::Create()); + mirroring_manager_.reset(new AudioMirroringManager()); media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get())); has_input_devices_ = audio_manager_->HasAudioInputDevices(); @@ -229,8 +232,11 @@ void WebRTCAudioDeviceTest::UninitializeIOThread() { void WebRTCAudioDeviceTest::CreateChannel(const char* name) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); + + static const int kRenderProcessId = 1; audio_render_host_ = new AudioRendererHost( - audio_manager_.get(), media_observer_.get()); + kRenderProcessId, audio_manager_.get(), mirroring_manager_.get(), + media_observer_.get()); audio_render_host_->OnChannelConnected(base::GetCurrentProcId()); audio_input_renderer_host_ = new AudioInputRendererHost( diff --git a/content/test/webrtc_audio_device_test.h b/content/test/webrtc_audio_device_test.h index 56137192..6409794 100644 --- a/content/test/webrtc_audio_device_test.h +++ b/content/test/webrtc_audio_device_test.h @@ -45,6 +45,7 @@ class ScopedCOMInitializer; namespace content { class AudioInputRendererHost; +class AudioMirroringManager; class AudioRendererHost; class ContentRendererClient; class MediaStreamManager; @@ -169,6 +170,7 @@ class WebRTCAudioDeviceTest : public ::testing::Test, public IPC::Listener { scoped_ptr<MockMediaObserver> media_observer_; scoped_ptr<MediaStreamManager> media_stream_manager_; scoped_ptr<media::AudioManager> audio_manager_; + scoped_ptr<AudioMirroringManager> mirroring_manager_; scoped_ptr<net::URLRequestContext> test_request_context_; scoped_ptr<ResourceContext> resource_context_; scoped_ptr<IPC::Channel> channel_; |