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

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

Issue 1333483002: Wire up PacketTime to ReceiveStreams. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 3 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 | « webrtc/video/call_perf_tests.cc ('k') | webrtc/video/full_stack.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 975 matching lines...) Expand 10 before | Expand all | Expand 10 after
986 class PacketInputObserver : public PacketReceiver { 986 class PacketInputObserver : public PacketReceiver {
987 public: 987 public:
988 explicit PacketInputObserver(PacketReceiver* receiver) 988 explicit PacketInputObserver(PacketReceiver* receiver)
989 : receiver_(receiver), delivered_packet_(EventWrapper::Create()) {} 989 : receiver_(receiver), delivered_packet_(EventWrapper::Create()) {}
990 990
991 EventTypeWrapper Wait() { 991 EventTypeWrapper Wait() {
992 return delivered_packet_->Wait(kDefaultTimeoutMs); 992 return delivered_packet_->Wait(kDefaultTimeoutMs);
993 } 993 }
994 994
995 private: 995 private:
996 DeliveryStatus DeliverPacket(MediaType media_type, const uint8_t* packet, 996 DeliveryStatus DeliverPacket(MediaType media_type,
997 size_t length) override { 997 const uint8_t* packet,
998 size_t length,
999 const PacketTime& packet_time) override {
998 if (RtpHeaderParser::IsRtcp(packet, length)) { 1000 if (RtpHeaderParser::IsRtcp(packet, length)) {
999 return receiver_->DeliverPacket(media_type, packet, length); 1001 return receiver_->DeliverPacket(media_type, packet, length,
1002 packet_time);
1000 } else { 1003 } else {
1001 DeliveryStatus delivery_status = 1004 DeliveryStatus delivery_status =
1002 receiver_->DeliverPacket(media_type, packet, length); 1005 receiver_->DeliverPacket(media_type, packet, length, packet_time);
1003 EXPECT_EQ(DELIVERY_UNKNOWN_SSRC, delivery_status); 1006 EXPECT_EQ(DELIVERY_UNKNOWN_SSRC, delivery_status);
1004 delivered_packet_->Set(); 1007 delivered_packet_->Set();
1005 return delivery_status; 1008 return delivery_status;
1006 } 1009 }
1007 } 1010 }
1008 1011
1009 PacketReceiver* receiver_; 1012 PacketReceiver* receiver_;
1010 rtc::scoped_ptr<EventWrapper> delivered_packet_; 1013 rtc::scoped_ptr<EventWrapper> delivered_packet_;
1011 }; 1014 };
1012 1015
(...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after
1545 1548
1546 TEST_F(EndToEndTest, VerifyBandwidthStats) { 1549 TEST_F(EndToEndTest, VerifyBandwidthStats) {
1547 class RtcpObserver : public test::EndToEndTest, public PacketReceiver { 1550 class RtcpObserver : public test::EndToEndTest, public PacketReceiver {
1548 public: 1551 public:
1549 RtcpObserver() 1552 RtcpObserver()
1550 : EndToEndTest(kDefaultTimeoutMs), 1553 : EndToEndTest(kDefaultTimeoutMs),
1551 sender_call_(nullptr), 1554 sender_call_(nullptr),
1552 receiver_call_(nullptr), 1555 receiver_call_(nullptr),
1553 has_seen_pacer_delay_(false) {} 1556 has_seen_pacer_delay_(false) {}
1554 1557
1555 DeliveryStatus DeliverPacket(MediaType media_type, const uint8_t* packet, 1558 DeliveryStatus DeliverPacket(MediaType media_type,
1556 size_t length) override { 1559 const uint8_t* packet,
1560 size_t length,
1561 const PacketTime& packet_time) override {
1557 Call::Stats sender_stats = sender_call_->GetStats(); 1562 Call::Stats sender_stats = sender_call_->GetStats();
1558 Call::Stats receiver_stats = receiver_call_->GetStats(); 1563 Call::Stats receiver_stats = receiver_call_->GetStats();
1559 if (!has_seen_pacer_delay_) 1564 if (!has_seen_pacer_delay_)
1560 has_seen_pacer_delay_ = sender_stats.pacer_delay_ms > 0; 1565 has_seen_pacer_delay_ = sender_stats.pacer_delay_ms > 0;
1561 if (sender_stats.send_bandwidth_bps > 0 && 1566 if (sender_stats.send_bandwidth_bps > 0 &&
1562 receiver_stats.recv_bandwidth_bps > 0 && has_seen_pacer_delay_) { 1567 receiver_stats.recv_bandwidth_bps > 0 && has_seen_pacer_delay_) {
1563 observation_complete_->Set(); 1568 observation_complete_->Set();
1564 } 1569 }
1565 return receiver_call_->Receiver()->DeliverPacket(media_type, packet, 1570 return receiver_call_->Receiver()->DeliverPacket(media_type, packet,
1566 length); 1571 length, packet_time);
1567 } 1572 }
1568 1573
1569 void OnCallsCreated(Call* sender_call, Call* receiver_call) override { 1574 void OnCallsCreated(Call* sender_call, Call* receiver_call) override {
1570 sender_call_ = sender_call; 1575 sender_call_ = sender_call;
1571 receiver_call_ = receiver_call; 1576 receiver_call_ = receiver_call;
1572 } 1577 }
1573 1578
1574 void PerformTest() override { 1579 void PerformTest() override {
1575 EXPECT_EQ(kEventSignaled, Wait()) << "Timed out while waiting for " 1580 EXPECT_EQ(kEventSignaled, Wait()) << "Timed out while waiting for "
1576 "non-zero bandwidth stats."; 1581 "non-zero bandwidth stats.";
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1712 start_runtime_ms_(-1) {} 1717 start_runtime_ms_(-1) {}
1713 1718
1714 private: 1719 private:
1715 Action OnSendRtp(const uint8_t* packet, size_t length) override { 1720 Action OnSendRtp(const uint8_t* packet, size_t length) override {
1716 if (MinMetricRunTimePassed()) 1721 if (MinMetricRunTimePassed())
1717 observation_complete_->Set(); 1722 observation_complete_->Set();
1718 1723
1719 return SEND_PACKET; 1724 return SEND_PACKET;
1720 } 1725 }
1721 1726
1722 DeliveryStatus DeliverPacket(MediaType media_type, const uint8_t* packet, 1727 DeliveryStatus DeliverPacket(MediaType media_type,
1723 size_t length) override { 1728 const uint8_t* packet,
1729 size_t length,
1730 const PacketTime& packet_time) override {
1724 // GetStats calls GetSendChannelRtcpStatistics 1731 // GetStats calls GetSendChannelRtcpStatistics
1725 // (via VideoSendStream::GetRtt) which updates ReportBlockStats used by 1732 // (via VideoSendStream::GetRtt) which updates ReportBlockStats used by
1726 // WebRTC.Video.SentPacketsLostInPercent. 1733 // WebRTC.Video.SentPacketsLostInPercent.
1727 // TODO(asapersson): Remove dependency on calling GetStats. 1734 // TODO(asapersson): Remove dependency on calling GetStats.
1728 sender_call_->GetStats(); 1735 sender_call_->GetStats();
1729 return receiver_call_->Receiver()->DeliverPacket(media_type, packet, 1736 return receiver_call_->Receiver()->DeliverPacket(media_type, packet,
1730 length); 1737 length, packet_time);
1731 } 1738 }
1732 1739
1733 bool MinMetricRunTimePassed() { 1740 bool MinMetricRunTimePassed() {
1734 int64_t now = Clock::GetRealTimeClock()->TimeInMilliseconds(); 1741 int64_t now = Clock::GetRealTimeClock()->TimeInMilliseconds();
1735 if (start_runtime_ms_ == -1) { 1742 if (start_runtime_ms_ == -1) {
1736 start_runtime_ms_ = now; 1743 start_runtime_ms_ = now;
1737 return false; 1744 return false;
1738 } 1745 }
1739 int64_t elapsed_sec = (now - start_runtime_ms_) / 1000; 1746 int64_t elapsed_sec = (now - start_runtime_ms_) / 1000;
1740 return elapsed_sec > metrics::kMinRunTimeInSeconds * 2; 1747 return elapsed_sec > metrics::kMinRunTimeInSeconds * 2;
(...skipping 1299 matching lines...) Expand 10 before | Expand all | Expand 10 after
3040 EXPECT_TRUE(default_receive_config.rtp.rtx.empty()) 3047 EXPECT_TRUE(default_receive_config.rtp.rtx.empty())
3041 << "Enabling RTX requires rtpmap: rtx negotiation."; 3048 << "Enabling RTX requires rtpmap: rtx negotiation.";
3042 EXPECT_TRUE(default_receive_config.rtp.extensions.empty()) 3049 EXPECT_TRUE(default_receive_config.rtp.extensions.empty())
3043 << "Enabling RTP extensions require negotiation."; 3050 << "Enabling RTP extensions require negotiation.";
3044 3051
3045 VerifyEmptyNackConfig(default_receive_config.rtp.nack); 3052 VerifyEmptyNackConfig(default_receive_config.rtp.nack);
3046 VerifyEmptyFecConfig(default_receive_config.rtp.fec); 3053 VerifyEmptyFecConfig(default_receive_config.rtp.fec);
3047 } 3054 }
3048 3055
3049 } // namespace webrtc 3056 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/video/call_perf_tests.cc ('k') | webrtc/video/full_stack.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698