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

Side by Side Diff: webrtc/media/engine/webrtcvideoengine2_unittest.cc

Issue 2353033005: Refactoring: move ownership of RtcEventLog from Call to PeerConnection (Closed)
Patch Set: Updated unit tests to use RtcEventLogNullImpl. Created 4 years, 2 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #include <algorithm> 11 #include <algorithm>
12 #include <map> 12 #include <map>
13 #include <memory> 13 #include <memory>
14 #include <vector> 14 #include <vector>
15 15
16 #include "webrtc/base/arraysize.h" 16 #include "webrtc/base/arraysize.h"
17 #include "webrtc/base/gunit.h" 17 #include "webrtc/base/gunit.h"
18 #include "webrtc/base/stringutils.h" 18 #include "webrtc/base/stringutils.h"
19 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
19 #include "webrtc/media/base/testutils.h" 20 #include "webrtc/media/base/testutils.h"
20 #include "webrtc/media/base/videoengine_unittest.h" 21 #include "webrtc/media/base/videoengine_unittest.h"
21 #include "webrtc/media/engine/fakewebrtccall.h" 22 #include "webrtc/media/engine/fakewebrtccall.h"
22 #include "webrtc/media/engine/fakewebrtcvideoengine.h" 23 #include "webrtc/media/engine/fakewebrtcvideoengine.h"
23 #include "webrtc/media/engine/simulcast.h" 24 #include "webrtc/media/engine/simulcast.h"
24 #include "webrtc/media/engine/webrtcvideochannelfactory.h" 25 #include "webrtc/media/engine/webrtcvideochannelfactory.h"
25 #include "webrtc/media/engine/webrtcvideoengine2.h" 26 #include "webrtc/media/engine/webrtcvideoengine2.h"
26 #include "webrtc/media/engine/webrtcvoiceengine.h" 27 #include "webrtc/media/engine/webrtcvoiceengine.h"
27 #include "webrtc/test/field_trial.h" 28 #include "webrtc/test/field_trial.h"
28 #include "webrtc/video_encoder.h" 29 #include "webrtc/video_encoder.h"
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 } 90 }
90 } 91 }
91 } // namespace 92 } // namespace
92 93
93 namespace cricket { 94 namespace cricket {
94 class WebRtcVideoEngine2Test : public ::testing::Test { 95 class WebRtcVideoEngine2Test : public ::testing::Test {
95 public: 96 public:
96 WebRtcVideoEngine2Test() : WebRtcVideoEngine2Test("") {} 97 WebRtcVideoEngine2Test() : WebRtcVideoEngine2Test("") {}
97 explicit WebRtcVideoEngine2Test(const char* field_trials) 98 explicit WebRtcVideoEngine2Test(const char* field_trials)
98 : override_field_trials_(field_trials), 99 : override_field_trials_(field_trials),
99 call_(webrtc::Call::Create(webrtc::Call::Config())), 100 call_(webrtc::Call::Create(ConfigWithRtcEventLog(&event_log_))),
100 engine_() { 101 engine_() {
101 std::vector<VideoCodec> engine_codecs = engine_.codecs(); 102 std::vector<VideoCodec> engine_codecs = engine_.codecs();
102 RTC_DCHECK(!engine_codecs.empty()); 103 RTC_DCHECK(!engine_codecs.empty());
103 bool codec_set = false; 104 bool codec_set = false;
104 for (size_t i = 0; i < engine_codecs.size(); ++i) { 105 for (size_t i = 0; i < engine_codecs.size(); ++i) {
105 if (engine_codecs[i].name == "red") { 106 if (engine_codecs[i].name == "red") {
106 default_red_codec_ = engine_codecs[i]; 107 default_red_codec_ = engine_codecs[i];
107 } else if (engine_codecs[i].name == "ulpfec") { 108 } else if (engine_codecs[i].name == "ulpfec") {
108 default_ulpfec_codec_ = engine_codecs[i]; 109 default_ulpfec_codec_ = engine_codecs[i];
109 } else if (engine_codecs[i].name == "rtx") { 110 } else if (engine_codecs[i].name == "rtx") {
(...skipping 16 matching lines...) Expand all
126 cricket::WebRtcVideoEncoderFactory* encoder_factory, 127 cricket::WebRtcVideoEncoderFactory* encoder_factory,
127 const std::vector<VideoCodec>& codecs); 128 const std::vector<VideoCodec>& codecs);
128 129
129 VideoMediaChannel* SetUpForExternalDecoderFactory( 130 VideoMediaChannel* SetUpForExternalDecoderFactory(
130 cricket::WebRtcVideoDecoderFactory* decoder_factory, 131 cricket::WebRtcVideoDecoderFactory* decoder_factory,
131 const std::vector<VideoCodec>& codecs); 132 const std::vector<VideoCodec>& codecs);
132 133
133 void TestExtendedEncoderOveruse(bool use_external_encoder); 134 void TestExtendedEncoderOveruse(bool use_external_encoder);
134 135
135 webrtc::test::ScopedFieldTrials override_field_trials_; 136 webrtc::test::ScopedFieldTrials override_field_trials_;
137 webrtc::RtcEventLogNullImpl event_log_;
136 // Used in WebRtcVideoEngine2VoiceTest, but defined here so it's properly 138 // Used in WebRtcVideoEngine2VoiceTest, but defined here so it's properly
137 // initialized when the constructor is called. 139 // initialized when the constructor is called.
138 std::unique_ptr<webrtc::Call> call_; 140 std::unique_ptr<webrtc::Call> call_;
139 WebRtcVideoEngine2 engine_; 141 WebRtcVideoEngine2 engine_;
140 VideoCodec default_codec_; 142 VideoCodec default_codec_;
141 VideoCodec default_red_codec_; 143 VideoCodec default_red_codec_;
142 VideoCodec default_ulpfec_codec_; 144 VideoCodec default_ulpfec_codec_;
143 std::map<int, int> default_apt_rtx_types_; 145 std::map<int, int> default_apt_rtx_types_;
144 }; 146 };
145 147
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 })); 407 }));
406 } 408 }
407 409
408 void WebRtcVideoEngine2Test::TestExtendedEncoderOveruse( 410 void WebRtcVideoEngine2Test::TestExtendedEncoderOveruse(
409 bool use_external_encoder) { 411 bool use_external_encoder) {
410 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 412 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
411 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8"); 413 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8");
412 cricket::VideoSendParameters parameters; 414 cricket::VideoSendParameters parameters;
413 parameters.codecs.push_back(kVp8Codec); 415 parameters.codecs.push_back(kVp8Codec);
414 std::unique_ptr<VideoMediaChannel> channel; 416 std::unique_ptr<VideoMediaChannel> channel;
415 FakeCall* fake_call = new FakeCall(webrtc::Call::Config()); 417 FakeCall* fake_call = new FakeCall(ConfigWithRtcEventLog(&event_log_));
416 call_.reset(fake_call); 418 call_.reset(fake_call);
417 if (use_external_encoder) { 419 if (use_external_encoder) {
418 channel.reset( 420 channel.reset(
419 SetUpForExternalEncoderFactory(&encoder_factory, parameters.codecs)); 421 SetUpForExternalEncoderFactory(&encoder_factory, parameters.codecs));
420 } else { 422 } else {
421 engine_.Init(); 423 engine_.Init();
422 channel.reset( 424 channel.reset(
423 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); 425 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions()));
424 } 426 }
425 ASSERT_TRUE( 427 ASSERT_TRUE(
(...skipping 29 matching lines...) Expand all
455 EXPECT_TRUE( 457 EXPECT_TRUE(
456 channel->AddRecvStream(cricket::StreamParams::CreateLegacy(kSsrc))); 458 channel->AddRecvStream(cricket::StreamParams::CreateLegacy(kSsrc)));
457 } 459 }
458 #endif // !defined(RTC_DISABLE_VP9) 460 #endif // !defined(RTC_DISABLE_VP9)
459 461
460 TEST_F(WebRtcVideoEngine2Test, PropagatesInputFrameTimestamp) { 462 TEST_F(WebRtcVideoEngine2Test, PropagatesInputFrameTimestamp) {
461 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 463 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
462 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8"); 464 encoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8, "VP8");
463 std::vector<cricket::VideoCodec> codecs; 465 std::vector<cricket::VideoCodec> codecs;
464 codecs.push_back(kVp8Codec); 466 codecs.push_back(kVp8Codec);
465 467 FakeCall* fake_call = new FakeCall(ConfigWithRtcEventLog(&event_log_));
466 FakeCall* fake_call = new FakeCall(webrtc::Call::Config());
467 call_.reset(fake_call); 468 call_.reset(fake_call);
468 std::unique_ptr<VideoMediaChannel> channel( 469 std::unique_ptr<VideoMediaChannel> channel(
469 SetUpForExternalEncoderFactory(&encoder_factory, codecs)); 470 SetUpForExternalEncoderFactory(&encoder_factory, codecs));
470 471
471 EXPECT_TRUE( 472 EXPECT_TRUE(
472 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc))); 473 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc)));
473 474
474 FakeVideoCapturer capturer; 475 FakeVideoCapturer capturer;
475 EXPECT_TRUE(channel->SetVideoSend(kSsrc, true, nullptr, &capturer)); 476 EXPECT_TRUE(channel->SetVideoSend(kSsrc, true, nullptr, &capturer));
476 capturer.Start(cricket::VideoFormat(1280, 720, 477 capturer.Start(cricket::VideoFormat(1280, 720,
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
873 codec.params[kCodecParamStartBitrate] = "1000000"; 874 codec.params[kCodecParamStartBitrate] = "1000000";
874 Base::TwoStreamsSendAndReceive(codec); 875 Base::TwoStreamsSendAndReceive(codec);
875 } 876 }
876 877
877 class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test { 878 class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test {
878 public: 879 public:
879 WebRtcVideoChannel2Test() : WebRtcVideoChannel2Test("") {} 880 WebRtcVideoChannel2Test() : WebRtcVideoChannel2Test("") {}
880 explicit WebRtcVideoChannel2Test(const char* field_trials) 881 explicit WebRtcVideoChannel2Test(const char* field_trials)
881 : WebRtcVideoEngine2Test(field_trials), last_ssrc_(0) {} 882 : WebRtcVideoEngine2Test(field_trials), last_ssrc_(0) {}
882 void SetUp() override { 883 void SetUp() override {
883 fake_call_.reset(new FakeCall(webrtc::Call::Config())); 884 fake_call_.reset(new FakeCall(ConfigWithRtcEventLog(&event_log_)));
884 engine_.Init(); 885 engine_.Init();
885 channel_.reset( 886 channel_.reset(
886 engine_.CreateChannel(fake_call_.get(), MediaConfig(), VideoOptions())); 887 engine_.CreateChannel(fake_call_.get(), MediaConfig(), VideoOptions()));
887 last_ssrc_ = 123; 888 last_ssrc_ = 123;
888 send_parameters_.codecs = engine_.codecs(); 889 send_parameters_.codecs = engine_.codecs();
889 recv_parameters_.codecs = engine_.codecs(); 890 recv_parameters_.codecs = engine_.codecs();
890 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_)); 891 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_));
891 } 892 }
892 893
893 protected: 894 protected:
(...skipping 2821 matching lines...) Expand 10 before | Expand all | Expand 10 after
3715 TEST_F(WebRtcVideoChannel2Test, ConfiguresLocalSsrc) { 3716 TEST_F(WebRtcVideoChannel2Test, ConfiguresLocalSsrc) {
3716 TestReceiverLocalSsrcConfiguration(false); 3717 TestReceiverLocalSsrcConfiguration(false);
3717 } 3718 }
3718 3719
3719 TEST_F(WebRtcVideoChannel2Test, ConfiguresLocalSsrcOnExistingReceivers) { 3720 TEST_F(WebRtcVideoChannel2Test, ConfiguresLocalSsrcOnExistingReceivers) {
3720 TestReceiverLocalSsrcConfiguration(true); 3721 TestReceiverLocalSsrcConfiguration(true);
3721 } 3722 }
3722 3723
3723 class WebRtcVideoChannel2SimulcastTest : public testing::Test { 3724 class WebRtcVideoChannel2SimulcastTest : public testing::Test {
3724 public: 3725 public:
3725 WebRtcVideoChannel2SimulcastTest() : fake_call_(webrtc::Call::Config()) {} 3726 WebRtcVideoChannel2SimulcastTest()
3727 : fake_call_(ConfigWithRtcEventLog(&event_log_)) {}
3726 3728
3727 void SetUp() override { 3729 void SetUp() override {
3728 engine_.Init(); 3730 engine_.Init();
3729 channel_.reset( 3731 channel_.reset(
3730 engine_.CreateChannel(&fake_call_, MediaConfig(), VideoOptions())); 3732 engine_.CreateChannel(&fake_call_, MediaConfig(), VideoOptions()));
3731 last_ssrc_ = 123; 3733 last_ssrc_ = 123;
3732 } 3734 }
3733 3735
3734 protected: 3736 protected:
3735 void VerifySimulcastSettings(const VideoCodec& codec, 3737 void VerifySimulcastSettings(const VideoCodec& codec,
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
3830 FakeVideoReceiveStream* AddRecvStream(const StreamParams& sp) { 3832 FakeVideoReceiveStream* AddRecvStream(const StreamParams& sp) {
3831 size_t num_streams = 3833 size_t num_streams =
3832 fake_call_.GetVideoReceiveStreams().size(); 3834 fake_call_.GetVideoReceiveStreams().size();
3833 EXPECT_TRUE(channel_->AddRecvStream(sp)); 3835 EXPECT_TRUE(channel_->AddRecvStream(sp));
3834 std::vector<FakeVideoReceiveStream*> streams = 3836 std::vector<FakeVideoReceiveStream*> streams =
3835 fake_call_.GetVideoReceiveStreams(); 3837 fake_call_.GetVideoReceiveStreams();
3836 EXPECT_EQ(num_streams + 1, streams.size()); 3838 EXPECT_EQ(num_streams + 1, streams.size());
3837 return streams[streams.size() - 1]; 3839 return streams[streams.size() - 1];
3838 } 3840 }
3839 3841
3842 webrtc::RtcEventLogNullImpl event_log_;
3840 FakeCall fake_call_; 3843 FakeCall fake_call_;
3841 WebRtcVideoEngine2 engine_; 3844 WebRtcVideoEngine2 engine_;
3842 std::unique_ptr<VideoMediaChannel> channel_; 3845 std::unique_ptr<VideoMediaChannel> channel_;
3843 uint32_t last_ssrc_; 3846 uint32_t last_ssrc_;
3844 }; 3847 };
3845 3848
3846 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith2SimulcastStreams) { 3849 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith2SimulcastStreams) {
3847 VerifySimulcastSettings(kVp8Codec, 2, 2); 3850 VerifySimulcastSettings(kVp8Codec, 2, 2);
3848 } 3851 }
3849 3852
3850 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith3SimulcastStreams) { 3853 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWith3SimulcastStreams) {
3851 VerifySimulcastSettings(kVp8Codec720p, 3, 3); 3854 VerifySimulcastSettings(kVp8Codec720p, 3, 3);
3852 } 3855 }
3853 3856
3854 // Test that we normalize send codec format size in simulcast. 3857 // Test that we normalize send codec format size in simulcast.
3855 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWithOddSizeInSimulcast) { 3858 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWithOddSizeInSimulcast) {
3856 cricket::VideoCodec codec(kVp8Codec270p); 3859 cricket::VideoCodec codec(kVp8Codec270p);
3857 codec.width += 1; 3860 codec.width += 1;
3858 codec.height += 1; 3861 codec.height += 1;
3859 VerifySimulcastSettings(codec, 2, 2); 3862 VerifySimulcastSettings(codec, 2, 2);
3860 } 3863 }
3861 } // namespace cricket 3864 } // namespace cricket
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698