| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |