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 "base/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
6 #include "base/test/simple_test_tick_clock.h" | 6 #include "base/test/simple_test_tick_clock.h" |
7 #include "media/cast/cast_defines.h" | 7 #include "media/cast/cast_defines.h" |
8 #include "media/cast/cast_environment.h" | 8 #include "media/cast/cast_environment.h" |
9 #include "media/cast/net/cast_transport_defines.h" | 9 #include "media/cast/net/cast_transport_defines.h" |
10 #include "media/cast/net/pacing/paced_sender.h" | 10 #include "media/cast/net/pacing/paced_sender.h" |
(...skipping 29 matching lines...) Expand all Loading... | |
40 } // namespace | 40 } // namespace |
41 | 41 |
42 | 42 |
43 class RtcpBuilderTest : public ::testing::Test { | 43 class RtcpBuilderTest : public ::testing::Test { |
44 protected: | 44 protected: |
45 RtcpBuilderTest() | 45 RtcpBuilderTest() |
46 : rtcp_builder_(new RtcpBuilder(kSendingSsrc)) {} | 46 : rtcp_builder_(new RtcpBuilder(kSendingSsrc)) {} |
47 | 47 |
48 void ExpectPacketEQ(scoped_ptr<Packet> golden_packet, | 48 void ExpectPacketEQ(scoped_ptr<Packet> golden_packet, |
49 PacketRef packet) { | 49 PacketRef packet) { |
50 int diffs = 0; | |
50 EXPECT_EQ(golden_packet->size(), packet->data.size()); | 51 EXPECT_EQ(golden_packet->size(), packet->data.size()); |
51 if (golden_packet->size() == packet->data.size()) { | 52 if (golden_packet->size() == packet->data.size()) { |
52 for (size_t x = 0; x < golden_packet->size(); x++) { | 53 for (size_t x = 0; x < golden_packet->size(); x++) { |
53 EXPECT_EQ((*golden_packet)[x], packet->data[x]); | 54 EXPECT_EQ((*golden_packet)[x], packet->data[x]) << |
55 "x = " << x << " / " << golden_packet->size(); | |
54 if ((*golden_packet)[x] != packet->data[x]) | 56 if ((*golden_packet)[x] != packet->data[x]) |
miu
2014/12/04 04:18:54
nit: braces around then-clause
hubbe
2014/12/05 23:57:20
Done.
| |
55 break; | 57 if (++diffs > 5) |
58 break; | |
56 } | 59 } |
57 } | 60 } |
58 } | 61 } |
59 | 62 |
60 scoped_ptr<RtcpBuilder> rtcp_builder_; | 63 scoped_ptr<RtcpBuilder> rtcp_builder_; |
61 | 64 |
62 DISALLOW_COPY_AND_ASSIGN(RtcpBuilderTest); | 65 DISALLOW_COPY_AND_ASSIGN(RtcpBuilderTest); |
63 }; | 66 }; |
64 | 67 |
65 TEST_F(RtcpBuilderTest, RtcpReceiverReport) { | 68 TEST_F(RtcpBuilderTest, RtcpReceiverReport) { |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
184 PacketIdSet missing_packets; | 187 PacketIdSet missing_packets; |
185 cast_message.missing_frames_and_packets[kLostFrameId] = missing_packets; | 188 cast_message.missing_frames_and_packets[kLostFrameId] = missing_packets; |
186 | 189 |
187 missing_packets.insert(kLostPacketId1); | 190 missing_packets.insert(kLostPacketId1); |
188 missing_packets.insert(kLostPacketId2); | 191 missing_packets.insert(kLostPacketId2); |
189 missing_packets.insert(kLostPacketId3); | 192 missing_packets.insert(kLostPacketId3); |
190 cast_message.missing_frames_and_packets[kFrameIdWithLostPackets] = | 193 cast_message.missing_frames_and_packets[kFrameIdWithLostPackets] = |
191 missing_packets; | 194 missing_packets; |
192 | 195 |
193 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); | 196 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
194 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; | 197 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
195 | 198 |
196 ExpectPacketEQ(p.GetPacket().Pass(), | 199 ExpectPacketEQ(p.GetPacket().Pass(), |
197 rtcp_builder_->BuildRtcpFromReceiver( | 200 rtcp_builder_->BuildRtcpFromReceiver( |
198 &report_block, | 201 &report_block, |
199 &rrtr, | 202 &rrtr, |
200 &cast_message, | 203 &cast_message, |
201 &rtcp_events, | 204 &rtcp_events, |
202 kDefaultDelay)); | 205 kDefaultDelay)); |
203 | 206 |
204 base::SimpleTestTickClock testing_clock; | 207 base::SimpleTestTickClock testing_clock; |
(...skipping 12 matching lines...) Expand all Loading... | |
217 event_subscriber.OnReceiveFrameEvent(frame_event); | 220 event_subscriber.OnReceiveFrameEvent(frame_event); |
218 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 221 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
219 | 222 |
220 PacketEvent packet_event; | 223 PacketEvent packet_event; |
221 packet_event.rtp_timestamp = kRtpTimestamp; | 224 packet_event.rtp_timestamp = kRtpTimestamp; |
222 packet_event.type = PACKET_RECEIVED; | 225 packet_event.type = PACKET_RECEIVED; |
223 packet_event.media_type = VIDEO_EVENT; | 226 packet_event.media_type = VIDEO_EVENT; |
224 packet_event.timestamp = testing_clock.NowTicks(); | 227 packet_event.timestamp = testing_clock.NowTicks(); |
225 packet_event.packet_id = kLostPacketId1; | 228 packet_event.packet_id = kLostPacketId1; |
226 event_subscriber.OnReceivePacketEvent(packet_event); | 229 event_subscriber.OnReceivePacketEvent(packet_event); |
227 event_subscriber.GetRtcpEventsAndReset(&rtcp_events); | 230 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
228 EXPECT_EQ(2u, rtcp_events.size()); | 231 EXPECT_EQ(2u, rtcp_events.size()); |
229 | 232 |
230 ExpectPacketEQ( | 233 ExpectPacketEQ( |
231 p.GetPacket().Pass(), | 234 p.GetPacket().Pass(), |
232 rtcp_builder_->BuildRtcpFromReceiver( | 235 rtcp_builder_->BuildRtcpFromReceiver( |
233 &report_block, | 236 &report_block, |
234 &rrtr, | 237 &rrtr, |
235 &cast_message, | 238 &cast_message, |
236 &rtcp_events, | 239 &rtcp_events, |
237 kDefaultDelay)); | 240 kDefaultDelay)); |
238 } | 241 } |
239 | 242 |
240 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithOversizedFrameLog) { | 243 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithOversizedFrameLog) { |
241 static const uint32 kTimeBaseMs = 12345678; | 244 static const uint32 kTimeBaseMs = 12345678; |
242 static const uint32 kTimeDelayMs = 10; | 245 static const uint32 kTimeDelayMs = 10; |
243 | 246 |
244 TestRtcpPacketBuilder p; | 247 TestRtcpPacketBuilder p; |
245 p.AddRr(kSendingSsrc, 1); | 248 p.AddRr(kSendingSsrc, 1); |
246 p.AddRb(kMediaSsrc); | 249 p.AddRb(kMediaSsrc); |
247 | 250 |
248 RtcpReportBlock report_block = GetReportBlock(); | 251 RtcpReportBlock report_block = GetReportBlock(); |
249 | 252 |
250 base::SimpleTestTickClock testing_clock; | 253 base::SimpleTestTickClock testing_clock; |
251 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); | 254 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); |
252 | 255 |
253 p.AddReceiverLog(kSendingSsrc); | 256 p.AddReceiverLog(kSendingSsrc); |
254 | 257 |
255 int remaining_bytes = kMaxReceiverLogBytes; | 258 int num_events = kMaxEventsPerRTCP; |
256 remaining_bytes -= kRtcpCastLogHeaderSize; | |
257 | 259 |
258 remaining_bytes -= kRtcpReceiverFrameLogSize; | |
259 int num_events = remaining_bytes / kRtcpReceiverEventLogSize; | |
260 EXPECT_LE(num_events, static_cast<int>(kRtcpMaxReceiverLogMessages)); | 260 EXPECT_LE(num_events, static_cast<int>(kRtcpMaxReceiverLogMessages)); |
261 // Only the last |num_events| events are sent due to receiver log size cap. | |
262 p.AddReceiverFrameLog( | 261 p.AddReceiverFrameLog( |
263 kRtpTimestamp + 2345, | 262 kRtpTimestamp + 2345, |
264 num_events, | 263 num_events, |
265 kTimeBaseMs + (kRtcpMaxReceiverLogMessages - num_events) * kTimeDelayMs); | 264 kTimeBaseMs); |
266 for (int i = 0; i < num_events; i++) { | 265 for (int i = 0; i < num_events; i++) { |
267 p.AddReceiverEventLog( | 266 p.AddReceiverEventLog( |
268 kLostPacketId1, PACKET_RECEIVED, | 267 kLostPacketId1, |
268 PACKET_RECEIVED, | |
269 static_cast<uint16>(kTimeDelayMs * i)); | 269 static_cast<uint16>(kTimeDelayMs * i)); |
270 } | 270 } |
271 | 271 |
272 | 272 |
273 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); | 273 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
274 FrameEvent frame_event; | |
275 frame_event.rtp_timestamp = kRtpTimestamp; | |
276 frame_event.type = FRAME_ACK_SENT; | |
277 frame_event.media_type = VIDEO_EVENT; | |
278 frame_event.timestamp = testing_clock.NowTicks(); | |
279 event_subscriber.OnReceiveFrameEvent(frame_event); | |
280 | 274 |
281 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { | 275 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { |
282 PacketEvent packet_event; | 276 PacketEvent packet_event; |
283 packet_event.rtp_timestamp = kRtpTimestamp + 2345; | 277 packet_event.rtp_timestamp = kRtpTimestamp + 2345; |
284 packet_event.type = PACKET_RECEIVED; | 278 packet_event.type = PACKET_RECEIVED; |
285 packet_event.media_type = VIDEO_EVENT; | 279 packet_event.media_type = VIDEO_EVENT; |
286 packet_event.timestamp = testing_clock.NowTicks(); | 280 packet_event.timestamp = testing_clock.NowTicks(); |
287 packet_event.packet_id = kLostPacketId1; | 281 packet_event.packet_id = kLostPacketId1; |
288 event_subscriber.OnReceivePacketEvent(packet_event); | 282 event_subscriber.OnReceivePacketEvent(packet_event); |
289 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 283 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
290 } | 284 } |
291 | 285 |
292 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; | 286 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
293 event_subscriber.GetRtcpEventsAndReset(&rtcp_events); | 287 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
294 | 288 |
295 ExpectPacketEQ(p.GetPacket().Pass(), | 289 ExpectPacketEQ(p.GetPacket().Pass(), |
296 rtcp_builder_->BuildRtcpFromReceiver( | 290 rtcp_builder_->BuildRtcpFromReceiver( |
297 &report_block, | 291 &report_block, |
298 NULL, | 292 NULL, |
299 NULL, | 293 NULL, |
300 &rtcp_events, | 294 &rtcp_events, |
301 kDefaultDelay)); | 295 kDefaultDelay)); |
302 } | 296 } |
303 | 297 |
304 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithTooManyLogFrames) { | 298 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithTooManyLogFrames) { |
305 static const uint32 kTimeBaseMs = 12345678; | 299 static const uint32 kTimeBaseMs = 12345678; |
306 static const uint32 kTimeDelayMs = 10; | 300 static const uint32 kTimeDelayMs = 10; |
307 | 301 |
308 TestRtcpPacketBuilder p; | 302 TestRtcpPacketBuilder p; |
309 p.AddRr(kSendingSsrc, 1); | 303 p.AddRr(kSendingSsrc, 1); |
310 p.AddRb(kMediaSsrc); | 304 p.AddRb(kMediaSsrc); |
311 | 305 |
312 RtcpReportBlock report_block = GetReportBlock(); | 306 RtcpReportBlock report_block = GetReportBlock(); |
313 | 307 |
314 base::SimpleTestTickClock testing_clock; | 308 base::SimpleTestTickClock testing_clock; |
315 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); | 309 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); |
316 | 310 |
317 p.AddReceiverLog(kSendingSsrc); | 311 p.AddReceiverLog(kSendingSsrc); |
318 | 312 |
319 int remaining_bytes = kMaxReceiverLogBytes; | 313 int num_events = kMaxEventsPerRTCP; |
320 remaining_bytes -= kRtcpCastLogHeaderSize; | |
321 | 314 |
322 int num_events = | 315 for (int i = 0; i < num_events; i++) { |
323 remaining_bytes / (kRtcpReceiverFrameLogSize + kRtcpReceiverEventLogSize); | |
324 | |
325 // The last |num_events| events are sent due to receiver log size cap. | |
326 for (size_t i = kRtcpMaxReceiverLogMessages - num_events; | |
327 i < kRtcpMaxReceiverLogMessages; | |
328 ++i) { | |
329 p.AddReceiverFrameLog(kRtpTimestamp + i, 1, kTimeBaseMs + i * kTimeDelayMs); | 316 p.AddReceiverFrameLog(kRtpTimestamp + i, 1, kTimeBaseMs + i * kTimeDelayMs); |
330 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); | 317 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); |
331 } | 318 } |
332 | 319 |
333 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); | 320 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
334 | 321 |
335 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { | 322 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { |
336 FrameEvent frame_event; | 323 FrameEvent frame_event; |
337 frame_event.rtp_timestamp = kRtpTimestamp + static_cast<int>(i); | 324 frame_event.rtp_timestamp = kRtpTimestamp + static_cast<int>(i); |
338 frame_event.type = FRAME_ACK_SENT; | 325 frame_event.type = FRAME_ACK_SENT; |
339 frame_event.media_type = VIDEO_EVENT; | 326 frame_event.media_type = VIDEO_EVENT; |
340 frame_event.timestamp = testing_clock.NowTicks(); | 327 frame_event.timestamp = testing_clock.NowTicks(); |
341 event_subscriber.OnReceiveFrameEvent(frame_event); | 328 event_subscriber.OnReceiveFrameEvent(frame_event); |
342 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 329 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
343 } | 330 } |
344 | 331 |
345 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; | 332 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
346 event_subscriber.GetRtcpEventsAndReset(&rtcp_events); | 333 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
347 | 334 |
348 ExpectPacketEQ(p.GetPacket().Pass(), | 335 ExpectPacketEQ(p.GetPacket().Pass(), |
349 rtcp_builder_->BuildRtcpFromReceiver( | 336 rtcp_builder_->BuildRtcpFromReceiver( |
350 &report_block, | 337 &report_block, |
351 NULL, | 338 NULL, |
352 NULL, | 339 NULL, |
353 &rtcp_events, | 340 &rtcp_events, |
354 kDefaultDelay)); | 341 kDefaultDelay)); |
355 } | 342 } |
356 | 343 |
(...skipping 25 matching lines...) Expand all Loading... | |
382 FrameEvent frame_event; | 369 FrameEvent frame_event; |
383 frame_event.rtp_timestamp = kRtpTimestamp; | 370 frame_event.rtp_timestamp = kRtpTimestamp; |
384 frame_event.type = FRAME_ACK_SENT; | 371 frame_event.type = FRAME_ACK_SENT; |
385 frame_event.media_type = VIDEO_EVENT; | 372 frame_event.media_type = VIDEO_EVENT; |
386 frame_event.timestamp = testing_clock.NowTicks(); | 373 frame_event.timestamp = testing_clock.NowTicks(); |
387 event_subscriber.OnReceiveFrameEvent(frame_event); | 374 event_subscriber.OnReceiveFrameEvent(frame_event); |
388 testing_clock.Advance( | 375 testing_clock.Advance( |
389 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); | 376 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); |
390 } | 377 } |
391 | 378 |
392 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; | 379 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
393 event_subscriber.GetRtcpEventsAndReset(&rtcp_events); | 380 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
394 | 381 |
395 ExpectPacketEQ(p.GetPacket().Pass(), | 382 ExpectPacketEQ(p.GetPacket().Pass(), |
396 rtcp_builder_->BuildRtcpFromReceiver( | 383 rtcp_builder_->BuildRtcpFromReceiver( |
397 &report_block, | 384 &report_block, |
398 NULL, | 385 NULL, |
399 NULL, | 386 NULL, |
400 &rtcp_events, | 387 &rtcp_events, |
401 kDefaultDelay)); | 388 kDefaultDelay)); |
402 } | 389 } |
403 | 390 |
404 TEST_F(RtcpBuilderTest, RtcpReceiverReportRedundancy) { | 391 TEST_F(RtcpBuilderTest, RtcpReceiverReportRedundancy) { |
405 uint32 time_base_ms = 12345678; | 392 uint32 time_base_ms = 12345678; |
406 int kTimeBetweenEventsMs = 10; | 393 int kTimeBetweenEventsMs = 10; |
407 | 394 |
408 RtcpReportBlock report_block = GetReportBlock(); | 395 RtcpReportBlock report_block = GetReportBlock(); |
409 | 396 |
410 base::SimpleTestTickClock testing_clock; | 397 base::SimpleTestTickClock testing_clock; |
411 testing_clock.Advance(base::TimeDelta::FromMilliseconds(time_base_ms)); | 398 testing_clock.Advance(base::TimeDelta::FromMilliseconds(time_base_ms)); |
412 | 399 |
413 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); | 400 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
414 size_t packet_count = kReceiveLogMessageHistorySize + 10; | 401 size_t packet_count = kNumResends * kResendDelay + 10; |
415 for (size_t i = 0; i < packet_count; i++) { | 402 for (size_t i = 0; i < packet_count; i++) { |
416 TestRtcpPacketBuilder p; | 403 TestRtcpPacketBuilder p; |
417 p.AddRr(kSendingSsrc, 1); | 404 p.AddRr(kSendingSsrc, 1); |
418 p.AddRb(kMediaSsrc); | 405 p.AddRb(kMediaSsrc); |
419 | 406 |
420 p.AddReceiverLog(kSendingSsrc); | 407 p.AddReceiverLog(kSendingSsrc); |
421 | 408 |
422 if (i >= kSecondRedundancyOffset) { | 409 int num_events = (i + kResendDelay) / kResendDelay; |
423 p.AddReceiverFrameLog( | 410 num_events = std::min<int>(num_events, kNumResends); |
424 kRtpTimestamp, | 411 p.AddReceiverFrameLog(kRtpTimestamp, num_events, |
425 1, | 412 time_base_ms - (num_events - 1) * kResendDelay * |
426 time_base_ms - kSecondRedundancyOffset * kTimeBetweenEventsMs); | 413 kTimeBetweenEventsMs); |
427 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); | 414 for (int i = 0; i < num_events; i++) { |
415 p.AddReceiverEventLog(0, FRAME_ACK_SENT, | |
416 i * kResendDelay * kTimeBetweenEventsMs); | |
428 } | 417 } |
429 if (i >= kFirstRedundancyOffset) { | |
430 p.AddReceiverFrameLog( | |
431 kRtpTimestamp, | |
432 1, | |
433 time_base_ms - kFirstRedundancyOffset * kTimeBetweenEventsMs); | |
434 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); | |
435 } | |
436 p.AddReceiverFrameLog(kRtpTimestamp, 1, time_base_ms); | |
437 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); | |
438 | 418 |
439 FrameEvent frame_event; | 419 FrameEvent frame_event; |
440 frame_event.rtp_timestamp = kRtpTimestamp; | 420 frame_event.rtp_timestamp = kRtpTimestamp; |
441 frame_event.type = FRAME_ACK_SENT; | 421 frame_event.type = FRAME_ACK_SENT; |
442 frame_event.media_type = VIDEO_EVENT; | 422 frame_event.media_type = VIDEO_EVENT; |
443 frame_event.timestamp = testing_clock.NowTicks(); | 423 frame_event.timestamp = testing_clock.NowTicks(); |
444 event_subscriber.OnReceiveFrameEvent(frame_event); | 424 event_subscriber.OnReceiveFrameEvent(frame_event); |
445 | 425 |
446 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; | 426 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
447 event_subscriber.GetRtcpEventsAndReset(&rtcp_events); | 427 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
448 | 428 |
449 ExpectPacketEQ(p.GetPacket().Pass(), | 429 ExpectPacketEQ(p.GetPacket().Pass(), |
450 rtcp_builder_->BuildRtcpFromReceiver( | 430 rtcp_builder_->BuildRtcpFromReceiver( |
451 &report_block, | 431 &report_block, |
452 NULL, | 432 NULL, |
453 NULL, | 433 NULL, |
454 &rtcp_events, | 434 &rtcp_events, |
455 kDefaultDelay)); | 435 kDefaultDelay)); |
456 | 436 |
457 testing_clock.Advance( | 437 testing_clock.Advance( |
(...skipping 13 matching lines...) Expand all Loading... | |
471 // Sender report. | 451 // Sender report. |
472 TestRtcpPacketBuilder p; | 452 TestRtcpPacketBuilder p; |
473 p.AddSr(kSendingSsrc, 0); | 453 p.AddSr(kSendingSsrc, 0); |
474 | 454 |
475 ExpectPacketEQ(p.GetPacket().Pass(), | 455 ExpectPacketEQ(p.GetPacket().Pass(), |
476 rtcp_builder_->BuildRtcpFromSender(sender_info)); | 456 rtcp_builder_->BuildRtcpFromSender(sender_info)); |
477 } | 457 } |
478 | 458 |
479 } // namespace cast | 459 } // namespace cast |
480 } // namespace media | 460 } // namespace media |
OLD | NEW |