| Index: content/renderer/media/webrtc_local_audio_track_unittest.cc
|
| diff --git a/content/renderer/media/webrtc_local_audio_track_unittest.cc b/content/renderer/media/webrtc_local_audio_track_unittest.cc
|
| index 1e9868c802f12e967341545901614f24b883af7a..7c478c81031c279e79ec7472cacc605b619525cf 100644
|
| --- a/content/renderer/media/webrtc_local_audio_track_unittest.cc
|
| +++ b/content/renderer/media/webrtc_local_audio_track_unittest.cc
|
| @@ -95,7 +95,7 @@
|
| int session_id));
|
| MOCK_METHOD0(OnStart, void());
|
| MOCK_METHOD0(OnStop, void());
|
| - void SetVolume(double volume) final {}
|
| + MOCK_METHOD1(SetVolume, void(double volume));
|
| MOCK_METHOD1(SetAutomaticGainControl, void(bool enable));
|
|
|
| void Initialize(const media::AudioParameters& params,
|
| @@ -165,16 +165,12 @@
|
|
|
| StreamDeviceInfo device(MEDIA_DEVICE_AUDIO_CAPTURE,
|
| std::string(), std::string());
|
| - {
|
| - scoped_ptr<WebRtcAudioCapturer> capturer =
|
| - WebRtcAudioCapturer::CreateCapturer(
|
| - -1, device, constraint_factory.CreateWebMediaConstraints(),
|
| - nullptr, audio_source);
|
| - capturer_ = capturer.get();
|
| - audio_source->SetAudioCapturer(std::move(capturer));
|
| - }
|
| - capturer_source_ = new MockCapturerSource(capturer_);
|
| - EXPECT_CALL(*capturer_source_.get(), OnInitialize(_, capturer_, -1))
|
| + capturer_ = WebRtcAudioCapturer::CreateCapturer(
|
| + -1, device, constraint_factory.CreateWebMediaConstraints(), NULL,
|
| + audio_source);
|
| + audio_source->SetAudioCapturer(capturer_.get());
|
| + capturer_source_ = new MockCapturerSource(capturer_.get());
|
| + EXPECT_CALL(*capturer_source_.get(), OnInitialize(_, capturer_.get(), -1))
|
| .WillOnce(Return());
|
| EXPECT_CALL(*capturer_source_.get(), SetAutomaticGainControl(true));
|
| EXPECT_CALL(*capturer_source_.get(), OnStart());
|
| @@ -188,8 +184,8 @@
|
|
|
| media::AudioParameters params_;
|
| blink::WebMediaStreamSource blink_source_;
|
| - WebRtcAudioCapturer* capturer_; // Owned by |blink_source_|.
|
| scoped_refptr<MockCapturerSource> capturer_source_;
|
| + scoped_refptr<WebRtcAudioCapturer> capturer_;
|
| };
|
|
|
| // Creates a capturer and audio track, fakes its audio thread, and
|
| @@ -200,12 +196,8 @@
|
| scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter(
|
| WebRtcLocalAudioTrackAdapter::Create(std::string(), NULL));
|
| scoped_ptr<WebRtcLocalAudioTrack> track(
|
| - new WebRtcLocalAudioTrack(adapter.get()));
|
| - track->Start(
|
| - base::Bind(&MediaStreamAudioSource::StopAudioDeliveryTo,
|
| - MediaStreamAudioSource::From(blink_source_)->GetWeakPtr(),
|
| - track.get()));
|
| - capturer_->AddTrack(track.get());
|
| + new WebRtcLocalAudioTrack(adapter.get(), capturer_, NULL));
|
| + track->Start();
|
| EXPECT_TRUE(track->GetAudioAdapter()->enabled());
|
|
|
| scoped_ptr<MockMediaStreamAudioSink> sink(new MockMediaStreamAudioSink());
|
| @@ -234,16 +226,12 @@
|
| scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter(
|
| WebRtcLocalAudioTrackAdapter::Create(std::string(), NULL));
|
| scoped_ptr<WebRtcLocalAudioTrack> track(
|
| - new WebRtcLocalAudioTrack(adapter.get()));
|
| - track->Start(
|
| - base::Bind(&MediaStreamAudioSource::StopAudioDeliveryTo,
|
| - MediaStreamAudioSource::From(blink_source_)->GetWeakPtr(),
|
| - track.get()));
|
| - capturer_->AddTrack(track.get());
|
| + new WebRtcLocalAudioTrack(adapter.get(), capturer_, NULL));
|
| + track->Start();
|
| EXPECT_TRUE(track->GetAudioAdapter()->enabled());
|
| EXPECT_TRUE(track->GetAudioAdapter()->set_enabled(false));
|
| scoped_ptr<MockMediaStreamAudioSink> sink(new MockMediaStreamAudioSink());
|
| - const media::AudioParameters params = capturer_->GetInputFormat();
|
| + const media::AudioParameters params = capturer_->source_audio_parameters();
|
| base::WaitableEvent event(false, false);
|
| EXPECT_CALL(*sink, FormatIsSet()).Times(1);
|
| EXPECT_CALL(*sink, CaptureData()).Times(0);
|
| @@ -271,15 +259,11 @@
|
| scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter_1(
|
| WebRtcLocalAudioTrackAdapter::Create(std::string(), NULL));
|
| scoped_ptr<WebRtcLocalAudioTrack> track_1(
|
| - new WebRtcLocalAudioTrack(adapter_1.get()));
|
| - track_1->Start(
|
| - base::Bind(&MediaStreamAudioSource::StopAudioDeliveryTo,
|
| - MediaStreamAudioSource::From(blink_source_)->GetWeakPtr(),
|
| - track_1.get()));
|
| - capturer_->AddTrack(track_1.get());
|
| + new WebRtcLocalAudioTrack(adapter_1.get(), capturer_, NULL));
|
| + track_1->Start();
|
| EXPECT_TRUE(track_1->GetAudioAdapter()->enabled());
|
| scoped_ptr<MockMediaStreamAudioSink> sink_1(new MockMediaStreamAudioSink());
|
| - const media::AudioParameters params = capturer_->GetInputFormat();
|
| + const media::AudioParameters params = capturer_->source_audio_parameters();
|
| base::WaitableEvent event_1(false, false);
|
| EXPECT_CALL(*sink_1, FormatIsSet()).WillOnce(Return());
|
| EXPECT_CALL(*sink_1, CaptureData()).Times(AtLeast(1))
|
| @@ -292,12 +276,8 @@
|
| scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter_2(
|
| WebRtcLocalAudioTrackAdapter::Create(std::string(), NULL));
|
| scoped_ptr<WebRtcLocalAudioTrack> track_2(
|
| - new WebRtcLocalAudioTrack(adapter_2.get()));
|
| - track_2->Start(
|
| - base::Bind(&MediaStreamAudioSource::StopAudioDeliveryTo,
|
| - MediaStreamAudioSource::From(blink_source_)->GetWeakPtr(),
|
| - track_2.get()));
|
| - capturer_->AddTrack(track_2.get());
|
| + new WebRtcLocalAudioTrack(adapter_2.get(), capturer_, NULL));
|
| + track_2->Start();
|
| EXPECT_TRUE(track_2->GetAudioAdapter()->enabled());
|
|
|
| // Verify both |sink_1| and |sink_2| get data.
|
| @@ -335,12 +315,8 @@
|
| scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter(
|
| WebRtcLocalAudioTrackAdapter::Create(std::string(), NULL));
|
| scoped_ptr<WebRtcLocalAudioTrack> track(
|
| - new WebRtcLocalAudioTrack(adapter.get()));
|
| - track->Start(
|
| - base::Bind(&MediaStreamAudioSource::StopAudioDeliveryTo,
|
| - MediaStreamAudioSource::From(blink_source_)->GetWeakPtr(),
|
| - track.get()));
|
| - capturer_->AddTrack(track.get());
|
| + new WebRtcLocalAudioTrack(adapter.get(), capturer_, NULL));
|
| + track->Start();
|
|
|
| // When the track goes away, it will automatically stop the
|
| // |capturer_source_|.
|
| @@ -355,22 +331,14 @@
|
| scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter1(
|
| WebRtcLocalAudioTrackAdapter::Create(std::string(), NULL));
|
| scoped_ptr<WebRtcLocalAudioTrack> track1(
|
| - new WebRtcLocalAudioTrack(adapter1.get()));
|
| - track1->Start(
|
| - base::Bind(&MediaStreamAudioSource::StopAudioDeliveryTo,
|
| - MediaStreamAudioSource::From(blink_source_)->GetWeakPtr(),
|
| - track1.get()));
|
| - capturer_->AddTrack(track1.get());
|
| + new WebRtcLocalAudioTrack(adapter1.get(), capturer_, NULL));
|
| + track1->Start();
|
|
|
| scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter2(
|
| WebRtcLocalAudioTrackAdapter::Create(std::string(), NULL));
|
| scoped_ptr<WebRtcLocalAudioTrack> track2(
|
| - new WebRtcLocalAudioTrack(adapter2.get()));
|
| - track2->Start(
|
| - base::Bind(&MediaStreamAudioSource::StopAudioDeliveryTo,
|
| - MediaStreamAudioSource::From(blink_source_)->GetWeakPtr(),
|
| - track2.get()));
|
| - capturer_->AddTrack(track2.get());
|
| + new WebRtcLocalAudioTrack(adapter2.get(), capturer_, NULL));
|
| + track2->Start();
|
|
|
| track1->Stop();
|
| // When the last track is stopped, it will automatically stop the
|
| @@ -386,12 +354,8 @@
|
| scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter_1(
|
| WebRtcLocalAudioTrackAdapter::Create(std::string(), NULL));
|
| scoped_ptr<WebRtcLocalAudioTrack> track_1(
|
| - new WebRtcLocalAudioTrack(adapter_1.get()));
|
| - track_1->Start(
|
| - base::Bind(&MediaStreamAudioSource::StopAudioDeliveryTo,
|
| - MediaStreamAudioSource::From(blink_source_)->GetWeakPtr(),
|
| - track_1.get()));
|
| - capturer_->AddTrack(track_1.get());
|
| + new WebRtcLocalAudioTrack(adapter_1.get(), capturer_, NULL));
|
| + track_1->Start();
|
|
|
| // Verify the data flow by connecting the sink to |track_1|.
|
| scoped_ptr<MockMediaStreamAudioSink> sink(new MockMediaStreamAudioSink());
|
| @@ -408,12 +372,8 @@
|
| scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter_2(
|
| WebRtcLocalAudioTrackAdapter::Create(std::string(), NULL));
|
| scoped_ptr<WebRtcLocalAudioTrack> track_2(
|
| - new WebRtcLocalAudioTrack(adapter_2.get()));
|
| - track_2->Start(
|
| - base::Bind(&MediaStreamAudioSource::StopAudioDeliveryTo,
|
| - MediaStreamAudioSource::From(blink_source_)->GetWeakPtr(),
|
| - track_2.get()));
|
| - capturer_->AddTrack(track_2.get());
|
| + new WebRtcLocalAudioTrack(adapter_2.get(), capturer_, NULL));
|
| + track_2->Start();
|
|
|
| // Stop the capturer will clear up the track lists in the capturer.
|
| EXPECT_CALL(*capturer_source_.get(), OnStop());
|
| @@ -444,12 +404,8 @@
|
| scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter_1(
|
| WebRtcLocalAudioTrackAdapter::Create(std::string(), NULL));
|
| scoped_ptr<WebRtcLocalAudioTrack> track_1(
|
| - new WebRtcLocalAudioTrack(adapter_1.get()));
|
| - track_1->Start(
|
| - base::Bind(&MediaStreamAudioSource::StopAudioDeliveryTo,
|
| - MediaStreamAudioSource::From(blink_source_)->GetWeakPtr(),
|
| - track_1.get()));
|
| - capturer_->AddTrack(track_1.get());
|
| + new WebRtcLocalAudioTrack(adapter_1.get(), capturer_, NULL));
|
| + track_1->Start();
|
|
|
| // Verify the data flow by connecting the |sink_1| to |track_1|.
|
| scoped_ptr<MockMediaStreamAudioSink> sink_1(new MockMediaStreamAudioSink());
|
| @@ -462,7 +418,7 @@
|
| MockConstraintFactory constraint_factory;
|
| StreamDeviceInfo device(MEDIA_DEVICE_AUDIO_CAPTURE,
|
| std::string(), std::string());
|
| - scoped_ptr<WebRtcAudioCapturer> new_capturer(
|
| + scoped_refptr<WebRtcAudioCapturer> new_capturer(
|
| WebRtcAudioCapturer::CreateCapturer(
|
| -1, device, constraint_factory.CreateWebMediaConstraints(), NULL,
|
| NULL));
|
| @@ -481,12 +437,8 @@
|
| scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter_2(
|
| WebRtcLocalAudioTrackAdapter::Create(std::string(), NULL));
|
| scoped_ptr<WebRtcLocalAudioTrack> track_2(
|
| - new WebRtcLocalAudioTrack(adapter_2.get()));
|
| - track_2->Start(
|
| - base::Bind(&MediaStreamAudioSource::StopAudioDeliveryTo,
|
| - MediaStreamAudioSource::From(blink_source_)->GetWeakPtr(),
|
| - track_2.get()));
|
| - new_capturer->AddTrack(track_2.get());
|
| + new WebRtcLocalAudioTrack(adapter_2.get(), new_capturer, NULL));
|
| + track_2->Start();
|
|
|
| // Verify the data flow by connecting the |sink_2| to |track_2|.
|
| scoped_ptr<MockMediaStreamAudioSink> sink_2(new MockMediaStreamAudioSink());
|
| @@ -519,11 +471,12 @@
|
| // Create a capturer with new source which works with the format above.
|
| MockConstraintFactory factory;
|
| factory.DisableDefaultAudioConstraints();
|
| - scoped_ptr<WebRtcAudioCapturer> capturer(WebRtcAudioCapturer::CreateCapturer(
|
| - -1,
|
| - StreamDeviceInfo(MEDIA_DEVICE_AUDIO_CAPTURE, "", "", params.sample_rate(),
|
| - params.channel_layout(), params.frames_per_buffer()),
|
| - factory.CreateWebMediaConstraints(), NULL, NULL));
|
| + scoped_refptr<WebRtcAudioCapturer> capturer(
|
| + WebRtcAudioCapturer::CreateCapturer(
|
| + -1, StreamDeviceInfo(MEDIA_DEVICE_AUDIO_CAPTURE, "", "",
|
| + params.sample_rate(), params.channel_layout(),
|
| + params.frames_per_buffer()),
|
| + factory.CreateWebMediaConstraints(), NULL, NULL));
|
| scoped_refptr<MockCapturerSource> source(
|
| new MockCapturerSource(capturer.get()));
|
| EXPECT_CALL(*source.get(), OnInitialize(_, capturer.get(), -1));
|
| @@ -535,12 +488,8 @@
|
| scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter(
|
| WebRtcLocalAudioTrackAdapter::Create(std::string(), NULL));
|
| scoped_ptr<WebRtcLocalAudioTrack> track(
|
| - new WebRtcLocalAudioTrack(adapter.get()));
|
| - track->Start(
|
| - base::Bind(&MediaStreamAudioSource::StopAudioDeliveryTo,
|
| - MediaStreamAudioSource::From(blink_source_)->GetWeakPtr(),
|
| - track.get()));
|
| - capturer->AddTrack(track.get());
|
| + new WebRtcLocalAudioTrack(adapter.get(), capturer, NULL));
|
| + track->Start();
|
|
|
| // Verify the data flow by connecting the |sink| to |track|.
|
| scoped_ptr<MockMediaStreamAudioSink> sink(new MockMediaStreamAudioSink());
|
|
|