OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2014 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 * This file includes unit tests for the RtcpPacket. | 10 * This file includes unit tests for the RtcpPacket. |
(...skipping 17 matching lines...) Expand all Loading... |
28 using webrtc::rtcp::Fir; | 28 using webrtc::rtcp::Fir; |
29 using webrtc::rtcp::RawPacket; | 29 using webrtc::rtcp::RawPacket; |
30 using webrtc::rtcp::ReceiverReport; | 30 using webrtc::rtcp::ReceiverReport; |
31 using webrtc::rtcp::Remb; | 31 using webrtc::rtcp::Remb; |
32 using webrtc::rtcp::ReportBlock; | 32 using webrtc::rtcp::ReportBlock; |
33 using webrtc::rtcp::Rpsi; | 33 using webrtc::rtcp::Rpsi; |
34 using webrtc::rtcp::Rrtr; | 34 using webrtc::rtcp::Rrtr; |
35 using webrtc::rtcp::Sdes; | 35 using webrtc::rtcp::Sdes; |
36 using webrtc::rtcp::SenderReport; | 36 using webrtc::rtcp::SenderReport; |
37 using webrtc::rtcp::Sli; | 37 using webrtc::rtcp::Sli; |
38 using webrtc::rtcp::Tmmbr; | |
39 using webrtc::rtcp::VoipMetric; | 38 using webrtc::rtcp::VoipMetric; |
40 using webrtc::rtcp::Xr; | 39 using webrtc::rtcp::Xr; |
41 using webrtc::test::RtcpPacketParser; | 40 using webrtc::test::RtcpPacketParser; |
42 | 41 |
43 namespace webrtc { | 42 namespace webrtc { |
44 | 43 |
45 const uint32_t kSenderSsrc = 0x12345678; | 44 const uint32_t kSenderSsrc = 0x12345678; |
46 const uint32_t kRemoteSsrc = 0x23456789; | 45 const uint32_t kRemoteSsrc = 0x23456789; |
47 | 46 |
48 TEST(RtcpPacketTest, Sr) { | 47 TEST(RtcpPacketTest, Sr) { |
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
489 EXPECT_EQ(1, parser.psfb_app()->num_packets()); | 488 EXPECT_EQ(1, parser.psfb_app()->num_packets()); |
490 EXPECT_EQ(kSenderSsrc, parser.psfb_app()->Ssrc()); | 489 EXPECT_EQ(kSenderSsrc, parser.psfb_app()->Ssrc()); |
491 EXPECT_EQ(1, parser.remb_item()->num_packets()); | 490 EXPECT_EQ(1, parser.remb_item()->num_packets()); |
492 EXPECT_EQ(261011, parser.remb_item()->last_bitrate_bps()); | 491 EXPECT_EQ(261011, parser.remb_item()->last_bitrate_bps()); |
493 std::vector<uint32_t> ssrcs = parser.remb_item()->last_ssrc_list(); | 492 std::vector<uint32_t> ssrcs = parser.remb_item()->last_ssrc_list(); |
494 EXPECT_EQ(kRemoteSsrc, ssrcs[0]); | 493 EXPECT_EQ(kRemoteSsrc, ssrcs[0]); |
495 EXPECT_EQ(kRemoteSsrc + 1, ssrcs[1]); | 494 EXPECT_EQ(kRemoteSsrc + 1, ssrcs[1]); |
496 EXPECT_EQ(kRemoteSsrc + 2, ssrcs[2]); | 495 EXPECT_EQ(kRemoteSsrc + 2, ssrcs[2]); |
497 } | 496 } |
498 | 497 |
499 TEST(RtcpPacketTest, Tmmbr) { | |
500 Tmmbr tmmbr; | |
501 tmmbr.From(kSenderSsrc); | |
502 tmmbr.To(kRemoteSsrc); | |
503 tmmbr.WithBitrateKbps(312); | |
504 tmmbr.WithOverhead(60); | |
505 | |
506 rtc::scoped_ptr<RawPacket> packet(tmmbr.Build()); | |
507 RtcpPacketParser parser; | |
508 parser.Parse(packet->Buffer(), packet->Length()); | |
509 EXPECT_EQ(1, parser.tmmbr()->num_packets()); | |
510 EXPECT_EQ(kSenderSsrc, parser.tmmbr()->Ssrc()); | |
511 EXPECT_EQ(1, parser.tmmbr_item()->num_packets()); | |
512 EXPECT_EQ(312U, parser.tmmbr_item()->BitrateKbps()); | |
513 EXPECT_EQ(60U, parser.tmmbr_item()->Overhead()); | |
514 } | |
515 | |
516 TEST(RtcpPacketTest, XrWithNoReportBlocks) { | 498 TEST(RtcpPacketTest, XrWithNoReportBlocks) { |
517 Xr xr; | 499 Xr xr; |
518 xr.From(kSenderSsrc); | 500 xr.From(kSenderSsrc); |
519 | 501 |
520 rtc::scoped_ptr<RawPacket> packet(xr.Build()); | 502 rtc::scoped_ptr<RawPacket> packet(xr.Build()); |
521 RtcpPacketParser parser; | 503 RtcpPacketParser parser; |
522 parser.Parse(packet->Buffer(), packet->Length()); | 504 parser.Parse(packet->Buffer(), packet->Length()); |
523 EXPECT_EQ(1, parser.xr_header()->num_packets()); | 505 EXPECT_EQ(1, parser.xr_header()->num_packets()); |
524 EXPECT_EQ(kSenderSsrc, parser.xr_header()->Ssrc()); | 506 EXPECT_EQ(kSenderSsrc, parser.xr_header()->Ssrc()); |
525 } | 507 } |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
750 EXPECT_TRUE(xr.WithDlrr(&dlrr)); | 732 EXPECT_TRUE(xr.WithDlrr(&dlrr)); |
751 EXPECT_FALSE(xr.WithDlrr(&dlrr)); | 733 EXPECT_FALSE(xr.WithDlrr(&dlrr)); |
752 | 734 |
753 VoipMetric voip_metric; | 735 VoipMetric voip_metric; |
754 for (int i = 0; i < kMaxBlocks; ++i) | 736 for (int i = 0; i < kMaxBlocks; ++i) |
755 EXPECT_TRUE(xr.WithVoipMetric(&voip_metric)); | 737 EXPECT_TRUE(xr.WithVoipMetric(&voip_metric)); |
756 EXPECT_FALSE(xr.WithVoipMetric(&voip_metric)); | 738 EXPECT_FALSE(xr.WithVoipMetric(&voip_metric)); |
757 } | 739 } |
758 | 740 |
759 } // namespace webrtc | 741 } // namespace webrtc |
OLD | NEW |