OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <stddef.h> | 5 #include <stddef.h> |
6 #include <stdint.h> | 6 #include <stdint.h> |
7 | 7 |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/test/simple_test_tick_clock.h" | 10 #include "base/test/simple_test_tick_clock.h" |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 }; | 71 }; |
72 | 72 |
73 TEST_F(RtcpBuilderTest, RtcpReceiverReport) { | 73 TEST_F(RtcpBuilderTest, RtcpReceiverReport) { |
74 // Receiver report with report block. | 74 // Receiver report with report block. |
75 TestRtcpPacketBuilder p2; | 75 TestRtcpPacketBuilder p2; |
76 p2.AddRr(kSendingSsrc, 1); | 76 p2.AddRr(kSendingSsrc, 1); |
77 p2.AddRb(kMediaSsrc); | 77 p2.AddRb(kMediaSsrc); |
78 | 78 |
79 RtcpReportBlock report_block = GetReportBlock(); | 79 RtcpReportBlock report_block = GetReportBlock(); |
80 | 80 |
81 ExpectPacketEQ( | 81 ExpectPacketEQ(p2.GetPacket(), |
82 p2.GetPacket().Pass(), | 82 rtcp_builder_->BuildRtcpFromReceiver(&report_block, NULL, NULL, |
83 rtcp_builder_->BuildRtcpFromReceiver( | 83 NULL, kDefaultDelay)); |
84 &report_block, NULL, NULL, NULL, kDefaultDelay)); | |
85 } | 84 } |
86 | 85 |
87 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithRrtr) { | 86 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithRrtr) { |
88 // Receiver report with report block. | 87 // Receiver report with report block. |
89 TestRtcpPacketBuilder p; | 88 TestRtcpPacketBuilder p; |
90 p.AddRr(kSendingSsrc, 1); | 89 p.AddRr(kSendingSsrc, 1); |
91 p.AddRb(kMediaSsrc); | 90 p.AddRb(kMediaSsrc); |
92 p.AddXrHeader(kSendingSsrc); | 91 p.AddXrHeader(kSendingSsrc); |
93 p.AddXrRrtrBlock(); | 92 p.AddXrRrtrBlock(); |
94 | 93 |
95 RtcpReportBlock report_block = GetReportBlock(); | 94 RtcpReportBlock report_block = GetReportBlock(); |
96 | 95 |
97 RtcpReceiverReferenceTimeReport rrtr; | 96 RtcpReceiverReferenceTimeReport rrtr; |
98 rrtr.ntp_seconds = kNtpHigh; | 97 rrtr.ntp_seconds = kNtpHigh; |
99 rrtr.ntp_fraction = kNtpLow; | 98 rrtr.ntp_fraction = kNtpLow; |
100 | 99 |
101 ExpectPacketEQ(p.GetPacket().Pass(), | 100 ExpectPacketEQ(p.GetPacket(), |
102 rtcp_builder_->BuildRtcpFromReceiver( | 101 rtcp_builder_->BuildRtcpFromReceiver( |
103 &report_block, | 102 &report_block, &rrtr, NULL, NULL, kDefaultDelay)); |
104 &rrtr, | |
105 NULL, | |
106 NULL, | |
107 kDefaultDelay)); | |
108 } | 103 } |
109 | 104 |
110 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithCast) { | 105 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithCast) { |
111 // Receiver report with report block. | 106 // Receiver report with report block. |
112 TestRtcpPacketBuilder p; | 107 TestRtcpPacketBuilder p; |
113 p.AddRr(kSendingSsrc, 1); | 108 p.AddRr(kSendingSsrc, 1); |
114 p.AddRb(kMediaSsrc); | 109 p.AddRb(kMediaSsrc); |
115 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay); | 110 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay); |
116 | 111 |
117 RtcpReportBlock report_block = GetReportBlock(); | 112 RtcpReportBlock report_block = GetReportBlock(); |
118 | 113 |
119 RtcpCastMessage cast_message(kMediaSsrc); | 114 RtcpCastMessage cast_message(kMediaSsrc); |
120 cast_message.ack_frame_id = kAckFrameId; | 115 cast_message.ack_frame_id = kAckFrameId; |
121 PacketIdSet missing_packets; | 116 PacketIdSet missing_packets; |
122 cast_message.missing_frames_and_packets[kLostFrameId] = missing_packets; | 117 cast_message.missing_frames_and_packets[kLostFrameId] = missing_packets; |
123 | 118 |
124 missing_packets.insert(kLostPacketId1); | 119 missing_packets.insert(kLostPacketId1); |
125 missing_packets.insert(kLostPacketId2); | 120 missing_packets.insert(kLostPacketId2); |
126 missing_packets.insert(kLostPacketId3); | 121 missing_packets.insert(kLostPacketId3); |
127 cast_message.missing_frames_and_packets[kFrameIdWithLostPackets] = | 122 cast_message.missing_frames_and_packets[kFrameIdWithLostPackets] = |
128 missing_packets; | 123 missing_packets; |
129 | 124 |
130 ExpectPacketEQ(p.GetPacket().Pass(), | 125 ExpectPacketEQ(p.GetPacket(), |
131 rtcp_builder_->BuildRtcpFromReceiver( | 126 rtcp_builder_->BuildRtcpFromReceiver( |
132 &report_block, | 127 &report_block, NULL, &cast_message, NULL, kDefaultDelay)); |
133 NULL, | |
134 &cast_message, | |
135 NULL, | |
136 kDefaultDelay)); | |
137 } | 128 } |
138 | 129 |
139 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithRrtraAndCastMessage) { | 130 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithRrtraAndCastMessage) { |
140 TestRtcpPacketBuilder p; | 131 TestRtcpPacketBuilder p; |
141 p.AddRr(kSendingSsrc, 1); | 132 p.AddRr(kSendingSsrc, 1); |
142 p.AddRb(kMediaSsrc); | 133 p.AddRb(kMediaSsrc); |
143 p.AddXrHeader(kSendingSsrc); | 134 p.AddXrHeader(kSendingSsrc); |
144 p.AddXrRrtrBlock(); | 135 p.AddXrRrtrBlock(); |
145 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay); | 136 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay); |
146 | 137 |
147 RtcpReportBlock report_block = GetReportBlock(); | 138 RtcpReportBlock report_block = GetReportBlock(); |
148 | 139 |
149 RtcpReceiverReferenceTimeReport rrtr; | 140 RtcpReceiverReferenceTimeReport rrtr; |
150 rrtr.ntp_seconds = kNtpHigh; | 141 rrtr.ntp_seconds = kNtpHigh; |
151 rrtr.ntp_fraction = kNtpLow; | 142 rrtr.ntp_fraction = kNtpLow; |
152 | 143 |
153 RtcpCastMessage cast_message(kMediaSsrc); | 144 RtcpCastMessage cast_message(kMediaSsrc); |
154 cast_message.ack_frame_id = kAckFrameId; | 145 cast_message.ack_frame_id = kAckFrameId; |
155 PacketIdSet missing_packets; | 146 PacketIdSet missing_packets; |
156 cast_message.missing_frames_and_packets[kLostFrameId] = missing_packets; | 147 cast_message.missing_frames_and_packets[kLostFrameId] = missing_packets; |
157 | 148 |
158 missing_packets.insert(kLostPacketId1); | 149 missing_packets.insert(kLostPacketId1); |
159 missing_packets.insert(kLostPacketId2); | 150 missing_packets.insert(kLostPacketId2); |
160 missing_packets.insert(kLostPacketId3); | 151 missing_packets.insert(kLostPacketId3); |
161 cast_message.missing_frames_and_packets[kFrameIdWithLostPackets] = | 152 cast_message.missing_frames_and_packets[kFrameIdWithLostPackets] = |
162 missing_packets; | 153 missing_packets; |
163 | 154 |
164 ExpectPacketEQ(p.GetPacket().Pass(), | 155 ExpectPacketEQ(p.GetPacket(), |
165 rtcp_builder_->BuildRtcpFromReceiver( | 156 rtcp_builder_->BuildRtcpFromReceiver( |
166 &report_block, | 157 &report_block, &rrtr, &cast_message, NULL, kDefaultDelay)); |
167 &rrtr, | |
168 &cast_message, | |
169 NULL, | |
170 kDefaultDelay)); | |
171 } | 158 } |
172 | 159 |
173 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithRrtrCastMessageAndLog) { | 160 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithRrtrCastMessageAndLog) { |
174 static const uint32_t kTimeBaseMs = 12345678; | 161 static const uint32_t kTimeBaseMs = 12345678; |
175 static const uint32_t kTimeDelayMs = 10; | 162 static const uint32_t kTimeDelayMs = 10; |
176 | 163 |
177 TestRtcpPacketBuilder p; | 164 TestRtcpPacketBuilder p; |
178 p.AddRr(kSendingSsrc, 1); | 165 p.AddRr(kSendingSsrc, 1); |
179 p.AddRb(kMediaSsrc); | 166 p.AddRb(kMediaSsrc); |
180 p.AddXrHeader(kSendingSsrc); | 167 p.AddXrHeader(kSendingSsrc); |
(...skipping 13 matching lines...) Expand all Loading... |
194 | 181 |
195 missing_packets.insert(kLostPacketId1); | 182 missing_packets.insert(kLostPacketId1); |
196 missing_packets.insert(kLostPacketId2); | 183 missing_packets.insert(kLostPacketId2); |
197 missing_packets.insert(kLostPacketId3); | 184 missing_packets.insert(kLostPacketId3); |
198 cast_message.missing_frames_and_packets[kFrameIdWithLostPackets] = | 185 cast_message.missing_frames_and_packets[kFrameIdWithLostPackets] = |
199 missing_packets; | 186 missing_packets; |
200 | 187 |
201 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); | 188 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
202 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; | 189 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
203 | 190 |
204 ExpectPacketEQ(p.GetPacket().Pass(), | 191 ExpectPacketEQ(p.GetPacket(), rtcp_builder_->BuildRtcpFromReceiver( |
205 rtcp_builder_->BuildRtcpFromReceiver( | 192 &report_block, &rrtr, &cast_message, |
206 &report_block, | 193 &rtcp_events, kDefaultDelay)); |
207 &rrtr, | |
208 &cast_message, | |
209 &rtcp_events, | |
210 kDefaultDelay)); | |
211 | 194 |
212 base::SimpleTestTickClock testing_clock; | 195 base::SimpleTestTickClock testing_clock; |
213 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); | 196 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); |
214 | 197 |
215 p.AddReceiverLog(kSendingSsrc); | 198 p.AddReceiverLog(kSendingSsrc); |
216 p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs); | 199 p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs); |
217 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); | 200 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); |
218 p.AddReceiverEventLog(kLostPacketId1, PACKET_RECEIVED, kTimeDelayMs); | 201 p.AddReceiverEventLog(kLostPacketId1, PACKET_RECEIVED, kTimeDelayMs); |
219 | 202 |
220 FrameEvent frame_event; | 203 FrameEvent frame_event; |
221 frame_event.rtp_timestamp = kRtpTimestamp; | 204 frame_event.rtp_timestamp = kRtpTimestamp; |
222 frame_event.type = FRAME_ACK_SENT; | 205 frame_event.type = FRAME_ACK_SENT; |
223 frame_event.media_type = VIDEO_EVENT; | 206 frame_event.media_type = VIDEO_EVENT; |
224 frame_event.timestamp = testing_clock.NowTicks(); | 207 frame_event.timestamp = testing_clock.NowTicks(); |
225 event_subscriber.OnReceiveFrameEvent(frame_event); | 208 event_subscriber.OnReceiveFrameEvent(frame_event); |
226 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 209 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
227 | 210 |
228 PacketEvent packet_event; | 211 PacketEvent packet_event; |
229 packet_event.rtp_timestamp = kRtpTimestamp; | 212 packet_event.rtp_timestamp = kRtpTimestamp; |
230 packet_event.type = PACKET_RECEIVED; | 213 packet_event.type = PACKET_RECEIVED; |
231 packet_event.media_type = VIDEO_EVENT; | 214 packet_event.media_type = VIDEO_EVENT; |
232 packet_event.timestamp = testing_clock.NowTicks(); | 215 packet_event.timestamp = testing_clock.NowTicks(); |
233 packet_event.packet_id = kLostPacketId1; | 216 packet_event.packet_id = kLostPacketId1; |
234 event_subscriber.OnReceivePacketEvent(packet_event); | 217 event_subscriber.OnReceivePacketEvent(packet_event); |
235 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); | 218 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
236 EXPECT_EQ(2u, rtcp_events.size()); | 219 EXPECT_EQ(2u, rtcp_events.size()); |
237 | 220 |
238 ExpectPacketEQ( | 221 ExpectPacketEQ(p.GetPacket(), rtcp_builder_->BuildRtcpFromReceiver( |
239 p.GetPacket().Pass(), | 222 &report_block, &rrtr, &cast_message, |
240 rtcp_builder_->BuildRtcpFromReceiver( | 223 &rtcp_events, kDefaultDelay)); |
241 &report_block, | |
242 &rrtr, | |
243 &cast_message, | |
244 &rtcp_events, | |
245 kDefaultDelay)); | |
246 } | 224 } |
247 | 225 |
248 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithOversizedFrameLog) { | 226 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithOversizedFrameLog) { |
249 static const uint32_t kTimeBaseMs = 12345678; | 227 static const uint32_t kTimeBaseMs = 12345678; |
250 static const uint32_t kTimeDelayMs = 10; | 228 static const uint32_t kTimeDelayMs = 10; |
251 | 229 |
252 TestRtcpPacketBuilder p; | 230 TestRtcpPacketBuilder p; |
253 p.AddRr(kSendingSsrc, 1); | 231 p.AddRr(kSendingSsrc, 1); |
254 p.AddRb(kMediaSsrc); | 232 p.AddRb(kMediaSsrc); |
255 | 233 |
(...skipping 26 matching lines...) Expand all Loading... |
282 packet_event.media_type = VIDEO_EVENT; | 260 packet_event.media_type = VIDEO_EVENT; |
283 packet_event.timestamp = testing_clock.NowTicks(); | 261 packet_event.timestamp = testing_clock.NowTicks(); |
284 packet_event.packet_id = kLostPacketId1; | 262 packet_event.packet_id = kLostPacketId1; |
285 event_subscriber.OnReceivePacketEvent(packet_event); | 263 event_subscriber.OnReceivePacketEvent(packet_event); |
286 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 264 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
287 } | 265 } |
288 | 266 |
289 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; | 267 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
290 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); | 268 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
291 | 269 |
292 ExpectPacketEQ(p.GetPacket().Pass(), | 270 ExpectPacketEQ(p.GetPacket(), |
293 rtcp_builder_->BuildRtcpFromReceiver( | 271 rtcp_builder_->BuildRtcpFromReceiver( |
294 &report_block, | 272 &report_block, NULL, NULL, &rtcp_events, kDefaultDelay)); |
295 NULL, | |
296 NULL, | |
297 &rtcp_events, | |
298 kDefaultDelay)); | |
299 } | 273 } |
300 | 274 |
301 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithTooManyLogFrames) { | 275 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithTooManyLogFrames) { |
302 static const uint32_t kTimeBaseMs = 12345678; | 276 static const uint32_t kTimeBaseMs = 12345678; |
303 static const uint32_t kTimeDelayMs = 10; | 277 static const uint32_t kTimeDelayMs = 10; |
304 | 278 |
305 TestRtcpPacketBuilder p; | 279 TestRtcpPacketBuilder p; |
306 p.AddRr(kSendingSsrc, 1); | 280 p.AddRr(kSendingSsrc, 1); |
307 p.AddRb(kMediaSsrc); | 281 p.AddRb(kMediaSsrc); |
308 | 282 |
(...skipping 19 matching lines...) Expand all Loading... |
328 frame_event.type = FRAME_ACK_SENT; | 302 frame_event.type = FRAME_ACK_SENT; |
329 frame_event.media_type = VIDEO_EVENT; | 303 frame_event.media_type = VIDEO_EVENT; |
330 frame_event.timestamp = testing_clock.NowTicks(); | 304 frame_event.timestamp = testing_clock.NowTicks(); |
331 event_subscriber.OnReceiveFrameEvent(frame_event); | 305 event_subscriber.OnReceiveFrameEvent(frame_event); |
332 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 306 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
333 } | 307 } |
334 | 308 |
335 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; | 309 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
336 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); | 310 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
337 | 311 |
338 ExpectPacketEQ(p.GetPacket().Pass(), | 312 ExpectPacketEQ(p.GetPacket(), |
339 rtcp_builder_->BuildRtcpFromReceiver( | 313 rtcp_builder_->BuildRtcpFromReceiver( |
340 &report_block, | 314 &report_block, NULL, NULL, &rtcp_events, kDefaultDelay)); |
341 NULL, | |
342 NULL, | |
343 &rtcp_events, | |
344 kDefaultDelay)); | |
345 } | 315 } |
346 | 316 |
347 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithOldLogFrames) { | 317 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithOldLogFrames) { |
348 static const uint32_t kTimeBaseMs = 12345678; | 318 static const uint32_t kTimeBaseMs = 12345678; |
349 | 319 |
350 TestRtcpPacketBuilder p; | 320 TestRtcpPacketBuilder p; |
351 p.AddRr(kSendingSsrc, 1); | 321 p.AddRr(kSendingSsrc, 1); |
352 p.AddRb(kMediaSsrc); | 322 p.AddRb(kMediaSsrc); |
353 | 323 |
354 RtcpReportBlock report_block = GetReportBlock(); | 324 RtcpReportBlock report_block = GetReportBlock(); |
(...skipping 20 matching lines...) Expand all Loading... |
375 frame_event.media_type = VIDEO_EVENT; | 345 frame_event.media_type = VIDEO_EVENT; |
376 frame_event.timestamp = testing_clock.NowTicks(); | 346 frame_event.timestamp = testing_clock.NowTicks(); |
377 event_subscriber.OnReceiveFrameEvent(frame_event); | 347 event_subscriber.OnReceiveFrameEvent(frame_event); |
378 testing_clock.Advance( | 348 testing_clock.Advance( |
379 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); | 349 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); |
380 } | 350 } |
381 | 351 |
382 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; | 352 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
383 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); | 353 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
384 | 354 |
385 ExpectPacketEQ(p.GetPacket().Pass(), | 355 ExpectPacketEQ(p.GetPacket(), |
386 rtcp_builder_->BuildRtcpFromReceiver( | 356 rtcp_builder_->BuildRtcpFromReceiver( |
387 &report_block, | 357 &report_block, NULL, NULL, &rtcp_events, kDefaultDelay)); |
388 NULL, | |
389 NULL, | |
390 &rtcp_events, | |
391 kDefaultDelay)); | |
392 } | 358 } |
393 | 359 |
394 TEST_F(RtcpBuilderTest, RtcpReceiverReportRedundancy) { | 360 TEST_F(RtcpBuilderTest, RtcpReceiverReportRedundancy) { |
395 uint32_t time_base_ms = 12345678; | 361 uint32_t time_base_ms = 12345678; |
396 int kTimeBetweenEventsMs = 10; | 362 int kTimeBetweenEventsMs = 10; |
397 | 363 |
398 RtcpReportBlock report_block = GetReportBlock(); | 364 RtcpReportBlock report_block = GetReportBlock(); |
399 | 365 |
400 base::SimpleTestTickClock testing_clock; | 366 base::SimpleTestTickClock testing_clock; |
401 testing_clock.Advance(base::TimeDelta::FromMilliseconds(time_base_ms)); | 367 testing_clock.Advance(base::TimeDelta::FromMilliseconds(time_base_ms)); |
(...skipping 21 matching lines...) Expand all Loading... |
423 FrameEvent frame_event; | 389 FrameEvent frame_event; |
424 frame_event.rtp_timestamp = kRtpTimestamp; | 390 frame_event.rtp_timestamp = kRtpTimestamp; |
425 frame_event.type = FRAME_ACK_SENT; | 391 frame_event.type = FRAME_ACK_SENT; |
426 frame_event.media_type = VIDEO_EVENT; | 392 frame_event.media_type = VIDEO_EVENT; |
427 frame_event.timestamp = testing_clock.NowTicks(); | 393 frame_event.timestamp = testing_clock.NowTicks(); |
428 event_subscriber.OnReceiveFrameEvent(frame_event); | 394 event_subscriber.OnReceiveFrameEvent(frame_event); |
429 | 395 |
430 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; | 396 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
431 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); | 397 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
432 | 398 |
433 ExpectPacketEQ(p.GetPacket().Pass(), | 399 ExpectPacketEQ(p.GetPacket(), |
434 rtcp_builder_->BuildRtcpFromReceiver( | 400 rtcp_builder_->BuildRtcpFromReceiver( |
435 &report_block, | 401 &report_block, NULL, NULL, &rtcp_events, kDefaultDelay)); |
436 NULL, | |
437 NULL, | |
438 &rtcp_events, | |
439 kDefaultDelay)); | |
440 | 402 |
441 testing_clock.Advance( | 403 testing_clock.Advance( |
442 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); | 404 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); |
443 time_base_ms += kTimeBetweenEventsMs; | 405 time_base_ms += kTimeBetweenEventsMs; |
444 } | 406 } |
445 } | 407 } |
446 | 408 |
447 TEST_F(RtcpBuilderTest, RtcpSenderReport) { | 409 TEST_F(RtcpBuilderTest, RtcpSenderReport) { |
448 RtcpSenderInfo sender_info; | 410 RtcpSenderInfo sender_info; |
449 sender_info.ntp_seconds = kNtpHigh; | 411 sender_info.ntp_seconds = kNtpHigh; |
450 sender_info.ntp_fraction = kNtpLow; | 412 sender_info.ntp_fraction = kNtpLow; |
451 sender_info.rtp_timestamp = kRtpTimestamp; | 413 sender_info.rtp_timestamp = kRtpTimestamp; |
452 sender_info.send_packet_count = kSendPacketCount; | 414 sender_info.send_packet_count = kSendPacketCount; |
453 sender_info.send_octet_count = kSendOctetCount; | 415 sender_info.send_octet_count = kSendOctetCount; |
454 | 416 |
455 // Sender report. | 417 // Sender report. |
456 TestRtcpPacketBuilder p; | 418 TestRtcpPacketBuilder p; |
457 p.AddSr(kSendingSsrc, 0); | 419 p.AddSr(kSendingSsrc, 0); |
458 | 420 |
459 ExpectPacketEQ(p.GetPacket().Pass(), | 421 ExpectPacketEQ(p.GetPacket(), |
460 rtcp_builder_->BuildRtcpFromSender(sender_info)); | 422 rtcp_builder_->BuildRtcpFromSender(sender_info)); |
461 } | 423 } |
462 | 424 |
463 } // namespace cast | 425 } // namespace cast |
464 } // namespace media | 426 } // namespace media |
OLD | NEW |