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 |
(...skipping 12 matching lines...) Expand all Loading... |
23 using webrtc::rtcp::Fir; | 23 using webrtc::rtcp::Fir; |
24 using webrtc::rtcp::RawPacket; | 24 using webrtc::rtcp::RawPacket; |
25 using webrtc::rtcp::ReceiverReport; | 25 using webrtc::rtcp::ReceiverReport; |
26 using webrtc::rtcp::ReportBlock; | 26 using webrtc::rtcp::ReportBlock; |
27 using webrtc::rtcp::SenderReport; | 27 using webrtc::rtcp::SenderReport; |
28 using webrtc::test::RtcpPacketParser; | 28 using webrtc::test::RtcpPacketParser; |
29 | 29 |
30 namespace webrtc { | 30 namespace webrtc { |
31 | 31 |
32 const uint32_t kSenderSsrc = 0x12345678; | 32 const uint32_t kSenderSsrc = 0x12345678; |
| 33 const uint32_t kRemoteSsrc = 0x23456789; |
| 34 const uint8_t kSeqNo = 13; |
33 | 35 |
34 TEST(RtcpCompoundPacketTest, AppendPacket) { | 36 TEST(RtcpCompoundPacketTest, AppendPacket) { |
35 Fir fir; | 37 Fir fir; |
| 38 fir.WithRequestTo(kRemoteSsrc, kSeqNo); |
36 ReportBlock rb; | 39 ReportBlock rb; |
37 ReceiverReport rr; | 40 ReceiverReport rr; |
38 rr.From(kSenderSsrc); | 41 rr.From(kSenderSsrc); |
39 EXPECT_TRUE(rr.WithReportBlock(rb)); | 42 EXPECT_TRUE(rr.WithReportBlock(rb)); |
40 rr.Append(&fir); | 43 rr.Append(&fir); |
41 | 44 |
42 rtc::scoped_ptr<RawPacket> packet(rr.Build()); | 45 rtc::scoped_ptr<RawPacket> packet(rr.Build()); |
43 RtcpPacketParser parser; | 46 RtcpPacketParser parser; |
44 parser.Parse(packet->Buffer(), packet->Length()); | 47 parser.Parse(packet->Buffer(), packet->Length()); |
45 EXPECT_EQ(1, parser.receiver_report()->num_packets()); | 48 EXPECT_EQ(1, parser.receiver_report()->num_packets()); |
(...skipping 10 matching lines...) Expand all Loading... |
56 | 59 |
57 rtc::scoped_ptr<RawPacket> packet(empty.Build()); | 60 rtc::scoped_ptr<RawPacket> packet(empty.Build()); |
58 RtcpPacketParser parser; | 61 RtcpPacketParser parser; |
59 parser.Parse(packet->Buffer(), packet->Length()); | 62 parser.Parse(packet->Buffer(), packet->Length()); |
60 EXPECT_EQ(1, parser.receiver_report()->num_packets()); | 63 EXPECT_EQ(1, parser.receiver_report()->num_packets()); |
61 EXPECT_EQ(0, parser.report_block()->num_packets()); | 64 EXPECT_EQ(0, parser.report_block()->num_packets()); |
62 } | 65 } |
63 | 66 |
64 TEST(RtcpCompoundPacketTest, AppendPacketWithOwnAppendedPacket) { | 67 TEST(RtcpCompoundPacketTest, AppendPacketWithOwnAppendedPacket) { |
65 Fir fir; | 68 Fir fir; |
| 69 fir.WithRequestTo(kRemoteSsrc, kSeqNo); |
66 Bye bye; | 70 Bye bye; |
67 ReportBlock rb; | 71 ReportBlock rb; |
68 | 72 |
69 ReceiverReport rr; | 73 ReceiverReport rr; |
70 EXPECT_TRUE(rr.WithReportBlock(rb)); | 74 EXPECT_TRUE(rr.WithReportBlock(rb)); |
71 rr.Append(&fir); | 75 rr.Append(&fir); |
72 | 76 |
73 SenderReport sr; | 77 SenderReport sr; |
74 sr.Append(&bye); | 78 sr.Append(&bye); |
75 sr.Append(&rr); | 79 sr.Append(&rr); |
76 | 80 |
77 rtc::scoped_ptr<RawPacket> packet(sr.Build()); | 81 rtc::scoped_ptr<RawPacket> packet(sr.Build()); |
78 RtcpPacketParser parser; | 82 RtcpPacketParser parser; |
79 parser.Parse(packet->Buffer(), packet->Length()); | 83 parser.Parse(packet->Buffer(), packet->Length()); |
80 EXPECT_EQ(1, parser.sender_report()->num_packets()); | 84 EXPECT_EQ(1, parser.sender_report()->num_packets()); |
81 EXPECT_EQ(1, parser.receiver_report()->num_packets()); | 85 EXPECT_EQ(1, parser.receiver_report()->num_packets()); |
82 EXPECT_EQ(1, parser.report_block()->num_packets()); | 86 EXPECT_EQ(1, parser.report_block()->num_packets()); |
83 EXPECT_EQ(1, parser.bye()->num_packets()); | 87 EXPECT_EQ(1, parser.bye()->num_packets()); |
84 EXPECT_EQ(1, parser.fir()->num_packets()); | 88 EXPECT_EQ(1, parser.fir()->num_packets()); |
85 } | 89 } |
86 | 90 |
87 TEST(RtcpCompoundPacketTest, BuildWithInputBuffer) { | 91 TEST(RtcpCompoundPacketTest, BuildWithInputBuffer) { |
88 Fir fir; | 92 Fir fir; |
| 93 fir.WithRequestTo(kRemoteSsrc, kSeqNo); |
89 ReportBlock rb; | 94 ReportBlock rb; |
90 ReceiverReport rr; | 95 ReceiverReport rr; |
91 rr.From(kSenderSsrc); | 96 rr.From(kSenderSsrc); |
92 EXPECT_TRUE(rr.WithReportBlock(rb)); | 97 EXPECT_TRUE(rr.WithReportBlock(rb)); |
93 rr.Append(&fir); | 98 rr.Append(&fir); |
94 | 99 |
95 const size_t kRrLength = 8; | 100 const size_t kRrLength = 8; |
96 const size_t kReportBlockLength = 24; | 101 const size_t kReportBlockLength = 24; |
97 const size_t kFirLength = 20; | 102 const size_t kFirLength = 20; |
98 | 103 |
(...skipping 11 matching lines...) Expand all Loading... |
110 int packets_created_ = 0; | 115 int packets_created_ = 0; |
111 } verifier; | 116 } verifier; |
112 const size_t kBufferSize = kRrLength + kReportBlockLength + kFirLength; | 117 const size_t kBufferSize = kRrLength + kReportBlockLength + kFirLength; |
113 uint8_t buffer[kBufferSize]; | 118 uint8_t buffer[kBufferSize]; |
114 EXPECT_TRUE(rr.BuildExternalBuffer(buffer, kBufferSize, &verifier)); | 119 EXPECT_TRUE(rr.BuildExternalBuffer(buffer, kBufferSize, &verifier)); |
115 EXPECT_EQ(1, verifier.packets_created_); | 120 EXPECT_EQ(1, verifier.packets_created_); |
116 } | 121 } |
117 | 122 |
118 TEST(RtcpCompoundPacketTest, BuildWithTooSmallBuffer_FragmentedSend) { | 123 TEST(RtcpCompoundPacketTest, BuildWithTooSmallBuffer_FragmentedSend) { |
119 Fir fir; | 124 Fir fir; |
| 125 fir.WithRequestTo(kRemoteSsrc, kSeqNo); |
120 ReportBlock rb; | 126 ReportBlock rb; |
121 ReceiverReport rr; | 127 ReceiverReport rr; |
122 rr.From(kSenderSsrc); | 128 rr.From(kSenderSsrc); |
123 EXPECT_TRUE(rr.WithReportBlock(rb)); | 129 EXPECT_TRUE(rr.WithReportBlock(rb)); |
124 rr.Append(&fir); | 130 rr.Append(&fir); |
125 | 131 |
126 const size_t kRrLength = 8; | 132 const size_t kRrLength = 8; |
127 const size_t kReportBlockLength = 24; | 133 const size_t kReportBlockLength = 24; |
128 | 134 |
129 class Verifier : public rtcp::RtcpPacket::PacketReadyCallback { | 135 class Verifier : public rtcp::RtcpPacket::PacketReadyCallback { |
(...skipping 20 matching lines...) Expand all Loading... |
150 | 156 |
151 int packets_created_ = 0; | 157 int packets_created_ = 0; |
152 } verifier; | 158 } verifier; |
153 const size_t kBufferSize = kRrLength + kReportBlockLength; | 159 const size_t kBufferSize = kRrLength + kReportBlockLength; |
154 uint8_t buffer[kBufferSize]; | 160 uint8_t buffer[kBufferSize]; |
155 EXPECT_TRUE(rr.BuildExternalBuffer(buffer, kBufferSize, &verifier)); | 161 EXPECT_TRUE(rr.BuildExternalBuffer(buffer, kBufferSize, &verifier)); |
156 EXPECT_EQ(2, verifier.packets_created_); | 162 EXPECT_EQ(2, verifier.packets_created_); |
157 } | 163 } |
158 | 164 |
159 } // namespace webrtc | 165 } // namespace webrtc |
OLD | NEW |