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

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

Issue 1452883002: Require negotiation to send transport cc feedback over RTCP. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Comments addressed Created 5 years, 1 month 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 | « talk/media/webrtc/webrtcvideoengine2.cc ('k') | webrtc/video/end_to_end_tests.cc » ('j') | 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 * libjingle 2 * libjingle
3 * Copyright 2004 Google Inc. 3 * Copyright 2004 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 "urn:ietf:params:rtp-hdrext:unsupported"; 68 "urn:ietf:params:rtp-hdrext:unsupported";
69 69
70 void VerifyCodecHasDefaultFeedbackParams(const cricket::VideoCodec& codec) { 70 void VerifyCodecHasDefaultFeedbackParams(const cricket::VideoCodec& codec) {
71 EXPECT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam( 71 EXPECT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam(
72 cricket::kRtcpFbParamNack, cricket::kParamValueEmpty))); 72 cricket::kRtcpFbParamNack, cricket::kParamValueEmpty)));
73 EXPECT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam( 73 EXPECT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam(
74 cricket::kRtcpFbParamNack, cricket::kRtcpFbNackParamPli))); 74 cricket::kRtcpFbParamNack, cricket::kRtcpFbNackParamPli)));
75 EXPECT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam( 75 EXPECT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam(
76 cricket::kRtcpFbParamRemb, cricket::kParamValueEmpty))); 76 cricket::kRtcpFbParamRemb, cricket::kParamValueEmpty)));
77 EXPECT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam( 77 EXPECT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam(
78 cricket::kRtcpFbParamTransportCc, cricket::kParamValueEmpty)));
79 EXPECT_TRUE(codec.HasFeedbackParam(cricket::FeedbackParam(
78 cricket::kRtcpFbParamCcm, cricket::kRtcpFbCcmParamFir))); 80 cricket::kRtcpFbParamCcm, cricket::kRtcpFbCcmParamFir)));
79 } 81 }
80 82
81 static void CreateBlackFrame(webrtc::VideoFrame* video_frame, 83 static void CreateBlackFrame(webrtc::VideoFrame* video_frame,
82 int width, 84 int width,
83 int height) { 85 int height) {
84 video_frame->CreateEmptyFrame( 86 video_frame->CreateEmptyFrame(
85 width, height, width, (width + 1) / 2, (width + 1) / 2); 87 width, height, width, (width + 1) / 2, (width + 1) / 2);
86 memset(video_frame->buffer(webrtc::kYPlane), 16, 88 memset(video_frame->buffer(webrtc::kYPlane), 16,
87 video_frame->allocated_size(webrtc::kYPlane)); 89 video_frame->allocated_size(webrtc::kYPlane));
(...skipping 1356 matching lines...) Expand 10 before | Expand all | Expand 10 after
1444 TEST_F(WebRtcVideoChannel2Test, RtcpIsCompoundByDefault) { 1446 TEST_F(WebRtcVideoChannel2Test, RtcpIsCompoundByDefault) {
1445 FakeVideoReceiveStream* stream = AddRecvStream(); 1447 FakeVideoReceiveStream* stream = AddRecvStream();
1446 EXPECT_EQ(webrtc::RtcpMode::kCompound, stream->GetConfig().rtp.rtcp_mode); 1448 EXPECT_EQ(webrtc::RtcpMode::kCompound, stream->GetConfig().rtp.rtcp_mode);
1447 } 1449 }
1448 1450
1449 TEST_F(WebRtcVideoChannel2Test, RembIsEnabledByDefault) { 1451 TEST_F(WebRtcVideoChannel2Test, RembIsEnabledByDefault) {
1450 FakeVideoReceiveStream* stream = AddRecvStream(); 1452 FakeVideoReceiveStream* stream = AddRecvStream();
1451 EXPECT_TRUE(stream->GetConfig().rtp.remb); 1453 EXPECT_TRUE(stream->GetConfig().rtp.remb);
1452 } 1454 }
1453 1455
1456 TEST_F(WebRtcVideoChannel2Test, TransportCcIsEnabledByDefault) {
1457 FakeVideoReceiveStream* stream = AddRecvStream();
1458 EXPECT_TRUE(stream->GetConfig().rtp.transport_cc);
1459 }
1460
1454 TEST_F(WebRtcVideoChannel2Test, RembCanBeEnabledAndDisabled) { 1461 TEST_F(WebRtcVideoChannel2Test, RembCanBeEnabledAndDisabled) {
1455 FakeVideoReceiveStream* stream = AddRecvStream(); 1462 FakeVideoReceiveStream* stream = AddRecvStream();
1456 EXPECT_TRUE(stream->GetConfig().rtp.remb); 1463 EXPECT_TRUE(stream->GetConfig().rtp.remb);
1457 1464
1458 // Verify that REMB is turned off when send(!) codecs without REMB are set. 1465 // Verify that REMB is turned off when send(!) codecs without REMB are set.
1459 cricket::VideoSendParameters parameters; 1466 cricket::VideoSendParameters parameters;
1460 parameters.codecs.push_back(kVp8Codec); 1467 parameters.codecs.push_back(kVp8Codec);
1461 EXPECT_TRUE(parameters.codecs[0].feedback_params.params().empty()); 1468 EXPECT_TRUE(parameters.codecs[0].feedback_params.params().empty());
1462 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 1469 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1463 stream = fake_call_->GetVideoReceiveStreams()[0]; 1470 stream = fake_call_->GetVideoReceiveStreams()[0];
1464 EXPECT_FALSE(stream->GetConfig().rtp.remb); 1471 EXPECT_FALSE(stream->GetConfig().rtp.remb);
1465 1472
1466 // Verify that REMB is turned on when setting default codecs since the 1473 // Verify that REMB is turned on when setting default codecs since the
1467 // default codecs have REMB enabled. 1474 // default codecs have REMB enabled.
1468 parameters.codecs = engine_.codecs(); 1475 parameters.codecs = engine_.codecs();
1469 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 1476 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1470 stream = fake_call_->GetVideoReceiveStreams()[0]; 1477 stream = fake_call_->GetVideoReceiveStreams()[0];
1471 EXPECT_TRUE(stream->GetConfig().rtp.remb); 1478 EXPECT_TRUE(stream->GetConfig().rtp.remb);
1472 } 1479 }
1473 1480
1481 TEST_F(WebRtcVideoChannel2Test, TransportCcCanBeEnabledAndDisabled) {
1482 FakeVideoReceiveStream* stream = AddRecvStream();
1483 EXPECT_TRUE(stream->GetConfig().rtp.transport_cc);
1484
1485 // Verify that transport cc feedback is turned off when send(!) codecs without
1486 // transport cc feedback are set.
1487 cricket::VideoSendParameters parameters;
1488 parameters.codecs.push_back(kVp8Codec);
1489 EXPECT_TRUE(parameters.codecs[0].feedback_params.params().empty());
1490 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1491 stream = fake_call_->GetVideoReceiveStreams()[0];
1492 EXPECT_FALSE(stream->GetConfig().rtp.transport_cc);
1493
1494 // Verify that transport cc feedback is turned on when setting default codecs
1495 // since the default codecs have transport cc feedback enabled.
1496 parameters.codecs = engine_.codecs();
1497 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1498 stream = fake_call_->GetVideoReceiveStreams()[0];
1499 EXPECT_TRUE(stream->GetConfig().rtp.transport_cc);
1500 }
1501
1474 TEST_F(WebRtcVideoChannel2Test, NackIsEnabledByDefault) { 1502 TEST_F(WebRtcVideoChannel2Test, NackIsEnabledByDefault) {
1475 VerifyCodecHasDefaultFeedbackParams(default_codec_); 1503 VerifyCodecHasDefaultFeedbackParams(default_codec_);
1476 1504
1477 cricket::VideoSendParameters parameters; 1505 cricket::VideoSendParameters parameters;
1478 parameters.codecs = engine_.codecs(); 1506 parameters.codecs = engine_.codecs();
1479 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 1507 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1480 EXPECT_TRUE(channel_->SetSend(true)); 1508 EXPECT_TRUE(channel_->SetSend(true));
1481 1509
1482 // Send side. 1510 // Send side.
1483 FakeVideoSendStream* send_stream = 1511 FakeVideoSendStream* send_stream =
(...skipping 1790 matching lines...) Expand 10 before | Expand all | Expand 10 after
3274 // Ensures that the correct settings are applied to the codec when two temporal 3302 // Ensures that the correct settings are applied to the codec when two temporal
3275 // layer screencasting is enabled, and that the correct simulcast settings are 3303 // layer screencasting is enabled, and that the correct simulcast settings are
3276 // reapplied when disabling screencasting. 3304 // reapplied when disabling screencasting.
3277 TEST_F(WebRtcVideoChannel2SimulcastTest, 3305 TEST_F(WebRtcVideoChannel2SimulcastTest,
3278 DISABLED_TwoTemporalLayerScreencastSettings) { 3306 DISABLED_TwoTemporalLayerScreencastSettings) {
3279 // TODO(pbos): Implement. 3307 // TODO(pbos): Implement.
3280 FAIL() << "Not implemented."; 3308 FAIL() << "Not implemented.";
3281 } 3309 }
3282 3310
3283 } // namespace cricket 3311 } // namespace cricket
OLDNEW
« no previous file with comments | « talk/media/webrtc/webrtcvideoengine2.cc ('k') | webrtc/video/end_to_end_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698