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

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

Issue 2826263004: Move responsibility for RTP header extensions on video receive. (Closed)
Patch Set: Crude rebase. Created 3 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
« no previous file with comments | « media/engine/webrtcvideoengine.cc ('k') | pc/webrtcsession.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 * 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 1205 matching lines...) Expand 10 before | Expand all | Expand 10 after
1216 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 1216 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1217 FakeVideoSendStream* send_stream = 1217 FakeVideoSendStream* send_stream =
1218 AddSendStream(cricket::StreamParams::CreateLegacy(123)); 1218 AddSendStream(cricket::StreamParams::CreateLegacy(123));
1219 1219
1220 // Verify the send extension id. 1220 // Verify the send extension id.
1221 ASSERT_EQ(1u, send_stream->GetConfig().rtp.extensions.size()); 1221 ASSERT_EQ(1u, send_stream->GetConfig().rtp.extensions.size());
1222 EXPECT_EQ(id, send_stream->GetConfig().rtp.extensions[0].id); 1222 EXPECT_EQ(id, send_stream->GetConfig().rtp.extensions[0].id);
1223 EXPECT_EQ(ext_uri, send_stream->GetConfig().rtp.extensions[0].uri); 1223 EXPECT_EQ(ext_uri, send_stream->GetConfig().rtp.extensions[0].uri);
1224 // Verify call with same set of extensions returns true. 1224 // Verify call with same set of extensions returns true.
1225 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 1225 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1226 #if 0
1226 // Verify that SetSendRtpHeaderExtensions doesn't implicitly add them for 1227 // Verify that SetSendRtpHeaderExtensions doesn't implicitly add them for
1227 // receivers. 1228 // receivers.
1228 EXPECT_TRUE(AddRecvStream(cricket::StreamParams::CreateLegacy(123)) 1229 EXPECT_TRUE(AddRecvStream(cricket::StreamParams::CreateLegacy(123))
1229 ->GetConfig() 1230 ->GetConfig()
1230 .rtp.extensions.empty()); 1231 .rtp.extensions.empty());
1231 1232 #endif
1232 // Verify that existing RTP header extensions can be removed. 1233 // Verify that existing RTP header extensions can be removed.
1233 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 1234 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
1234 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size()); 1235 ASSERT_EQ(1u, fake_call_->GetVideoSendStreams().size());
1235 send_stream = fake_call_->GetVideoSendStreams()[0]; 1236 send_stream = fake_call_->GetVideoSendStreams()[0];
1236 EXPECT_TRUE(send_stream->GetConfig().rtp.extensions.empty()); 1237 EXPECT_TRUE(send_stream->GetConfig().rtp.extensions.empty());
1237 1238
1238 // Verify that adding receive RTP header extensions adds them for existing 1239 // Verify that adding receive RTP header extensions adds them for existing
1239 // streams. 1240 // streams.
1240 EXPECT_TRUE(channel_->SetSendParameters(parameters)); 1241 EXPECT_TRUE(channel_->SetSendParameters(parameters));
1241 send_stream = fake_call_->GetVideoSendStreams()[0]; 1242 send_stream = fake_call_->GetVideoSendStreams()[0];
1242 ASSERT_EQ(1u, send_stream->GetConfig().rtp.extensions.size()); 1243 ASSERT_EQ(1u, send_stream->GetConfig().rtp.extensions.size());
1243 EXPECT_EQ(id, send_stream->GetConfig().rtp.extensions[0].id); 1244 EXPECT_EQ(id, send_stream->GetConfig().rtp.extensions[0].id);
1244 EXPECT_EQ(ext_uri, send_stream->GetConfig().rtp.extensions[0].uri); 1245 EXPECT_EQ(ext_uri, send_stream->GetConfig().rtp.extensions[0].uri);
1245 } 1246 }
1246 1247 #if 0
1247 void TestSetRecvRtpHeaderExtensions(const std::string& ext_uri) { 1248 void TestSetRecvRtpHeaderExtensions(const std::string& ext_uri) {
1248 // Enable extension. 1249 // Enable extension.
1249 const int id = 1; 1250 const int id = 1;
1250 cricket::VideoRecvParameters parameters = recv_parameters_; 1251 cricket::VideoRecvParameters parameters = recv_parameters_;
1251 parameters.extensions.push_back(RtpExtension(ext_uri, id)); 1252 parameters.extensions.push_back(RtpExtension(ext_uri, id));
1252 EXPECT_TRUE(channel_->SetRecvParameters(parameters)); 1253 EXPECT_TRUE(channel_->SetRecvParameters(parameters));
1253 1254
1254 FakeVideoReceiveStream* recv_stream = 1255 FakeVideoReceiveStream* recv_stream =
1255 AddRecvStream(cricket::StreamParams::CreateLegacy(123)); 1256 AddRecvStream(cricket::StreamParams::CreateLegacy(123));
1256 1257
(...skipping 17 matching lines...) Expand all
1274 EXPECT_TRUE(recv_stream->GetConfig().rtp.extensions.empty()); 1275 EXPECT_TRUE(recv_stream->GetConfig().rtp.extensions.empty());
1275 1276
1276 // Verify that adding receive RTP header extensions adds them for existing 1277 // Verify that adding receive RTP header extensions adds them for existing
1277 // streams. 1278 // streams.
1278 EXPECT_TRUE(channel_->SetRecvParameters(parameters)); 1279 EXPECT_TRUE(channel_->SetRecvParameters(parameters));
1279 recv_stream = fake_call_->GetVideoReceiveStreams()[0]; 1280 recv_stream = fake_call_->GetVideoReceiveStreams()[0];
1280 ASSERT_EQ(1u, recv_stream->GetConfig().rtp.extensions.size()); 1281 ASSERT_EQ(1u, recv_stream->GetConfig().rtp.extensions.size());
1281 EXPECT_EQ(id, recv_stream->GetConfig().rtp.extensions[0].id); 1282 EXPECT_EQ(id, recv_stream->GetConfig().rtp.extensions[0].id);
1282 EXPECT_EQ(ext_uri, recv_stream->GetConfig().rtp.extensions[0].uri); 1283 EXPECT_EQ(ext_uri, recv_stream->GetConfig().rtp.extensions[0].uri);
1283 } 1284 }
1284 1285 #endif
1285 void TestExtensionFilter(const std::vector<std::string>& extensions, 1286 void TestExtensionFilter(const std::vector<std::string>& extensions,
1286 const std::string& expected_extension) { 1287 const std::string& expected_extension) {
1287 cricket::VideoSendParameters parameters = send_parameters_; 1288 cricket::VideoSendParameters parameters = send_parameters_;
1288 int expected_id = -1; 1289 int expected_id = -1;
1289 int id = 1; 1290 int id = 1;
1290 for (const std::string& extension : extensions) { 1291 for (const std::string& extension : extensions) {
1291 if (extension == expected_extension) 1292 if (extension == expected_extension)
1292 expected_id = id; 1293 expected_id = id;
1293 parameters.extensions.push_back(RtpExtension(extension, id++)); 1294 parameters.extensions.push_back(RtpExtension(extension, id++));
1294 } 1295 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
1447 cricket::StreamParams params = 1448 cricket::StreamParams params =
1448 cricket::StreamParams::CreateLegacy(kSsrcs1[0]); 1449 cricket::StreamParams::CreateLegacy(kSsrcs1[0]);
1449 FakeVideoReceiveStream* recv_stream = AddRecvStream(params); 1450 FakeVideoReceiveStream* recv_stream = AddRecvStream(params);
1450 ASSERT_EQ(0U, recv_stream->GetConfig().rtp.rtx_ssrc); 1451 ASSERT_EQ(0U, recv_stream->GetConfig().rtp.rtx_ssrc);
1451 } 1452 }
1452 1453
1453 TEST_F(WebRtcVideoChannelTest, NoHeaderExtesionsByDefault) { 1454 TEST_F(WebRtcVideoChannelTest, NoHeaderExtesionsByDefault) {
1454 FakeVideoSendStream* send_stream = 1455 FakeVideoSendStream* send_stream =
1455 AddSendStream(cricket::StreamParams::CreateLegacy(kSsrcs1[0])); 1456 AddSendStream(cricket::StreamParams::CreateLegacy(kSsrcs1[0]));
1456 ASSERT_TRUE(send_stream->GetConfig().rtp.extensions.empty()); 1457 ASSERT_TRUE(send_stream->GetConfig().rtp.extensions.empty());
1457 1458 #if 0
1458 FakeVideoReceiveStream* recv_stream = 1459 FakeVideoReceiveStream* recv_stream =
1459 AddRecvStream(cricket::StreamParams::CreateLegacy(kSsrcs1[0])); 1460 AddRecvStream(cricket::StreamParams::CreateLegacy(kSsrcs1[0]));
1460 ASSERT_TRUE(recv_stream->GetConfig().rtp.extensions.empty()); 1461 ASSERT_TRUE(recv_stream->GetConfig().rtp.extensions.empty());
1462 #endif
1461 } 1463 }
1462 1464
1463 // Test support for RTP timestamp offset header extension. 1465 // Test support for RTP timestamp offset header extension.
1464 TEST_F(WebRtcVideoChannelTest, SendRtpTimestampOffsetHeaderExtensions) { 1466 TEST_F(WebRtcVideoChannelTest, SendRtpTimestampOffsetHeaderExtensions) {
1465 TestSetSendRtpHeaderExtensions(RtpExtension::kTimestampOffsetUri); 1467 TestSetSendRtpHeaderExtensions(RtpExtension::kTimestampOffsetUri);
1466 } 1468 }
1467 1469
1470 #if 0
1468 TEST_F(WebRtcVideoChannelTest, RecvRtpTimestampOffsetHeaderExtensions) { 1471 TEST_F(WebRtcVideoChannelTest, RecvRtpTimestampOffsetHeaderExtensions) {
1469 TestSetRecvRtpHeaderExtensions(RtpExtension::kTimestampOffsetUri); 1472 TestSetRecvRtpHeaderExtensions(RtpExtension::kTimestampOffsetUri);
1470 } 1473 }
1471 1474 #endif
1472 // Test support for absolute send time header extension. 1475 // Test support for absolute send time header extension.
1473 TEST_F(WebRtcVideoChannelTest, SendAbsoluteSendTimeHeaderExtensions) { 1476 TEST_F(WebRtcVideoChannelTest, SendAbsoluteSendTimeHeaderExtensions) {
1474 TestSetSendRtpHeaderExtensions(RtpExtension::kAbsSendTimeUri); 1477 TestSetSendRtpHeaderExtensions(RtpExtension::kAbsSendTimeUri);
1475 } 1478 }
1476 1479
1480 #if 0
1477 TEST_F(WebRtcVideoChannelTest, RecvAbsoluteSendTimeHeaderExtensions) { 1481 TEST_F(WebRtcVideoChannelTest, RecvAbsoluteSendTimeHeaderExtensions) {
1478 TestSetRecvRtpHeaderExtensions(RtpExtension::kAbsSendTimeUri); 1482 TestSetRecvRtpHeaderExtensions(RtpExtension::kAbsSendTimeUri);
1479 } 1483 }
1484 #endif
1480 1485
1481 TEST_F(WebRtcVideoChannelTest, FiltersExtensionsPicksTransportSeqNum) { 1486 TEST_F(WebRtcVideoChannelTest, FiltersExtensionsPicksTransportSeqNum) {
1482 // Enable three redundant extensions. 1487 // Enable three redundant extensions.
1483 std::vector<std::string> extensions; 1488 std::vector<std::string> extensions;
1484 extensions.push_back(RtpExtension::kAbsSendTimeUri); 1489 extensions.push_back(RtpExtension::kAbsSendTimeUri);
1485 extensions.push_back(RtpExtension::kTimestampOffsetUri); 1490 extensions.push_back(RtpExtension::kTimestampOffsetUri);
1486 extensions.push_back(RtpExtension::kTransportSequenceNumberUri); 1491 extensions.push_back(RtpExtension::kTransportSequenceNumberUri);
1487 TestExtensionFilter(extensions, RtpExtension::kTransportSequenceNumberUri); 1492 TestExtensionFilter(extensions, RtpExtension::kTransportSequenceNumberUri);
1488 } 1493 }
1489 1494
1490 TEST_F(WebRtcVideoChannelTest, FiltersExtensionsPicksAbsSendTime) { 1495 TEST_F(WebRtcVideoChannelTest, FiltersExtensionsPicksAbsSendTime) {
1491 // Enable two redundant extensions. 1496 // Enable two redundant extensions.
1492 std::vector<std::string> extensions; 1497 std::vector<std::string> extensions;
1493 extensions.push_back(RtpExtension::kAbsSendTimeUri); 1498 extensions.push_back(RtpExtension::kAbsSendTimeUri);
1494 extensions.push_back(RtpExtension::kTimestampOffsetUri); 1499 extensions.push_back(RtpExtension::kTimestampOffsetUri);
1495 TestExtensionFilter(extensions, RtpExtension::kAbsSendTimeUri); 1500 TestExtensionFilter(extensions, RtpExtension::kAbsSendTimeUri);
1496 } 1501 }
1497 1502
1498 // Test support for transport sequence number header extension. 1503 // Test support for transport sequence number header extension.
1499 TEST_F(WebRtcVideoChannelTest, SendTransportSequenceNumberHeaderExtensions) { 1504 TEST_F(WebRtcVideoChannelTest, SendTransportSequenceNumberHeaderExtensions) {
1500 TestSetSendRtpHeaderExtensions(RtpExtension::kTransportSequenceNumberUri); 1505 TestSetSendRtpHeaderExtensions(RtpExtension::kTransportSequenceNumberUri);
1501 } 1506 }
1507 #if 0
1502 TEST_F(WebRtcVideoChannelTest, RecvTransportSequenceNumberHeaderExtensions) { 1508 TEST_F(WebRtcVideoChannelTest, RecvTransportSequenceNumberHeaderExtensions) {
1503 TestSetRecvRtpHeaderExtensions(RtpExtension::kTransportSequenceNumberUri); 1509 TestSetRecvRtpHeaderExtensions(RtpExtension::kTransportSequenceNumberUri);
1504 } 1510 }
1505 1511 #endif
1506 // Test support for video rotation header extension. 1512 // Test support for video rotation header extension.
1507 TEST_F(WebRtcVideoChannelTest, SendVideoRotationHeaderExtensions) { 1513 TEST_F(WebRtcVideoChannelTest, SendVideoRotationHeaderExtensions) {
1508 TestSetSendRtpHeaderExtensions(RtpExtension::kVideoRotationUri); 1514 TestSetSendRtpHeaderExtensions(RtpExtension::kVideoRotationUri);
1509 } 1515 }
1516 #if 0
1510 TEST_F(WebRtcVideoChannelTest, RecvVideoRotationHeaderExtensions) { 1517 TEST_F(WebRtcVideoChannelTest, RecvVideoRotationHeaderExtensions) {
1511 TestSetRecvRtpHeaderExtensions(RtpExtension::kVideoRotationUri); 1518 TestSetRecvRtpHeaderExtensions(RtpExtension::kVideoRotationUri);
1512 } 1519 }
1520 #endif
1513 1521
1514 TEST_F(WebRtcVideoChannelTest, IdenticalSendExtensionsDoesntRecreateStream) { 1522 TEST_F(WebRtcVideoChannelTest, IdenticalSendExtensionsDoesntRecreateStream) {
1515 const int kAbsSendTimeId = 1; 1523 const int kAbsSendTimeId = 1;
1516 const int kVideoRotationId = 2; 1524 const int kVideoRotationId = 2;
1517 send_parameters_.extensions.push_back( 1525 send_parameters_.extensions.push_back(
1518 RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); 1526 RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId));
1519 send_parameters_.extensions.push_back( 1527 send_parameters_.extensions.push_back(
1520 RtpExtension(RtpExtension::kVideoRotationUri, kVideoRotationId)); 1528 RtpExtension(RtpExtension::kVideoRotationUri, kVideoRotationId));
1521 1529
1522 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 1530 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
(...skipping 10 matching lines...) Expand all
1533 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 1541 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
1534 1542
1535 EXPECT_EQ(1, fake_call_->GetNumCreatedSendStreams()); 1543 EXPECT_EQ(1, fake_call_->GetNumCreatedSendStreams());
1536 1544
1537 // Setting different extensions should recreate the stream. 1545 // Setting different extensions should recreate the stream.
1538 send_parameters_.extensions.resize(1); 1546 send_parameters_.extensions.resize(1);
1539 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 1547 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
1540 1548
1541 EXPECT_EQ(2, fake_call_->GetNumCreatedSendStreams()); 1549 EXPECT_EQ(2, fake_call_->GetNumCreatedSendStreams());
1542 } 1550 }
1543 1551 #if 0
1544 TEST_F(WebRtcVideoChannelTest, IdenticalRecvExtensionsDoesntRecreateStream) { 1552 TEST_F(WebRtcVideoChannelTest, IdenticalRecvExtensionsDoesntRecreateStream) {
1545 const int kTOffsetId = 1; 1553 const int kTOffsetId = 1;
1546 const int kAbsSendTimeId = 2; 1554 const int kAbsSendTimeId = 2;
1547 const int kVideoRotationId = 3; 1555 const int kVideoRotationId = 3;
1548 recv_parameters_.extensions.push_back( 1556 recv_parameters_.extensions.push_back(
1549 RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); 1557 RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId));
1550 recv_parameters_.extensions.push_back( 1558 recv_parameters_.extensions.push_back(
1551 RtpExtension(RtpExtension::kTimestampOffsetUri, kTOffsetId)); 1559 RtpExtension(RtpExtension::kTimestampOffsetUri, kTOffsetId));
1552 recv_parameters_.extensions.push_back( 1560 recv_parameters_.extensions.push_back(
1553 RtpExtension(RtpExtension::kVideoRotationUri, kVideoRotationId)); 1561 RtpExtension(RtpExtension::kVideoRotationUri, kVideoRotationId));
(...skipping 12 matching lines...) Expand all
1566 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); 1574 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_));
1567 1575
1568 EXPECT_EQ(1, fake_call_->GetNumCreatedReceiveStreams()); 1576 EXPECT_EQ(1, fake_call_->GetNumCreatedReceiveStreams());
1569 1577
1570 // Setting different extensions should recreate the stream. 1578 // Setting different extensions should recreate the stream.
1571 recv_parameters_.extensions.resize(1); 1579 recv_parameters_.extensions.resize(1);
1572 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); 1580 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_));
1573 1581
1574 EXPECT_EQ(2, fake_call_->GetNumCreatedReceiveStreams()); 1582 EXPECT_EQ(2, fake_call_->GetNumCreatedReceiveStreams());
1575 } 1583 }
1576 1584 #endif
1577 TEST_F(WebRtcVideoChannelTest, 1585 TEST_F(WebRtcVideoChannelTest,
1578 SetSendRtpHeaderExtensionsExcludeUnsupportedExtensions) { 1586 SetSendRtpHeaderExtensionsExcludeUnsupportedExtensions) {
1579 const int kUnsupportedId = 1; 1587 const int kUnsupportedId = 1;
1580 const int kTOffsetId = 2; 1588 const int kTOffsetId = 2;
1581 1589
1582 send_parameters_.extensions.push_back( 1590 send_parameters_.extensions.push_back(
1583 RtpExtension(kUnsupportedExtensionName, kUnsupportedId)); 1591 RtpExtension(kUnsupportedExtensionName, kUnsupportedId));
1584 send_parameters_.extensions.push_back( 1592 send_parameters_.extensions.push_back(
1585 RtpExtension(RtpExtension::kTimestampOffsetUri, kTOffsetId)); 1593 RtpExtension(RtpExtension::kTimestampOffsetUri, kTOffsetId));
1586 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_)); 1594 EXPECT_TRUE(channel_->SetSendParameters(send_parameters_));
1587 FakeVideoSendStream* send_stream = 1595 FakeVideoSendStream* send_stream =
1588 AddSendStream(cricket::StreamParams::CreateLegacy(123)); 1596 AddSendStream(cricket::StreamParams::CreateLegacy(123));
1589 1597
1590 // Only timestamp offset extension is set to send stream, 1598 // Only timestamp offset extension is set to send stream,
1591 // unsupported rtp extension is ignored. 1599 // unsupported rtp extension is ignored.
1592 ASSERT_EQ(1u, send_stream->GetConfig().rtp.extensions.size()); 1600 ASSERT_EQ(1u, send_stream->GetConfig().rtp.extensions.size());
1593 EXPECT_STREQ(RtpExtension::kTimestampOffsetUri, 1601 EXPECT_STREQ(RtpExtension::kTimestampOffsetUri,
1594 send_stream->GetConfig().rtp.extensions[0].uri.c_str()); 1602 send_stream->GetConfig().rtp.extensions[0].uri.c_str());
1595 } 1603 }
1596 1604
1605 #if 0
1597 TEST_F(WebRtcVideoChannelTest, 1606 TEST_F(WebRtcVideoChannelTest,
1598 SetRecvRtpHeaderExtensionsExcludeUnsupportedExtensions) { 1607 SetRecvRtpHeaderExtensionsExcludeUnsupportedExtensions) {
1599 const int kUnsupportedId = 1; 1608 const int kUnsupportedId = 1;
1600 const int kTOffsetId = 2; 1609 const int kTOffsetId = 2;
1601 1610
1602 recv_parameters_.extensions.push_back( 1611 recv_parameters_.extensions.push_back(
1603 RtpExtension(kUnsupportedExtensionName, kUnsupportedId)); 1612 RtpExtension(kUnsupportedExtensionName, kUnsupportedId));
1604 recv_parameters_.extensions.push_back( 1613 recv_parameters_.extensions.push_back(
1605 RtpExtension(RtpExtension::kTimestampOffsetUri, kTOffsetId)); 1614 RtpExtension(RtpExtension::kTimestampOffsetUri, kTOffsetId));
1606 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_)); 1615 EXPECT_TRUE(channel_->SetRecvParameters(recv_parameters_));
1607 FakeVideoReceiveStream* recv_stream = 1616 FakeVideoReceiveStream* recv_stream =
1608 AddRecvStream(cricket::StreamParams::CreateLegacy(123)); 1617 AddRecvStream(cricket::StreamParams::CreateLegacy(123));
1609 1618
1610 // Only timestamp offset extension is set to receive stream, 1619 // Only timestamp offset extension is set to receive stream,
1611 // unsupported rtp extension is ignored. 1620 // unsupported rtp extension is ignored.
1612 ASSERT_EQ(1u, recv_stream->GetConfig().rtp.extensions.size()); 1621 ASSERT_EQ(1u, recv_stream->GetConfig().rtp.extensions.size());
1613 EXPECT_STREQ(RtpExtension::kTimestampOffsetUri, 1622 EXPECT_STREQ(RtpExtension::kTimestampOffsetUri,
1614 recv_stream->GetConfig().rtp.extensions[0].uri.c_str()); 1623 recv_stream->GetConfig().rtp.extensions[0].uri.c_str());
1615 } 1624 }
1625 #endif
1616 1626
1617 TEST_F(WebRtcVideoChannelTest, SetSendRtpHeaderExtensionsRejectsIncorrectIds) { 1627 TEST_F(WebRtcVideoChannelTest, SetSendRtpHeaderExtensionsRejectsIncorrectIds) {
1618 const int kIncorrectIds[] = {-2, -1, 0, 15, 16}; 1628 const int kIncorrectIds[] = {-2, -1, 0, 15, 16};
1619 for (size_t i = 0; i < arraysize(kIncorrectIds); ++i) { 1629 for (size_t i = 0; i < arraysize(kIncorrectIds); ++i) {
1620 send_parameters_.extensions.push_back( 1630 send_parameters_.extensions.push_back(
1621 RtpExtension(RtpExtension::kTimestampOffsetUri, kIncorrectIds[i])); 1631 RtpExtension(RtpExtension::kTimestampOffsetUri, kIncorrectIds[i]));
1622 EXPECT_FALSE(channel_->SetSendParameters(send_parameters_)) 1632 EXPECT_FALSE(channel_->SetSendParameters(send_parameters_))
1623 << "Bad extension id '" << kIncorrectIds[i] << "' accepted."; 1633 << "Bad extension id '" << kIncorrectIds[i] << "' accepted.";
1624 } 1634 }
1625 } 1635 }
1626 1636 #if 0
1627 TEST_F(WebRtcVideoChannelTest, SetRecvRtpHeaderExtensionsRejectsIncorrectIds) { 1637 TEST_F(WebRtcVideoChannelTest, SetRecvRtpHeaderExtensionsRejectsIncorrectIds) {
1628 const int kIncorrectIds[] = {-2, -1, 0, 15, 16}; 1638 const int kIncorrectIds[] = {-2, -1, 0, 15, 16};
1629 for (size_t i = 0; i < arraysize(kIncorrectIds); ++i) { 1639 for (size_t i = 0; i < arraysize(kIncorrectIds); ++i) {
1630 recv_parameters_.extensions.push_back( 1640 recv_parameters_.extensions.push_back(
1631 RtpExtension(RtpExtension::kTimestampOffsetUri, kIncorrectIds[i])); 1641 RtpExtension(RtpExtension::kTimestampOffsetUri, kIncorrectIds[i]));
1632 EXPECT_FALSE(channel_->SetRecvParameters(recv_parameters_)) 1642 EXPECT_FALSE(channel_->SetRecvParameters(recv_parameters_))
1633 << "Bad extension id '" << kIncorrectIds[i] << "' accepted."; 1643 << "Bad extension id '" << kIncorrectIds[i] << "' accepted.";
1634 } 1644 }
1635 } 1645 }
1646 #endif
1636 1647
1637 TEST_F(WebRtcVideoChannelTest, SetSendRtpHeaderExtensionsRejectsDuplicateIds) { 1648 TEST_F(WebRtcVideoChannelTest, SetSendRtpHeaderExtensionsRejectsDuplicateIds) {
1638 const int id = 1; 1649 const int id = 1;
1639 send_parameters_.extensions.push_back( 1650 send_parameters_.extensions.push_back(
1640 RtpExtension(RtpExtension::kTimestampOffsetUri, id)); 1651 RtpExtension(RtpExtension::kTimestampOffsetUri, id));
1641 send_parameters_.extensions.push_back( 1652 send_parameters_.extensions.push_back(
1642 RtpExtension(RtpExtension::kAbsSendTimeUri, id)); 1653 RtpExtension(RtpExtension::kAbsSendTimeUri, id));
1643 EXPECT_FALSE(channel_->SetSendParameters(send_parameters_)); 1654 EXPECT_FALSE(channel_->SetSendParameters(send_parameters_));
1644 1655
1645 // Duplicate entries are also not supported. 1656 // Duplicate entries are also not supported.
1646 send_parameters_.extensions.clear(); 1657 send_parameters_.extensions.clear();
1647 send_parameters_.extensions.push_back( 1658 send_parameters_.extensions.push_back(
1648 RtpExtension(RtpExtension::kTimestampOffsetUri, id)); 1659 RtpExtension(RtpExtension::kTimestampOffsetUri, id));
1649 send_parameters_.extensions.push_back(send_parameters_.extensions.back()); 1660 send_parameters_.extensions.push_back(send_parameters_.extensions.back());
1650 EXPECT_FALSE(channel_->SetSendParameters(send_parameters_)); 1661 EXPECT_FALSE(channel_->SetSendParameters(send_parameters_));
1651 } 1662 }
1652 1663
1664 #if 0
1653 TEST_F(WebRtcVideoChannelTest, SetRecvRtpHeaderExtensionsRejectsDuplicateIds) { 1665 TEST_F(WebRtcVideoChannelTest, SetRecvRtpHeaderExtensionsRejectsDuplicateIds) {
1654 const int id = 1; 1666 const int id = 1;
1655 recv_parameters_.extensions.push_back( 1667 recv_parameters_.extensions.push_back(
1656 RtpExtension(RtpExtension::kTimestampOffsetUri, id)); 1668 RtpExtension(RtpExtension::kTimestampOffsetUri, id));
1657 recv_parameters_.extensions.push_back( 1669 recv_parameters_.extensions.push_back(
1658 RtpExtension(RtpExtension::kAbsSendTimeUri, id)); 1670 RtpExtension(RtpExtension::kAbsSendTimeUri, id));
1659 EXPECT_FALSE(channel_->SetRecvParameters(recv_parameters_)); 1671 EXPECT_FALSE(channel_->SetRecvParameters(recv_parameters_));
1660 1672
1661 // Duplicate entries are also not supported. 1673 // Duplicate entries are also not supported.
1662 recv_parameters_.extensions.clear(); 1674 recv_parameters_.extensions.clear();
1663 recv_parameters_.extensions.push_back( 1675 recv_parameters_.extensions.push_back(
1664 RtpExtension(RtpExtension::kTimestampOffsetUri, id)); 1676 RtpExtension(RtpExtension::kTimestampOffsetUri, id));
1665 recv_parameters_.extensions.push_back(recv_parameters_.extensions.back()); 1677 recv_parameters_.extensions.push_back(recv_parameters_.extensions.back());
1666 EXPECT_FALSE(channel_->SetRecvParameters(recv_parameters_)); 1678 EXPECT_FALSE(channel_->SetRecvParameters(recv_parameters_));
1667 } 1679 }
1680 #endif
1668 1681
1669 TEST_F(WebRtcVideoChannelTest, AddRecvStreamOnlyUsesOneReceiveStream) { 1682 TEST_F(WebRtcVideoChannelTest, AddRecvStreamOnlyUsesOneReceiveStream) {
1670 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(1))); 1683 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(1)));
1671 EXPECT_EQ(1u, fake_call_->GetVideoReceiveStreams().size()); 1684 EXPECT_EQ(1u, fake_call_->GetVideoReceiveStreams().size());
1672 } 1685 }
1673 1686
1674 TEST_F(WebRtcVideoChannelTest, RtcpIsCompoundByDefault) { 1687 TEST_F(WebRtcVideoChannelTest, RtcpIsCompoundByDefault) {
1675 FakeVideoReceiveStream* stream = AddRecvStream(); 1688 FakeVideoReceiveStream* stream = AddRecvStream();
1676 EXPECT_EQ(webrtc::RtcpMode::kCompound, stream->GetConfig().rtp.rtcp_mode); 1689 EXPECT_EQ(webrtc::RtcpMode::kCompound, stream->GetConfig().rtp.rtcp_mode);
1677 } 1690 }
(...skipping 1115 matching lines...) Expand 10 before | Expand all | Expand 10 after
2793 EXPECT_EQ(video_stream_config.rtp.local_ssrc, 2806 EXPECT_EQ(video_stream_config.rtp.local_ssrc,
2794 flexfec_stream_config.local_ssrc); 2807 flexfec_stream_config.local_ssrc);
2795 EXPECT_EQ(video_stream_config.rtp.rtcp_mode, flexfec_stream_config.rtcp_mode); 2808 EXPECT_EQ(video_stream_config.rtp.rtcp_mode, flexfec_stream_config.rtcp_mode);
2796 EXPECT_EQ(video_stream_config.rtcp_send_transport, 2809 EXPECT_EQ(video_stream_config.rtcp_send_transport,
2797 flexfec_stream_config.rtcp_send_transport); 2810 flexfec_stream_config.rtcp_send_transport);
2798 // TODO(brandtr): Update this EXPECT when we set |transport_cc| in a 2811 // TODO(brandtr): Update this EXPECT when we set |transport_cc| in a
2799 // spec-compliant way. 2812 // spec-compliant way.
2800 EXPECT_EQ(video_stream_config.rtp.transport_cc, 2813 EXPECT_EQ(video_stream_config.rtp.transport_cc,
2801 flexfec_stream_config.transport_cc); 2814 flexfec_stream_config.transport_cc);
2802 EXPECT_EQ(video_stream_config.rtp.rtcp_mode, flexfec_stream_config.rtcp_mode); 2815 EXPECT_EQ(video_stream_config.rtp.rtcp_mode, flexfec_stream_config.rtcp_mode);
2816 #if 0
2803 EXPECT_EQ(video_stream_config.rtp.extensions, 2817 EXPECT_EQ(video_stream_config.rtp.extensions,
2804 flexfec_stream_config.rtp_header_extensions); 2818 flexfec_stream_config.rtp_header_extensions);
2819 #endif
2805 } 2820 }
2806 2821
2807 // We should not send FlexFEC, even if we advertise it, unless the right 2822 // We should not send FlexFEC, even if we advertise it, unless the right
2808 // field trial is set. 2823 // field trial is set.
2809 // TODO(brandtr): Remove when FlexFEC is enabled by default. 2824 // TODO(brandtr): Remove when FlexFEC is enabled by default.
2810 TEST_F(WebRtcVideoChannelFlexfecRecvTest, 2825 TEST_F(WebRtcVideoChannelFlexfecRecvTest,
2811 SetSendCodecsWithoutSsrcWithFecDoesNotEnableFec) { 2826 SetSendCodecsWithoutSsrcWithFecDoesNotEnableFec) {
2812 cricket::VideoSendParameters parameters; 2827 cricket::VideoSendParameters parameters;
2813 parameters.codecs.push_back(GetEngineCodec("VP8")); 2828 parameters.codecs.push_back(GetEngineCodec("VP8"));
2814 parameters.codecs.push_back(GetEngineCodec("flexfec-03")); 2829 parameters.codecs.push_back(GetEngineCodec("flexfec-03"));
(...skipping 1970 matching lines...) Expand 10 before | Expand all | Expand 10 after
4785 4800
4786 TEST_F(WebRtcVideoChannelSimulcastTest, 4801 TEST_F(WebRtcVideoChannelSimulcastTest,
4787 NoSimulcastScreenshareWithoutConference) { 4802 NoSimulcastScreenshareWithoutConference) {
4788 webrtc::test::ScopedFieldTrials override_field_trials_( 4803 webrtc::test::ScopedFieldTrials override_field_trials_(
4789 "WebRTC-SimulcastScreenshare/Enabled/"); 4804 "WebRTC-SimulcastScreenshare/Enabled/");
4790 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 1, true, 4805 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 1, true,
4791 false); 4806 false);
4792 } 4807 }
4793 4808
4794 } // namespace cricket 4809 } // namespace cricket
OLDNEW
« no previous file with comments | « media/engine/webrtcvideoengine.cc ('k') | pc/webrtcsession.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698