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

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

Issue 1938503002: Fix RTX-configuration test with >2 codecs built. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 7 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 | « no previous file | 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 1124 matching lines...) Expand 10 before | Expand all | Expand 10 after
1135 cricket::StreamParams sp = cricket::StreamParams::CreateLegacy(kVideoSsrc); 1135 cricket::StreamParams sp = cricket::StreamParams::CreateLegacy(kVideoSsrc);
1136 sp.sync_label = kSyncLabel; 1136 sp.sync_label = kSyncLabel;
1137 EXPECT_TRUE(channel_->AddRecvStream(sp)); 1137 EXPECT_TRUE(channel_->AddRecvStream(sp));
1138 1138
1139 EXPECT_EQ(1, fake_call_->GetVideoReceiveStreams().size()); 1139 EXPECT_EQ(1, fake_call_->GetVideoReceiveStreams().size());
1140 EXPECT_EQ(kSyncLabel, 1140 EXPECT_EQ(kSyncLabel,
1141 fake_call_->GetVideoReceiveStreams()[0]->GetConfig().sync_group) 1141 fake_call_->GetVideoReceiveStreams()[0]->GetConfig().sync_group)
1142 << "SyncGroup should be set based on sync_label"; 1142 << "SyncGroup should be set based on sync_label";
1143 } 1143 }
1144 1144
1145 TEST_F(WebRtcVideoChannel2Test, RecvStreamWithSimAndRtx) { 1145 TEST_F(WebRtcVideoChannel2Test, RecvStreamWithSimAndRtx) {
danilchap 2016/05/02 11:16:41 May be update this test too.
pbos-webrtc 2016/05/11 22:04:27 Done.
1146 cricket::VideoSendParameters parameters; 1146 cricket::VideoSendParameters parameters;
1147 parameters.codecs = engine_.codecs(); 1147 parameters.codecs = engine_.codecs();
1148 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 1148 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1149 EXPECT_TRUE(channel_->SetSend(true)); 1149 EXPECT_TRUE(channel_->SetSend(true));
1150 parameters.conference_mode = true; 1150 parameters.conference_mode = true;
1151 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 1151 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1152 1152
1153 // Send side. 1153 // Send side.
1154 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1); 1154 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1);
1155 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1); 1155 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1);
(...skipping 1108 matching lines...) Expand 10 before | Expand all | Expand 10 after
2264 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1); 2264 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1);
2265 FakeVideoSendStream* stream = AddSendStream( 2265 FakeVideoSendStream* stream = AddSendStream(
2266 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs)); 2266 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs));
2267 webrtc::VideoSendStream::Config config = stream->GetConfig(); 2267 webrtc::VideoSendStream::Config config = stream->GetConfig();
2268 2268
2269 // Make sure NACK and FEC are enabled on the correct payload types. 2269 // Make sure NACK and FEC are enabled on the correct payload types.
2270 EXPECT_EQ(1000, config.rtp.nack.rtp_history_ms); 2270 EXPECT_EQ(1000, config.rtp.nack.rtp_history_ms);
2271 EXPECT_EQ(default_ulpfec_codec_.id, config.rtp.fec.ulpfec_payload_type); 2271 EXPECT_EQ(default_ulpfec_codec_.id, config.rtp.fec.ulpfec_payload_type);
2272 EXPECT_EQ(default_red_codec_.id, config.rtp.fec.red_payload_type); 2272 EXPECT_EQ(default_red_codec_.id, config.rtp.fec.red_payload_type);
2273 2273
2274 EXPECT_EQ(1u, config.rtp.rtx.ssrcs.size()); 2274 EXPECT_EQ(1u, config.rtp.rtx.ssrcs.size());
danilchap 2016/05/02 11:16:41 Is it still 1 rtx ssrc on send side?
pbos-webrtc 2016/05/11 22:04:26 Yep, a sender always sends only one payload type,
2275 EXPECT_EQ(kRtxSsrcs1[0], config.rtp.rtx.ssrcs[0]); 2275 EXPECT_EQ(kRtxSsrcs1[0], config.rtp.rtx.ssrcs[0]);
2276 VerifySendStreamHasRtxTypes(config, default_apt_rtx_types_); 2276 VerifySendStreamHasRtxTypes(config, default_apt_rtx_types_);
2277 // TODO(juberti): Check RTCP, PLI, TMMBR. 2277 // TODO(juberti): Check RTCP, PLI, TMMBR.
2278 } 2278 }
2279 2279
2280 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsWithoutFec) { 2280 TEST_F(WebRtcVideoChannel2Test, SetSendCodecsWithoutFec) {
2281 cricket::VideoSendParameters parameters; 2281 cricket::VideoSendParameters parameters;
2282 parameters.codecs.push_back(kVp8Codec); 2282 parameters.codecs.push_back(kVp8Codec);
2283 ASSERT_TRUE(channel_->SetSendParameters(parameters)); 2283 ASSERT_TRUE(channel_->SetSendParameters(parameters));
2284 2284
(...skipping 907 matching lines...) Expand 10 before | Expand all | Expand 10 after
3192 uint8_t data[kDataLength]; 3192 uint8_t data[kDataLength];
3193 memset(data, 0, sizeof(data)); 3193 memset(data, 0, sizeof(data));
3194 rtc::SetBE32(&data[8], ssrcs[0]); 3194 rtc::SetBE32(&data[8], ssrcs[0]);
3195 rtc::CopyOnWriteBuffer packet(data, kDataLength); 3195 rtc::CopyOnWriteBuffer packet(data, kDataLength);
3196 rtc::PacketTime packet_time; 3196 rtc::PacketTime packet_time;
3197 channel_->OnPacketReceived(&packet, packet_time); 3197 channel_->OnPacketReceived(&packet, packet_time);
3198 3198
3199 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()) 3199 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size())
3200 << "No default receive stream created."; 3200 << "No default receive stream created.";
3201 FakeVideoReceiveStream* recv_stream = fake_call_->GetVideoReceiveStreams()[0]; 3201 FakeVideoReceiveStream* recv_stream = fake_call_->GetVideoReceiveStreams()[0];
3202 EXPECT_EQ(0u, recv_stream->GetConfig().rtp.rtx.size()) 3202 EXPECT_EQ(0u, recv_stream->GetConfig().rtp.rtx.size())
danilchap 2016/05/02 11:16:41 may be EXPECT_TRUE(....empty()) for consistency wi
pbos-webrtc 2016/05/11 22:04:26 Done.
3203 << "Default receive stream should not have configured RTX"; 3203 << "Default receive stream should not have configured RTX";
3204 3204
3205 EXPECT_TRUE(channel_->AddRecvStream( 3205 EXPECT_TRUE(channel_->AddRecvStream(
3206 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs))); 3206 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs)));
3207 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()) 3207 ASSERT_EQ(1u, fake_call_->GetVideoReceiveStreams().size())
3208 << "AddRecvStream should've reconfigured, not added a new receiver."; 3208 << "AddRecvStream should've reconfigured, not added a new receiver.";
3209 recv_stream = fake_call_->GetVideoReceiveStreams()[0]; 3209 recv_stream = fake_call_->GetVideoReceiveStreams()[0];
3210 ASSERT_GE(2u, recv_stream->GetConfig().rtp.rtx.size()); 3210 EXPECT_FALSE(recv_stream->GetConfig().rtp.rtx.empty());
3211 EXPECT_EQ(rtx_ssrcs[0], 3211 EXPECT_EQ(recv_stream->GetConfig().decoders.size(),
3212 recv_stream->GetConfig().rtp.rtx.begin()->second.ssrc); 3212 recv_stream->GetConfig().rtp.rtx.size())
3213 << "RTX should be mapped for all decoders/payload types.";
3214 for (const auto& kv : recv_stream->GetConfig().rtp.rtx) {
3215 EXPECT_EQ(rtx_ssrcs[0], kv.second.ssrc);
3216 }
3213 } 3217 }
3214 3218
3215 TEST_F(WebRtcVideoChannel2Test, RejectsAddingStreamsWithMissingSsrcsForRtx) { 3219 TEST_F(WebRtcVideoChannel2Test, RejectsAddingStreamsWithMissingSsrcsForRtx) {
3216 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 3220 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
3217 3221
3218 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1); 3222 const std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs1);
3219 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1); 3223 const std::vector<uint32_t> rtx_ssrcs = MAKE_VECTOR(kRtxSsrcs1);
3220 3224
3221 StreamParams sp = 3225 StreamParams sp =
3222 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs); 3226 cricket::CreateSimWithRtxStreamParams("cname", ssrcs, rtx_ssrcs);
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
3687 } 3691 }
3688 3692
3689 // Test that we normalize send codec format size in simulcast. 3693 // Test that we normalize send codec format size in simulcast.
3690 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWithOddSizeInSimulcast) { 3694 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsWithOddSizeInSimulcast) {
3691 cricket::VideoCodec codec(kVp8Codec270p); 3695 cricket::VideoCodec codec(kVp8Codec270p);
3692 codec.width += 1; 3696 codec.width += 1;
3693 codec.height += 1; 3697 codec.height += 1;
3694 VerifySimulcastSettings(codec, 2, 2); 3698 VerifySimulcastSettings(codec, 2, 2);
3695 } 3699 }
3696 } // namespace cricket 3700 } // namespace cricket
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698