OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2016 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 |
11 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/compound_packet.h" | 11 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/compound_packet.h" |
12 | 12 |
13 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
14 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet.h" | 14 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet.h" |
15 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/bye.h" | 15 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/bye.h" |
16 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/fir.h" | 16 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/fir.h" |
17 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/receiver_report.h" | 17 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/receiver_report.h" |
18 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.h" | 18 #include "webrtc/modules/rtp_rtcp/source/rtcp_packet/sender_report.h" |
19 #include "webrtc/test/rtcp_packet_parser.h" | 19 #include "webrtc/test/rtcp_packet_parser.h" |
20 | 20 |
21 using webrtc::rtcp::Bye; | 21 using webrtc::rtcp::Bye; |
22 using webrtc::rtcp::CompoundPacket; | 22 using webrtc::rtcp::CompoundPacket; |
23 using webrtc::rtcp::Fir; | 23 using webrtc::rtcp::Fir; |
24 using webrtc::rtcp::RawPacket; | |
25 using webrtc::rtcp::ReceiverReport; | 24 using webrtc::rtcp::ReceiverReport; |
26 using webrtc::rtcp::ReportBlock; | 25 using webrtc::rtcp::ReportBlock; |
27 using webrtc::rtcp::SenderReport; | 26 using webrtc::rtcp::SenderReport; |
28 using webrtc::test::RtcpPacketParser; | 27 using webrtc::test::RtcpPacketParser; |
29 | 28 |
30 namespace webrtc { | 29 namespace webrtc { |
31 | 30 |
32 const uint32_t kSenderSsrc = 0x12345678; | 31 const uint32_t kSenderSsrc = 0x12345678; |
33 const uint32_t kRemoteSsrc = 0x23456789; | 32 const uint32_t kRemoteSsrc = 0x23456789; |
34 const uint8_t kSeqNo = 13; | 33 const uint8_t kSeqNo = 13; |
35 | 34 |
36 TEST(RtcpCompoundPacketTest, AppendPacket) { | 35 TEST(RtcpCompoundPacketTest, AppendPacket) { |
37 Fir fir; | 36 Fir fir; |
38 fir.WithRequestTo(kRemoteSsrc, kSeqNo); | 37 fir.WithRequestTo(kRemoteSsrc, kSeqNo); |
39 ReportBlock rb; | 38 ReportBlock rb; |
40 ReceiverReport rr; | 39 ReceiverReport rr; |
41 rr.From(kSenderSsrc); | 40 rr.From(kSenderSsrc); |
42 EXPECT_TRUE(rr.WithReportBlock(rb)); | 41 EXPECT_TRUE(rr.WithReportBlock(rb)); |
43 rr.Append(&fir); | 42 rr.Append(&fir); |
44 | 43 |
45 rtc::scoped_ptr<RawPacket> packet(rr.Build()); | 44 rtc::Buffer packet = rr.Build(); |
46 RtcpPacketParser parser; | 45 RtcpPacketParser parser; |
47 parser.Parse(packet->Buffer(), packet->Length()); | 46 parser.Parse(packet.data(), packet.size()); |
48 EXPECT_EQ(1, parser.receiver_report()->num_packets()); | 47 EXPECT_EQ(1, parser.receiver_report()->num_packets()); |
49 EXPECT_EQ(kSenderSsrc, parser.receiver_report()->Ssrc()); | 48 EXPECT_EQ(kSenderSsrc, parser.receiver_report()->Ssrc()); |
50 EXPECT_EQ(1, parser.report_block()->num_packets()); | 49 EXPECT_EQ(1, parser.report_block()->num_packets()); |
51 EXPECT_EQ(1, parser.fir()->num_packets()); | 50 EXPECT_EQ(1, parser.fir()->num_packets()); |
52 } | 51 } |
53 | 52 |
54 TEST(RtcpCompoundPacketTest, AppendPacketOnEmpty) { | 53 TEST(RtcpCompoundPacketTest, AppendPacketOnEmpty) { |
55 CompoundPacket empty; | 54 CompoundPacket empty; |
56 ReceiverReport rr; | 55 ReceiverReport rr; |
57 rr.From(kSenderSsrc); | 56 rr.From(kSenderSsrc); |
58 empty.Append(&rr); | 57 empty.Append(&rr); |
59 | 58 |
60 rtc::scoped_ptr<RawPacket> packet(empty.Build()); | 59 rtc::Buffer packet = empty.Build(); |
61 RtcpPacketParser parser; | 60 RtcpPacketParser parser; |
62 parser.Parse(packet->Buffer(), packet->Length()); | 61 parser.Parse(packet.data(), packet.size()); |
63 EXPECT_EQ(1, parser.receiver_report()->num_packets()); | 62 EXPECT_EQ(1, parser.receiver_report()->num_packets()); |
64 EXPECT_EQ(0, parser.report_block()->num_packets()); | 63 EXPECT_EQ(0, parser.report_block()->num_packets()); |
65 } | 64 } |
66 | 65 |
67 TEST(RtcpCompoundPacketTest, AppendPacketWithOwnAppendedPacket) { | 66 TEST(RtcpCompoundPacketTest, AppendPacketWithOwnAppendedPacket) { |
68 Fir fir; | 67 Fir fir; |
69 fir.WithRequestTo(kRemoteSsrc, kSeqNo); | 68 fir.WithRequestTo(kRemoteSsrc, kSeqNo); |
70 Bye bye; | 69 Bye bye; |
71 ReportBlock rb; | 70 ReportBlock rb; |
72 | 71 |
73 ReceiverReport rr; | 72 ReceiverReport rr; |
74 EXPECT_TRUE(rr.WithReportBlock(rb)); | 73 EXPECT_TRUE(rr.WithReportBlock(rb)); |
75 rr.Append(&fir); | 74 rr.Append(&fir); |
76 | 75 |
77 SenderReport sr; | 76 SenderReport sr; |
78 sr.Append(&bye); | 77 sr.Append(&bye); |
79 sr.Append(&rr); | 78 sr.Append(&rr); |
80 | 79 |
81 rtc::scoped_ptr<RawPacket> packet(sr.Build()); | 80 rtc::Buffer packet = sr.Build(); |
82 RtcpPacketParser parser; | 81 RtcpPacketParser parser; |
83 parser.Parse(packet->Buffer(), packet->Length()); | 82 parser.Parse(packet.data(), packet.size()); |
84 EXPECT_EQ(1, parser.sender_report()->num_packets()); | 83 EXPECT_EQ(1, parser.sender_report()->num_packets()); |
85 EXPECT_EQ(1, parser.receiver_report()->num_packets()); | 84 EXPECT_EQ(1, parser.receiver_report()->num_packets()); |
86 EXPECT_EQ(1, parser.report_block()->num_packets()); | 85 EXPECT_EQ(1, parser.report_block()->num_packets()); |
87 EXPECT_EQ(1, parser.bye()->num_packets()); | 86 EXPECT_EQ(1, parser.bye()->num_packets()); |
88 EXPECT_EQ(1, parser.fir()->num_packets()); | 87 EXPECT_EQ(1, parser.fir()->num_packets()); |
89 } | 88 } |
90 | 89 |
91 TEST(RtcpCompoundPacketTest, BuildWithInputBuffer) { | 90 TEST(RtcpCompoundPacketTest, BuildWithInputBuffer) { |
92 Fir fir; | 91 Fir fir; |
93 fir.WithRequestTo(kRemoteSsrc, kSeqNo); | 92 fir.WithRequestTo(kRemoteSsrc, kSeqNo); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 | 155 |
157 int packets_created_ = 0; | 156 int packets_created_ = 0; |
158 } verifier; | 157 } verifier; |
159 const size_t kBufferSize = kRrLength + kReportBlockLength; | 158 const size_t kBufferSize = kRrLength + kReportBlockLength; |
160 uint8_t buffer[kBufferSize]; | 159 uint8_t buffer[kBufferSize]; |
161 EXPECT_TRUE(rr.BuildExternalBuffer(buffer, kBufferSize, &verifier)); | 160 EXPECT_TRUE(rr.BuildExternalBuffer(buffer, kBufferSize, &verifier)); |
162 EXPECT_EQ(2, verifier.packets_created_); | 161 EXPECT_EQ(2, verifier.packets_created_); |
163 } | 162 } |
164 | 163 |
165 } // namespace webrtc | 164 } // namespace webrtc |
OLD | NEW |