| Index: talk/media/webrtc/webrtcvideoengine2_unittest.cc
|
| diff --git a/talk/media/webrtc/webrtcvideoengine2_unittest.cc b/talk/media/webrtc/webrtcvideoengine2_unittest.cc
|
| index 257c5484eaa7a2016ad6306a2562edd5a116ea19..df308cb4d0b15dd6ef9f26a51d1f8272a837307c 100644
|
| --- a/talk/media/webrtc/webrtcvideoengine2_unittest.cc
|
| +++ b/talk/media/webrtc/webrtcvideoengine2_unittest.cc
|
| @@ -110,7 +110,8 @@ class WebRtcVideoEngine2Test : public ::testing::Test {
|
| public:
|
| WebRtcVideoEngine2Test() : WebRtcVideoEngine2Test(nullptr) {}
|
| WebRtcVideoEngine2Test(WebRtcVoiceEngine* voice_engine)
|
| - : engine_(voice_engine) {
|
| + : call_(webrtc::Call::Create(webrtc::Call::Config())),
|
| + engine_() {
|
| std::vector<VideoCodec> engine_codecs = engine_.codecs();
|
| DCHECK(!engine_codecs.empty());
|
| bool codec_set = false;
|
| @@ -135,21 +136,6 @@ class WebRtcVideoEngine2Test : public ::testing::Test {
|
| }
|
|
|
| protected:
|
| - class FakeCallFactory : public WebRtcCallFactory {
|
| - public:
|
| - FakeCallFactory() : fake_call_(NULL) {}
|
| - FakeCall* GetCall() { return fake_call_; }
|
| -
|
| - private:
|
| - webrtc::Call* CreateCall(const webrtc::Call::Config& config) override {
|
| - DCHECK(fake_call_ == NULL);
|
| - fake_call_ = new FakeCall(config);
|
| - return fake_call_;
|
| - }
|
| -
|
| - FakeCall* fake_call_;
|
| - };
|
| -
|
| VideoMediaChannel* SetUpForExternalEncoderFactory(
|
| cricket::WebRtcVideoEncoderFactory* encoder_factory,
|
| const std::vector<VideoCodec>& codecs);
|
| @@ -160,6 +146,7 @@ class WebRtcVideoEngine2Test : public ::testing::Test {
|
|
|
| // Used in WebRtcVideoEngine2VoiceTest, but defined here so it's properly
|
| // initialized when the constructor is called.
|
| + rtc::scoped_ptr<webrtc::Call> call_;
|
| WebRtcVoiceEngine voice_engine_;
|
| WebRtcVideoEngine2 engine_;
|
| VideoCodec default_codec_;
|
| @@ -350,7 +337,7 @@ TEST_F(WebRtcVideoEngine2Test, CVOSetHeaderExtensionAfterCapturer) {
|
| TEST_F(WebRtcVideoEngine2Test, SetSendFailsBeforeSettingCodecs) {
|
| engine_.Init();
|
| rtc::scoped_ptr<VideoMediaChannel> channel(
|
| - engine_.CreateChannel(cricket::VideoOptions(), NULL));
|
| + engine_.CreateChannel(call_.get(), cricket::VideoOptions()));
|
|
|
| EXPECT_TRUE(channel->AddSendStream(StreamParams::CreateLegacy(123)));
|
|
|
| @@ -363,7 +350,7 @@ TEST_F(WebRtcVideoEngine2Test, SetSendFailsBeforeSettingCodecs) {
|
| TEST_F(WebRtcVideoEngine2Test, GetStatsWithoutSendCodecsSetDoesNotCrash) {
|
| engine_.Init();
|
| rtc::scoped_ptr<VideoMediaChannel> channel(
|
| - engine_.CreateChannel(cricket::VideoOptions(), NULL));
|
| + engine_.CreateChannel(call_.get(), cricket::VideoOptions()));
|
| EXPECT_TRUE(channel->AddSendStream(StreamParams::CreateLegacy(123)));
|
| VideoMediaInfo info;
|
| channel->GetStats(&info);
|
| @@ -425,8 +412,8 @@ TEST_F(WebRtcVideoEngine2Test, PropagatesInputFrameTimestamp) {
|
| std::vector<cricket::VideoCodec> codecs;
|
| codecs.push_back(kVp8Codec);
|
|
|
| - FakeCallFactory factory;
|
| - engine_.SetCallFactory(&factory);
|
| + FakeCall* fake_call = new FakeCall(webrtc::Call::Config());
|
| + call_.reset(fake_call);
|
| rtc::scoped_ptr<VideoMediaChannel> channel(
|
| SetUpForExternalEncoderFactory(&encoder_factory, codecs));
|
|
|
| @@ -440,8 +427,7 @@ TEST_F(WebRtcVideoEngine2Test, PropagatesInputFrameTimestamp) {
|
| cricket::FOURCC_I420));
|
| channel->SetSend(true);
|
|
|
| - FakeCall* call = factory.GetCall();
|
| - std::vector<FakeVideoSendStream*> streams = call->GetVideoSendStreams();
|
| + std::vector<FakeVideoSendStream*> streams = fake_call->GetVideoSendStreams();
|
| FakeVideoSendStream* stream = streams[0];
|
|
|
| int64_t timestamp;
|
| @@ -490,7 +476,7 @@ VideoMediaChannel* WebRtcVideoEngine2Test::SetUpForExternalEncoderFactory(
|
| engine_.Init();
|
|
|
| VideoMediaChannel* channel =
|
| - engine_.CreateChannel(cricket::VideoOptions(), NULL);
|
| + engine_.CreateChannel(call_.get(), cricket::VideoOptions());
|
| EXPECT_TRUE(channel->SetSendCodecs(codecs));
|
|
|
| return channel;
|
| @@ -503,7 +489,7 @@ VideoMediaChannel* WebRtcVideoEngine2Test::SetUpForExternalDecoderFactory(
|
| engine_.Init();
|
|
|
| VideoMediaChannel* channel =
|
| - engine_.CreateChannel(cricket::VideoOptions(), NULL);
|
| + engine_.CreateChannel(call_.get(), cricket::VideoOptions());
|
| EXPECT_TRUE(channel->SetRecvCodecs(codecs));
|
|
|
| return channel;
|
| @@ -855,27 +841,29 @@ TEST_F(WebRtcVideoChannel2BaseTest, DISABLED_SendVp8HdAndReceiveAdaptedVp8Vga) {
|
| }
|
|
|
| class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test,
|
| - public WebRtcCallFactory {
|
| + public webrtc::LoadObserver {
|
| public:
|
| - WebRtcVideoChannel2Test() : fake_call_(NULL), last_ssrc_(0) {}
|
| + WebRtcVideoChannel2Test() : last_ssrc_(0) {}
|
| void SetUp() override {
|
| - engine_.SetCallFactory(this);
|
| + webrtc::Call::Config call_config;
|
| + call_config.overuse_callback = this;
|
| + fake_call_.reset(new FakeCall(call_config));
|
| engine_.Init();
|
| - channel_.reset(engine_.CreateChannel(cricket::VideoOptions(), NULL));
|
| - ASSERT_TRUE(fake_call_ != NULL) << "Call not created through factory.";
|
| + channel_.reset(
|
| + engine_.CreateChannel(fake_call_.get(), cricket::VideoOptions()));
|
| last_ssrc_ = 123;
|
| ASSERT_TRUE(channel_->SetSendCodecs(engine_.codecs()));
|
| }
|
|
|
| protected:
|
| - virtual std::vector<cricket::VideoCodec> GetCodecs() {
|
| - return engine_.codecs();
|
| + void OnLoadUpdate(Load load) override {
|
| + ASSERT_TRUE(channel_.get());
|
| + static_cast<cricket::WebRtcVideoChannel2*>(
|
| + channel_.get())->OnLoadUpdate(load);
|
| }
|
|
|
| - webrtc::Call* CreateCall(const webrtc::Call::Config& config) override {
|
| - DCHECK(fake_call_ == NULL);
|
| - fake_call_ = new FakeCall(config);
|
| - return fake_call_;
|
| + virtual std::vector<cricket::VideoCodec> GetCodecs() {
|
| + return engine_.codecs();
|
| }
|
|
|
| FakeVideoSendStream* AddSendStream() {
|
| @@ -931,7 +919,6 @@ class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test,
|
|
|
| void TestSetSendRtpHeaderExtensions(const std::string& cricket_ext,
|
| const std::string& webrtc_ext) {
|
| - FakeCall* call = fake_call_;
|
| // Enable extension.
|
| const int id = 1;
|
| std::vector<cricket::RtpHeaderExtension> extensions;
|
| @@ -956,14 +943,14 @@ class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test,
|
| // Verify that existing RTP header extensions can be removed.
|
| std::vector<cricket::RtpHeaderExtension> empty_extensions;
|
| EXPECT_TRUE(channel_->SetSendRtpHeaderExtensions(empty_extensions));
|
| - ASSERT_EQ(1u, call->GetVideoSendStreams().size());
|
| - send_stream = call->GetVideoSendStreams()[0];
|
| + ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size());
|
| + send_stream = fake_call_->GetVideoSendStreams()[0];
|
| EXPECT_TRUE(send_stream->GetConfig().rtp.extensions.empty());
|
|
|
| // Verify that adding receive RTP header extensions adds them for existing
|
| // streams.
|
| EXPECT_TRUE(channel_->SetSendRtpHeaderExtensions(extensions));
|
| - send_stream = call->GetVideoSendStreams()[0];
|
| + send_stream = fake_call_->GetVideoSendStreams()[0];
|
| ASSERT_EQ(1u, send_stream->GetConfig().rtp.extensions.size());
|
| EXPECT_EQ(id, send_stream->GetConfig().rtp.extensions[0].id);
|
| EXPECT_EQ(webrtc_ext, send_stream->GetConfig().rtp.extensions[0].name);
|
| @@ -971,7 +958,6 @@ class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test,
|
|
|
| void TestSetRecvRtpHeaderExtensions(const std::string& cricket_ext,
|
| const std::string& webrtc_ext) {
|
| - FakeCall* call = fake_call_;
|
| // Enable extension.
|
| const int id = 1;
|
| std::vector<cricket::RtpHeaderExtension> extensions;
|
| @@ -997,14 +983,14 @@ class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test,
|
| // Verify that existing RTP header extensions can be removed.
|
| std::vector<cricket::RtpHeaderExtension> empty_extensions;
|
| EXPECT_TRUE(channel_->SetRecvRtpHeaderExtensions(empty_extensions));
|
| - ASSERT_EQ(1u, call->GetVideoReceiveStreams().size());
|
| - recv_stream = call->GetVideoReceiveStreams()[0];
|
| + ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size());
|
| + recv_stream = fake_call_->GetVideoReceiveStreams()[0];
|
| EXPECT_TRUE(recv_stream->GetConfig().rtp.extensions.empty());
|
|
|
| // Verify that adding receive RTP header extensions adds them for existing
|
| // streams.
|
| EXPECT_TRUE(channel_->SetRecvRtpHeaderExtensions(extensions));
|
| - recv_stream = call->GetVideoReceiveStreams()[0];
|
| + recv_stream = fake_call_->GetVideoReceiveStreams()[0];
|
| ASSERT_EQ(1u, recv_stream->GetConfig().rtp.extensions.size());
|
| EXPECT_EQ(id, recv_stream->GetConfig().rtp.extensions[0].id);
|
| EXPECT_EQ(webrtc_ext, recv_stream->GetConfig().rtp.extensions[0].name);
|
| @@ -1035,7 +1021,7 @@ class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test,
|
| }
|
| }
|
|
|
| - FakeCall* fake_call_;
|
| + rtc::scoped_ptr<FakeCall> fake_call_;
|
| rtc::scoped_ptr<VideoMediaChannel> channel_;
|
| uint32 last_ssrc_;
|
| };
|
| @@ -2769,7 +2755,7 @@ TEST_F(WebRtcVideoChannel2Test, ConfiguresLocalSsrcOnExistingReceivers) {
|
|
|
| class WebRtcVideoEngine2SimulcastTest : public testing::Test {
|
| public:
|
| - WebRtcVideoEngine2SimulcastTest() : engine_(nullptr) {}
|
| + WebRtcVideoEngine2SimulcastTest() {}
|
|
|
| protected:
|
| WebRtcVideoEngine2 engine_;
|
| @@ -2920,26 +2906,17 @@ TEST_F(WebRtcVideoEngine2SimulcastTest,
|
| FAIL() << "Not implemented.";
|
| }
|
|
|
| -class WebRtcVideoChannel2SimulcastTest : public WebRtcVideoEngine2SimulcastTest,
|
| - public WebRtcCallFactory {
|
| +class WebRtcVideoChannel2SimulcastTest : public testing::Test {
|
| public:
|
| - WebRtcVideoChannel2SimulcastTest() : fake_call_(NULL) {}
|
| + WebRtcVideoChannel2SimulcastTest() : fake_call_(webrtc::Call::Config()) {}
|
|
|
| void SetUp() override {
|
| - engine_.SetCallFactory(this);
|
| engine_.Init();
|
| - channel_.reset(engine_.CreateChannel(VideoOptions(), NULL));
|
| - ASSERT_TRUE(fake_call_ != NULL) << "Call not created through factory.";
|
| + channel_.reset(engine_.CreateChannel(&fake_call_, VideoOptions()));
|
| last_ssrc_ = 123;
|
| }
|
|
|
| protected:
|
| - webrtc::Call* CreateCall(const webrtc::Call::Config& config) override {
|
| - DCHECK(fake_call_ == NULL);
|
| - fake_call_ = new FakeCall(config);
|
| - return fake_call_;
|
| - }
|
| -
|
| void VerifySimulcastSettings(const VideoCodec& codec,
|
| VideoOptions::HighestBitrate bitrate_mode,
|
| size_t num_configured_streams,
|
| @@ -3033,16 +3010,16 @@ class WebRtcVideoChannel2SimulcastTest : public WebRtcVideoEngine2SimulcastTest,
|
|
|
| FakeVideoSendStream* AddSendStream(const StreamParams& sp) {
|
| size_t num_streams =
|
| - fake_call_->GetVideoSendStreams().size();
|
| + fake_call_.GetVideoSendStreams().size();
|
| EXPECT_TRUE(channel_->AddSendStream(sp));
|
| std::vector<FakeVideoSendStream*> streams =
|
| - fake_call_->GetVideoSendStreams();
|
| + fake_call_.GetVideoSendStreams();
|
| EXPECT_EQ(num_streams + 1, streams.size());
|
| return streams[streams.size() - 1];
|
| }
|
|
|
| std::vector<FakeVideoSendStream*> GetFakeSendStreams() {
|
| - return fake_call_->GetVideoSendStreams();
|
| + return fake_call_.GetVideoSendStreams();
|
| }
|
|
|
| FakeVideoReceiveStream* AddRecvStream() {
|
| @@ -3051,15 +3028,16 @@ class WebRtcVideoChannel2SimulcastTest : public WebRtcVideoEngine2SimulcastTest,
|
|
|
| FakeVideoReceiveStream* AddRecvStream(const StreamParams& sp) {
|
| size_t num_streams =
|
| - fake_call_->GetVideoReceiveStreams().size();
|
| + fake_call_.GetVideoReceiveStreams().size();
|
| EXPECT_TRUE(channel_->AddRecvStream(sp));
|
| std::vector<FakeVideoReceiveStream*> streams =
|
| - fake_call_->GetVideoReceiveStreams();
|
| + fake_call_.GetVideoReceiveStreams();
|
| EXPECT_EQ(num_streams + 1, streams.size());
|
| return streams[streams.size() - 1];
|
| }
|
|
|
| - FakeCall* fake_call_;
|
| + FakeCall fake_call_;
|
| + WebRtcVideoEngine2 engine_;
|
| rtc::scoped_ptr<VideoMediaChannel> channel_;
|
| uint32 last_ssrc_;
|
| };
|
|
|