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

Side by Side Diff: webrtc/video/end_to_end_tests.cc

Issue 2372113005: Replace RTCPUtility RTCPParser with TestRtcpParser (Closed)
Patch Set: Rebase Created 4 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 | « webrtc/test/rtcp_packet_parser.cc ('k') | webrtc/video/video_send_stream_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 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 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 #include <algorithm> 10 #include <algorithm>
(...skipping 12 matching lines...) Expand all
23 #include "webrtc/call.h" 23 #include "webrtc/call.h"
24 #include "webrtc/call/transport_adapter.h" 24 #include "webrtc/call/transport_adapter.h"
25 #include "webrtc/common_video/include/frame_callback.h" 25 #include "webrtc/common_video/include/frame_callback.h"
26 #include "webrtc/logging/rtc_event_log/rtc_event_log.h" 26 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
27 #include "webrtc/media/base/fakevideorenderer.h" 27 #include "webrtc/media/base/fakevideorenderer.h"
28 #include "webrtc/modules/include/module_common_types.h" 28 #include "webrtc/modules/include/module_common_types.h"
29 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h" 29 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h"
30 #include "webrtc/modules/rtp_rtcp/source/byte_io.h" 30 #include "webrtc/modules/rtp_rtcp/source/byte_io.h"
31 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/nack.h" 31 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/nack.h"
32 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request.h" 32 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request.h"
33 #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h"
34 #include "webrtc/modules/rtp_rtcp/source/rtp_utility.h" 33 #include "webrtc/modules/rtp_rtcp/source/rtp_utility.h"
35 #include "webrtc/modules/video_coding/codecs/h264/include/h264.h" 34 #include "webrtc/modules/video_coding/codecs/h264/include/h264.h"
36 #include "webrtc/modules/video_coding/codecs/vp8/include/vp8.h" 35 #include "webrtc/modules/video_coding/codecs/vp8/include/vp8.h"
37 #include "webrtc/modules/video_coding/codecs/vp9/include/vp9.h" 36 #include "webrtc/modules/video_coding/codecs/vp9/include/vp9.h"
38 #include "webrtc/modules/video_coding/include/video_coding_defines.h" 37 #include "webrtc/modules/video_coding/include/video_coding_defines.h"
39 #include "webrtc/system_wrappers/include/metrics.h" 38 #include "webrtc/system_wrappers/include/metrics.h"
40 #include "webrtc/system_wrappers/include/metrics_default.h" 39 #include "webrtc/system_wrappers/include/metrics_default.h"
41 #include "webrtc/system_wrappers/include/sleep.h" 40 #include "webrtc/system_wrappers/include/sleep.h"
42 #include "webrtc/test/call_test.h" 41 #include "webrtc/test/call_test.h"
43 #include "webrtc/test/direct_transport.h" 42 #include "webrtc/test/direct_transport.h"
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 } 390 }
392 391
393 #endif // defined(WEBRTC_END_TO_END_H264_TESTS) 392 #endif // defined(WEBRTC_END_TO_END_H264_TESTS)
394 393
395 TEST_F(EndToEndTest, ReceiverUsesLocalSsrc) { 394 TEST_F(EndToEndTest, ReceiverUsesLocalSsrc) {
396 class SyncRtcpObserver : public test::EndToEndTest { 395 class SyncRtcpObserver : public test::EndToEndTest {
397 public: 396 public:
398 SyncRtcpObserver() : EndToEndTest(kDefaultTimeoutMs) {} 397 SyncRtcpObserver() : EndToEndTest(kDefaultTimeoutMs) {}
399 398
400 Action OnReceiveRtcp(const uint8_t* packet, size_t length) override { 399 Action OnReceiveRtcp(const uint8_t* packet, size_t length) override {
401 RTCPUtility::RTCPParserV2 parser(packet, length, true); 400 test::RtcpPacketParser parser;
402 EXPECT_TRUE(parser.IsValid()); 401 EXPECT_TRUE(parser.Parse(packet, length));
403 uint32_t ssrc = 0; 402 EXPECT_EQ(kReceiverLocalVideoSsrc, parser.sender_ssrc());
404 ssrc |= static_cast<uint32_t>(packet[4]) << 24;
405 ssrc |= static_cast<uint32_t>(packet[5]) << 16;
406 ssrc |= static_cast<uint32_t>(packet[6]) << 8;
407 ssrc |= static_cast<uint32_t>(packet[7]) << 0;
408 EXPECT_EQ(kReceiverLocalVideoSsrc, ssrc);
409 observation_complete_.Set(); 403 observation_complete_.Set();
410 404
411 return SEND_PACKET; 405 return SEND_PACKET;
412 } 406 }
413 407
414 void PerformTest() override { 408 void PerformTest() override {
415 EXPECT_TRUE(Wait()) 409 EXPECT_TRUE(Wait())
416 << "Timed out while waiting for a receiver RTCP packet to be sent."; 410 << "Timed out while waiting for a receiver RTCP packet to be sent.";
417 } 411 }
418 } test; 412 } test;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 --packets_left_to_drop_; 458 --packets_left_to_drop_;
465 dropped_packets_.insert(header.sequenceNumber); 459 dropped_packets_.insert(header.sequenceNumber);
466 return DROP_PACKET; 460 return DROP_PACKET;
467 } 461 }
468 462
469 return SEND_PACKET; 463 return SEND_PACKET;
470 } 464 }
471 465
472 Action OnReceiveRtcp(const uint8_t* packet, size_t length) override { 466 Action OnReceiveRtcp(const uint8_t* packet, size_t length) override {
473 rtc::CritScope lock(&crit_); 467 rtc::CritScope lock(&crit_);
474 RTCPUtility::RTCPParserV2 parser(packet, length, true); 468 test::RtcpPacketParser parser;
475 EXPECT_TRUE(parser.IsValid()); 469 EXPECT_TRUE(parser.Parse(packet, length));
476 470 nacks_left_ -= parser.nack()->num_packets();
477 RTCPUtility::RTCPPacketTypes packet_type = parser.Begin();
478 while (packet_type != RTCPUtility::RTCPPacketTypes::kInvalid) {
479 if (packet_type == RTCPUtility::RTCPPacketTypes::kRtpfbNack) {
480 --nacks_left_;
481 break;
482 }
483 packet_type = parser.Iterate();
484 }
485 return SEND_PACKET; 471 return SEND_PACKET;
486 } 472 }
487 473
488 void ModifyVideoConfigs( 474 void ModifyVideoConfigs(
489 VideoSendStream::Config* send_config, 475 VideoSendStream::Config* send_config,
490 std::vector<VideoReceiveStream::Config>* receive_configs, 476 std::vector<VideoReceiveStream::Config>* receive_configs,
491 VideoEncoderConfig* encoder_config) override { 477 VideoEncoderConfig* encoder_config) override {
492 send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 478 send_config->rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
493 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs; 479 (*receive_configs)[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
494 } 480 }
(...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after
1022 highest_dropped_timestamp_ = header.timestamp; 1008 highest_dropped_timestamp_ = header.timestamp;
1023 --frames_to_drop_; 1009 --frames_to_drop_;
1024 return DROP_PACKET; 1010 return DROP_PACKET;
1025 } 1011 }
1026 1012
1027 return SEND_PACKET; 1013 return SEND_PACKET;
1028 } 1014 }
1029 1015
1030 Action OnReceiveRtcp(const uint8_t* packet, size_t length) override { 1016 Action OnReceiveRtcp(const uint8_t* packet, size_t length) override {
1031 rtc::CritScope lock(&crit_); 1017 rtc::CritScope lock(&crit_);
1032 RTCPUtility::RTCPParserV2 parser(packet, length, true); 1018 test::RtcpPacketParser parser;
1033 EXPECT_TRUE(parser.IsValid()); 1019 EXPECT_TRUE(parser.Parse(packet, length));
1034 1020 if (!nack_enabled_)
1035 for (RTCPUtility::RTCPPacketTypes packet_type = parser.Begin(); 1021 EXPECT_EQ(0, parser.nack()->num_packets());
1036 packet_type != RTCPUtility::RTCPPacketTypes::kInvalid; 1022 if (parser.pli()->num_packets() > 0)
1037 packet_type = parser.Iterate()) { 1023 received_pli_ = true;
1038 if (!nack_enabled_)
1039 EXPECT_NE(packet_type, RTCPUtility::RTCPPacketTypes::kRtpfbNack);
1040
1041 if (packet_type == RTCPUtility::RTCPPacketTypes::kPsfbPli) {
1042 received_pli_ = true;
1043 break;
1044 }
1045 }
1046 return SEND_PACKET; 1024 return SEND_PACKET;
1047 } 1025 }
1048 1026
1049 void OnFrame(const VideoFrame& video_frame) override { 1027 void OnFrame(const VideoFrame& video_frame) override {
1050 rtc::CritScope lock(&crit_); 1028 rtc::CritScope lock(&crit_);
1051 if (received_pli_ && 1029 if (received_pli_ &&
1052 video_frame.timestamp() > highest_dropped_timestamp_) { 1030 video_frame.timestamp() > highest_dropped_timestamp_) {
1053 observation_complete_.Set(); 1031 observation_complete_.Set();
1054 } 1032 }
1055 if (!received_pli_) 1033 if (!received_pli_)
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
1162 private: 1140 private:
1163 Action OnSendRtp(const uint8_t* packet, size_t length) override { 1141 Action OnSendRtp(const uint8_t* packet, size_t length) override {
1164 if (++sent_rtp_ % 3 == 0) 1142 if (++sent_rtp_ % 3 == 0)
1165 return DROP_PACKET; 1143 return DROP_PACKET;
1166 1144
1167 return SEND_PACKET; 1145 return SEND_PACKET;
1168 } 1146 }
1169 1147
1170 Action OnReceiveRtcp(const uint8_t* packet, size_t length) override { 1148 Action OnReceiveRtcp(const uint8_t* packet, size_t length) override {
1171 ++sent_rtcp_; 1149 ++sent_rtcp_;
1172 RTCPUtility::RTCPParserV2 parser(packet, length, true); 1150 test::RtcpPacketParser parser;
1173 EXPECT_TRUE(parser.IsValid()); 1151 EXPECT_TRUE(parser.Parse(packet, length));
1174 1152
1175 RTCPUtility::RTCPPacketTypes packet_type = parser.Begin(); 1153 EXPECT_EQ(0, parser.sender_report()->num_packets());
1176 bool has_report_block = false;
1177 while (packet_type != RTCPUtility::RTCPPacketTypes::kInvalid) {
1178 EXPECT_NE(RTCPUtility::RTCPPacketTypes::kSr, packet_type);
1179 if (packet_type == RTCPUtility::RTCPPacketTypes::kRr) {
1180 has_report_block = true;
1181 break;
1182 }
1183 packet_type = parser.Iterate();
1184 }
1185 1154
1186 switch (rtcp_mode_) { 1155 switch (rtcp_mode_) {
1187 case RtcpMode::kCompound: 1156 case RtcpMode::kCompound:
1188 if (!has_report_block) { 1157 if (parser.receiver_report()->num_packets() == 0) {
1189 ADD_FAILURE() << "Received RTCP packet without receiver report for " 1158 ADD_FAILURE() << "Received RTCP packet without receiver report for "
1190 "RtcpMode::kCompound."; 1159 "RtcpMode::kCompound.";
1191 observation_complete_.Set(); 1160 observation_complete_.Set();
1192 } 1161 }
1193 1162
1194 if (sent_rtcp_ >= kNumCompoundRtcpPacketsToObserve) 1163 if (sent_rtcp_ >= kNumCompoundRtcpPacketsToObserve)
1195 observation_complete_.Set(); 1164 observation_complete_.Set();
1196 1165
1197 break; 1166 break;
1198 case RtcpMode::kReducedSize: 1167 case RtcpMode::kReducedSize:
1199 if (!has_report_block) 1168 if (parser.receiver_report()->num_packets() == 0)
1200 observation_complete_.Set(); 1169 observation_complete_.Set();
1201 break; 1170 break;
1202 case RtcpMode::kOff: 1171 case RtcpMode::kOff:
1203 RTC_NOTREACHED(); 1172 RTC_NOTREACHED();
1204 break; 1173 break;
1205 } 1174 }
1206 1175
1207 return SEND_PACKET; 1176 return SEND_PACKET;
1208 } 1177 }
1209 1178
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after
1632 return SEND_PACKET; 1601 return SEND_PACKET;
1633 } 1602 }
1634 1603
1635 Action OnReceiveRtcp(const uint8_t* data, size_t length) override { 1604 Action OnReceiveRtcp(const uint8_t* data, size_t length) override {
1636 if (HasTransportFeedback(data, length)) 1605 if (HasTransportFeedback(data, length))
1637 observation_complete_.Set(); 1606 observation_complete_.Set();
1638 return SEND_PACKET; 1607 return SEND_PACKET;
1639 } 1608 }
1640 1609
1641 bool HasTransportFeedback(const uint8_t* data, size_t length) const { 1610 bool HasTransportFeedback(const uint8_t* data, size_t length) const {
1642 RTCPUtility::RTCPParserV2 parser(data, length, true); 1611 test::RtcpPacketParser parser;
1643 EXPECT_TRUE(parser.IsValid()); 1612 EXPECT_TRUE(parser.Parse(data, length));
1644 1613 return parser.transport_feedback()->num_packets() > 0;
1645 RTCPUtility::RTCPPacketTypes packet_type = parser.Begin();
1646 while (packet_type != RTCPUtility::RTCPPacketTypes::kInvalid) {
1647 if (packet_type == RTCPUtility::RTCPPacketTypes::kTransportFeedback)
1648 return true;
1649 packet_type = parser.Iterate();
1650 }
1651
1652 return false;
1653 } 1614 }
1654 1615
1655 void PerformTest() override { 1616 void PerformTest() override {
1656 const int64_t kDisabledFeedbackTimeoutMs = 5000; 1617 const int64_t kDisabledFeedbackTimeoutMs = 5000;
1657 EXPECT_EQ(feedback_enabled_, 1618 EXPECT_EQ(feedback_enabled_,
1658 observation_complete_.Wait(feedback_enabled_ 1619 observation_complete_.Wait(feedback_enabled_
1659 ? test::CallTest::kDefaultTimeoutMs 1620 ? test::CallTest::kDefaultTimeoutMs
1660 : kDisabledFeedbackTimeoutMs)); 1621 : kDisabledFeedbackTimeoutMs));
1661 } 1622 }
1662 1623
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
1795 1756
1796 DestroyStreams(); 1757 DestroyStreams();
1797 } 1758 }
1798 1759
1799 TEST_F(EndToEndTest, ReceiveStreamSendsRemb) { 1760 TEST_F(EndToEndTest, ReceiveStreamSendsRemb) {
1800 class RembObserver : public test::EndToEndTest { 1761 class RembObserver : public test::EndToEndTest {
1801 public: 1762 public:
1802 RembObserver() : EndToEndTest(kDefaultTimeoutMs) {} 1763 RembObserver() : EndToEndTest(kDefaultTimeoutMs) {}
1803 1764
1804 Action OnReceiveRtcp(const uint8_t* packet, size_t length) override { 1765 Action OnReceiveRtcp(const uint8_t* packet, size_t length) override {
1805 RTCPUtility::RTCPParserV2 parser(packet, length, true); 1766 test::RtcpPacketParser parser;
1806 EXPECT_TRUE(parser.IsValid()); 1767 EXPECT_TRUE(parser.Parse(packet, length));
1807 1768
1808 bool received_psfb = false; 1769 if (parser.remb()->num_packets() > 0) {
1809 bool received_remb = false; 1770 EXPECT_EQ(kReceiverLocalVideoSsrc, parser.remb()->sender_ssrc());
1810 RTCPUtility::RTCPPacketTypes packet_type = parser.Begin(); 1771 EXPECT_LT(0U, parser.remb()->bitrate_bps());
1811 while (packet_type != RTCPUtility::RTCPPacketTypes::kInvalid) { 1772 EXPECT_EQ(1U, parser.remb()->ssrcs().size());
1812 if (packet_type == RTCPUtility::RTCPPacketTypes::kPsfbRemb) { 1773 EXPECT_EQ(kVideoSendSsrcs[0], parser.remb()->ssrcs()[0]);
1813 const RTCPUtility::RTCPPacket& packet = parser.Packet(); 1774 observation_complete_.Set();
1814 EXPECT_EQ(packet.PSFBAPP.SenderSSRC, kReceiverLocalVideoSsrc);
1815 received_psfb = true;
1816 } else if (packet_type == RTCPUtility::RTCPPacketTypes::kPsfbRembItem) {
1817 const RTCPUtility::RTCPPacket& packet = parser.Packet();
1818 EXPECT_GT(packet.REMBItem.BitRate, 0u);
1819 EXPECT_EQ(packet.REMBItem.NumberOfSSRCs, 1u);
1820 EXPECT_EQ(packet.REMBItem.SSRCs[0], kVideoSendSsrcs[0]);
1821 received_remb = true;
1822 }
1823 packet_type = parser.Iterate();
1824 } 1775 }
1825 if (received_psfb && received_remb) 1776
1826 observation_complete_.Set();
1827 return SEND_PACKET; 1777 return SEND_PACKET;
1828 } 1778 }
1829 void PerformTest() override { 1779 void PerformTest() override {
1830 EXPECT_TRUE(Wait()) << "Timed out while waiting for a " 1780 EXPECT_TRUE(Wait()) << "Timed out while waiting for a "
1831 "receiver RTCP REMB packet to be " 1781 "receiver RTCP REMB packet to be "
1832 "sent."; 1782 "sent.";
1833 } 1783 }
1834 } test; 1784 } test;
1835 1785
1836 RunBaseTest(&test); 1786 RunBaseTest(&test);
(...skipping 542 matching lines...) Expand 10 before | Expand all | Expand 10 after
2379 enable_rrtr_(enable_rrtr), 2329 enable_rrtr_(enable_rrtr),
2380 sent_rtcp_sr_(0), 2330 sent_rtcp_sr_(0),
2381 sent_rtcp_rr_(0), 2331 sent_rtcp_rr_(0),
2382 sent_rtcp_rrtr_(0), 2332 sent_rtcp_rrtr_(0),
2383 sent_rtcp_dlrr_(0) {} 2333 sent_rtcp_dlrr_(0) {}
2384 2334
2385 private: 2335 private:
2386 // Receive stream should send RR packets (and RRTR packets if enabled). 2336 // Receive stream should send RR packets (and RRTR packets if enabled).
2387 Action OnReceiveRtcp(const uint8_t* packet, size_t length) override { 2337 Action OnReceiveRtcp(const uint8_t* packet, size_t length) override {
2388 rtc::CritScope lock(&crit_); 2338 rtc::CritScope lock(&crit_);
2389 RTCPUtility::RTCPParserV2 parser(packet, length, true); 2339 test::RtcpPacketParser parser;
2390 EXPECT_TRUE(parser.IsValid()); 2340 EXPECT_TRUE(parser.Parse(packet, length));
2391 2341
2392 RTCPUtility::RTCPPacketTypes packet_type = parser.Begin(); 2342 sent_rtcp_rr_ += parser.receiver_report()->num_packets();
2393 while (packet_type != RTCPUtility::RTCPPacketTypes::kInvalid) { 2343 EXPECT_EQ(0, parser.sender_report()->num_packets());
2394 if (packet_type == RTCPUtility::RTCPPacketTypes::kRr) { 2344 EXPECT_GE(1, parser.xr()->num_packets());
2395 ++sent_rtcp_rr_; 2345 if (parser.xr()->num_packets() > 0) {
2396 } else if (packet_type == 2346 if (parser.xr()->rrtr())
2397 RTCPUtility::RTCPPacketTypes::kXrReceiverReferenceTime) {
2398 ++sent_rtcp_rrtr_; 2347 ++sent_rtcp_rrtr_;
2399 } 2348 EXPECT_FALSE(parser.xr()->dlrr());
2400 EXPECT_NE(packet_type, RTCPUtility::RTCPPacketTypes::kSr);
2401 EXPECT_NE(packet_type,
2402 RTCPUtility::RTCPPacketTypes::kXrDlrrReportBlockItem);
2403 packet_type = parser.Iterate();
2404 } 2349 }
2350
2405 return SEND_PACKET; 2351 return SEND_PACKET;
2406 } 2352 }
2407 // Send stream should send SR packets (and DLRR packets if enabled). 2353 // Send stream should send SR packets (and DLRR packets if enabled).
2408 Action OnSendRtcp(const uint8_t* packet, size_t length) override { 2354 Action OnSendRtcp(const uint8_t* packet, size_t length) override {
2409 rtc::CritScope lock(&crit_); 2355 rtc::CritScope lock(&crit_);
2410 RTCPUtility::RTCPParserV2 parser(packet, length, true); 2356 test::RtcpPacketParser parser;
2411 EXPECT_TRUE(parser.IsValid()); 2357 EXPECT_TRUE(parser.Parse(packet, length));
2412 2358
2413 RTCPUtility::RTCPPacketTypes packet_type = parser.Begin(); 2359 sent_rtcp_sr_ += parser.sender_report()->num_packets();
2414 while (packet_type != RTCPUtility::RTCPPacketTypes::kInvalid) { 2360 EXPECT_GE(1, parser.xr()->num_packets());
2415 if (packet_type == RTCPUtility::RTCPPacketTypes::kSr) { 2361 if (parser.xr()->num_packets() > 0) {
2416 ++sent_rtcp_sr_; 2362 EXPECT_FALSE(parser.xr()->rrtr());
2417 } else if (packet_type == 2363 if (parser.xr()->dlrr())
2418 RTCPUtility::RTCPPacketTypes::kXrDlrrReportBlockItem) {
2419 ++sent_rtcp_dlrr_; 2364 ++sent_rtcp_dlrr_;
2420 }
2421 EXPECT_NE(packet_type,
2422 RTCPUtility::RTCPPacketTypes::kXrReceiverReferenceTime);
2423 packet_type = parser.Iterate();
2424 } 2365 }
2366
2425 if (sent_rtcp_sr_ > kNumRtcpReportPacketsToObserve && 2367 if (sent_rtcp_sr_ > kNumRtcpReportPacketsToObserve &&
2426 sent_rtcp_rr_ > kNumRtcpReportPacketsToObserve) { 2368 sent_rtcp_rr_ > kNumRtcpReportPacketsToObserve) {
2427 if (enable_rrtr_) { 2369 if (enable_rrtr_) {
2428 EXPECT_GT(sent_rtcp_rrtr_, 0); 2370 EXPECT_LT(0, sent_rtcp_rrtr_);
2429 EXPECT_GT(sent_rtcp_dlrr_, 0); 2371 EXPECT_LT(0, sent_rtcp_dlrr_);
2430 } else { 2372 } else {
2431 EXPECT_EQ(0, sent_rtcp_rrtr_); 2373 EXPECT_EQ(0, sent_rtcp_rrtr_);
2432 EXPECT_EQ(0, sent_rtcp_dlrr_); 2374 EXPECT_EQ(0, sent_rtcp_dlrr_);
2433 } 2375 }
2434 observation_complete_.Set(); 2376 observation_complete_.Set();
2435 } 2377 }
2436 return SEND_PACKET; 2378 return SEND_PACKET;
2437 } 2379 }
2438 2380
2439 void ModifyVideoConfigs( 2381 void ModifyVideoConfigs(
(...skipping 1522 matching lines...) Expand 10 before | Expand all | Expand 10 after
3962 std::unique_ptr<VideoEncoder> encoder_; 3904 std::unique_ptr<VideoEncoder> encoder_;
3963 std::unique_ptr<VideoDecoder> decoder_; 3905 std::unique_ptr<VideoDecoder> decoder_;
3964 rtc::CriticalSection crit_; 3906 rtc::CriticalSection crit_;
3965 int recorded_frames_ GUARDED_BY(crit_); 3907 int recorded_frames_ GUARDED_BY(crit_);
3966 } test(this); 3908 } test(this);
3967 3909
3968 RunBaseTest(&test); 3910 RunBaseTest(&test);
3969 } 3911 }
3970 3912
3971 } // namespace webrtc 3913 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/test/rtcp_packet_parser.cc ('k') | webrtc/video/video_send_stream_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698