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

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

Issue 2974383002: Prefer external video codecs over internal in SDP (Closed)
Patch Set: Fix tear down order Created 3 years, 5 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
« no previous file with comments | « webrtc/media/engine/webrtcvideoengine.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
(...skipping 801 matching lines...) Expand 10 before | Expand all | Expand 10 after
812 812
813 // Test that external codecs are added to the end of the supported codec list. 813 // Test that external codecs are added to the end of the supported codec list.
814 TEST_F(WebRtcVideoEngineTest, ReportSupportedExternalCodecs) { 814 TEST_F(WebRtcVideoEngineTest, ReportSupportedExternalCodecs) {
815 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 815 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
816 encoder_factory.AddSupportedVideoCodecType("FakeExternalCodec"); 816 encoder_factory.AddSupportedVideoCodecType("FakeExternalCodec");
817 engine_.SetExternalEncoderFactory(&encoder_factory); 817 engine_.SetExternalEncoderFactory(&encoder_factory);
818 engine_.Init(); 818 engine_.Init();
819 819
820 std::vector<cricket::VideoCodec> codecs(engine_.codecs()); 820 std::vector<cricket::VideoCodec> codecs(engine_.codecs());
821 ASSERT_GE(codecs.size(), 2u); 821 ASSERT_GE(codecs.size(), 2u);
822 cricket::VideoCodec internal_codec = codecs.front(); 822 cricket::VideoCodec external_codec = codecs[0];
823 cricket::VideoCodec external_codec = codecs.back(); 823 cricket::VideoCodec internal_codec = codecs[1];
824 824
825 // The external codec will appear last in the vector. 825 // The external codec will appear first in the vector.
826 EXPECT_EQ("FakeExternalCodec", external_codec.name);
826 EXPECT_EQ("VP8", internal_codec.name); 827 EXPECT_EQ("VP8", internal_codec.name);
827 EXPECT_EQ("FakeExternalCodec", external_codec.name);
828 } 828 }
829 829
830 // Test that an external codec that was added after the engine was initialized 830 // Test that an external codec that was added after the engine was initialized
831 // does show up in the codec list after it was added. 831 // does show up in the codec list after it was added.
832 TEST_F(WebRtcVideoEngineTest, ReportSupportedExternalCodecsWithAddedCodec) { 832 TEST_F(WebRtcVideoEngineTest, ReportSupportedExternalCodecsWithAddedCodec) {
833 // Set up external encoder factory with first codec, and initialize engine. 833 // Set up external encoder factory with first codec, and initialize engine.
834 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; 834 cricket::FakeWebRtcVideoEncoderFactory encoder_factory;
835 encoder_factory.AddSupportedVideoCodecType("FakeExternalCodec1"); 835 encoder_factory.AddSupportedVideoCodecType("FakeExternalCodec1");
836 engine_.SetExternalEncoderFactory(&encoder_factory); 836 engine_.SetExternalEncoderFactory(&encoder_factory);
837 engine_.Init(); 837 engine_.Init();
838 838
839 // The first external codec will appear last in the vector. 839 // The first external codec will appear first in the vector.
840 std::vector<cricket::VideoCodec> codecs_before(engine_.codecs()); 840 std::vector<cricket::VideoCodec> codecs_before(engine_.codecs());
841 EXPECT_EQ("FakeExternalCodec1", codecs_before.back().name); 841 EXPECT_EQ("FakeExternalCodec1", codecs_before.front().name);
842 842
843 // Add second codec. 843 // Add second codec.
844 encoder_factory.AddSupportedVideoCodecType("FakeExternalCodec2"); 844 encoder_factory.AddSupportedVideoCodecType("FakeExternalCodec2");
845 std::vector<cricket::VideoCodec> codecs_after(engine_.codecs()); 845 std::vector<cricket::VideoCodec> codecs_after(engine_.codecs());
846 EXPECT_EQ(codecs_before.size() + 1, codecs_after.size()); 846 EXPECT_EQ(codecs_before.size() + 1, codecs_after.size());
847 EXPECT_EQ("FakeExternalCodec2", codecs_after.back().name); 847 EXPECT_EQ("FakeExternalCodec2", codecs_after[1].name);
848 } 848 }
849 849
850 TEST_F(WebRtcVideoEngineTest, RegisterExternalDecodersIfSupported) { 850 TEST_F(WebRtcVideoEngineTest, RegisterExternalDecodersIfSupported) {
851 cricket::FakeWebRtcVideoDecoderFactory decoder_factory; 851 cricket::FakeWebRtcVideoDecoderFactory decoder_factory;
852 decoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8); 852 decoder_factory.AddSupportedVideoCodecType(webrtc::kVideoCodecVP8);
853 cricket::VideoRecvParameters parameters; 853 cricket::VideoRecvParameters parameters;
854 parameters.codecs.push_back(GetEngineCodec("VP8")); 854 parameters.codecs.push_back(GetEngineCodec("VP8"));
855 855
856 std::unique_ptr<VideoMediaChannel> channel( 856 std::unique_ptr<VideoMediaChannel> channel(
857 SetUpForExternalDecoderFactory(&decoder_factory, parameters.codecs)); 857 SetUpForExternalDecoderFactory(&decoder_factory, parameters.codecs));
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
1059 engine_.Init(); 1059 engine_.Init();
1060 channel_.reset(engine_.CreateChannel(fake_call_.get(), GetMediaConfig(), 1060 channel_.reset(engine_.CreateChannel(fake_call_.get(), GetMediaConfig(),
1061 VideoOptions())); 1061 VideoOptions()));
1062 channel_->OnReadyToSend(true); 1062 channel_->OnReadyToSend(true);
1063 last_ssrc_ = 123; 1063 last_ssrc_ = 123;
1064 send_parameters_.codecs = engine_.codecs(); 1064 send_parameters_.codecs = engine_.codecs();
1065 recv_parameters_.codecs = engine_.codecs(); 1065 recv_parameters_.codecs = engine_.codecs();
1066 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_)); 1066 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_));
1067 } 1067 }
1068 1068
1069 void TearDown() override {
1070 channel_ = nullptr;
1071 fake_call_ = nullptr;
1072 }
1073
1069 protected: 1074 protected:
1070 FakeVideoSendStream* AddSendStream() { 1075 FakeVideoSendStream* AddSendStream() {
1071 return AddSendStream(StreamParams::CreateLegacy(++last_ssrc_)); 1076 return AddSendStream(StreamParams::CreateLegacy(++last_ssrc_));
1072 } 1077 }
1073 1078
1074 FakeVideoSendStream* AddSendStream(const StreamParams& sp) { 1079 FakeVideoSendStream* AddSendStream(const StreamParams& sp) {
1075 size_t num_streams = fake_call_->GetVideoSendStreams().size(); 1080 size_t num_streams = fake_call_->GetVideoSendStreams().size();
1076 EXPECT_TRUE(channel_->AddSendStream(sp)); 1081 EXPECT_TRUE(channel_->AddSendStream(sp));
1077 std::vector<FakeVideoSendStream*> streams = 1082 std::vector<FakeVideoSendStream*> streams =
1078 fake_call_->GetVideoSendStreams(); 1083 fake_call_->GetVideoSendStreams();
(...skipping 889 matching lines...) Expand 10 before | Expand all | Expand 10 after
1968 void SetUp() override { 1973 void SetUp() override {
1969 engine_.SetExternalEncoderFactory(&encoder_factory_); 1974 engine_.SetExternalEncoderFactory(&encoder_factory_);
1970 1975
1971 WebRtcVideoChannelTest::SetUp(); 1976 WebRtcVideoChannelTest::SetUp();
1972 } 1977 }
1973 1978
1974 void TearDown() override { 1979 void TearDown() override {
1975 // Remove references to encoder_factory_ since this will be destroyed 1980 // Remove references to encoder_factory_ since this will be destroyed
1976 // before channel_ and engine_. 1981 // before channel_ and engine_.
1977 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_)); 1982 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_));
1983
1984 WebRtcVideoChannelTest::TearDown();
1978 } 1985 }
1979 1986
1980 cricket::FakeWebRtcVideoEncoderFactory encoder_factory_; 1987 cricket::FakeWebRtcVideoEncoderFactory encoder_factory_;
1981 }; 1988 };
1982 1989
1983 TEST_F(Vp9SettingsTest, VerifyVp9SpecificSettings) { 1990 TEST_F(Vp9SettingsTest, VerifyVp9SpecificSettings) {
1984 cricket::VideoSendParameters parameters; 1991 cricket::VideoSendParameters parameters;
1985 parameters.codecs.push_back(GetEngineCodec("VP9")); 1992 parameters.codecs.push_back(GetEngineCodec("VP9"));
1986 ASSERT_TRUE(channel_->SetSendParameters(parameters)); 1993 ASSERT_TRUE(channel_->SetSendParameters(parameters));
1987 1994
(...skipping 2693 matching lines...) Expand 10 before | Expand all | Expand 10 after
4681 4688
4682 TEST_F(WebRtcVideoChannelSimulcastTest, 4689 TEST_F(WebRtcVideoChannelSimulcastTest,
4683 NoSimulcastScreenshareWithoutConference) { 4690 NoSimulcastScreenshareWithoutConference) {
4684 webrtc::test::ScopedFieldTrials override_field_trials_( 4691 webrtc::test::ScopedFieldTrials override_field_trials_(
4685 "WebRTC-SimulcastScreenshare/Enabled/"); 4692 "WebRTC-SimulcastScreenshare/Enabled/");
4686 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 1, true, 4693 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 1, true,
4687 false); 4694 false);
4688 } 4695 }
4689 4696
4690 } // namespace cricket 4697 } // namespace cricket
OLDNEW
« no previous file with comments | « webrtc/media/engine/webrtcvideoengine.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698