summaryrefslogtreecommitdiffstats
path: root/content/test
diff options
context:
space:
mode:
authormiu@chromium.org <miu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-11 09:31:47 +0000
committermiu@chromium.org <miu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-11 09:31:47 +0000
commitf8d1737f16939011ce55ab2a7ce438bc7172b87c (patch)
treefdfd957972bd74cfbe5c1122bd54a0449bf75ebd /content/test
parent98efbd9c6e1dd6db2a4f73eca2ce79ac77d3d0db (diff)
downloadchromium_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.cc10
-rw-r--r--content/test/webrtc_audio_device_test.h2
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_;