OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/rtcp/receiver_rtcp_event_subscriber.h" | 9 #include "media/cast/rtcp/receiver_rtcp_event_subscriber.h" |
10 #include "media/cast/rtcp/rtcp_sender.h" | 10 #include "media/cast/rtcp/rtcp_sender.h" |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 cast_message.ack_frame_id_ = kAckFrameId; | 248 cast_message.ack_frame_id_ = kAckFrameId; |
249 PacketIdSet missing_packets; | 249 PacketIdSet missing_packets; |
250 cast_message.missing_frames_and_packets_[kLostFrameId] = missing_packets; | 250 cast_message.missing_frames_and_packets_[kLostFrameId] = missing_packets; |
251 | 251 |
252 missing_packets.insert(kLostPacketId1); | 252 missing_packets.insert(kLostPacketId1); |
253 missing_packets.insert(kLostPacketId2); | 253 missing_packets.insert(kLostPacketId2); |
254 missing_packets.insert(kLostPacketId3); | 254 missing_packets.insert(kLostPacketId3); |
255 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] = | 255 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] = |
256 missing_packets; | 256 missing_packets; |
257 | 257 |
258 ReceiverRtcpEventSubscriber event_subscriber( | 258 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
259 500, ReceiverRtcpEventSubscriber::kVideoEventSubscriber); | |
260 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; | 259 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; |
261 | 260 |
262 rtcp_sender_->SendRtcpFromRtpReceiver( | 261 rtcp_sender_->SendRtcpFromRtpReceiver( |
263 transport::kRtcpRr | transport::kRtcpRrtr | transport::kRtcpCast | | 262 transport::kRtcpRr | transport::kRtcpRrtr | transport::kRtcpCast | |
264 transport::kRtcpReceiverLog, | 263 transport::kRtcpReceiverLog, |
265 &report_block, | 264 &report_block, |
266 &rrtr, | 265 &rrtr, |
267 &cast_message, | 266 &cast_message, |
268 &rtcp_events, | 267 &rtcp_events, |
269 kDefaultDelay); | 268 kDefaultDelay); |
270 | 269 |
271 base::SimpleTestTickClock testing_clock; | 270 base::SimpleTestTickClock testing_clock; |
272 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); | 271 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); |
273 | 272 |
274 p.AddReceiverLog(kSendingSsrc); | 273 p.AddReceiverLog(kSendingSsrc); |
275 p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs); | 274 p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs); |
276 p.AddReceiverEventLog(0, kVideoAckSent, 0); | 275 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); |
277 p.AddReceiverEventLog(kLostPacketId1, kVideoPacketReceived, kTimeDelayMs); | 276 p.AddReceiverEventLog(kLostPacketId1, PACKET_RECEIVED, kTimeDelayMs); |
278 | 277 |
279 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); | 278 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); |
280 | 279 |
281 FrameEvent frame_event; | 280 FrameEvent frame_event; |
282 frame_event.rtp_timestamp = kRtpTimestamp; | 281 frame_event.rtp_timestamp = kRtpTimestamp; |
283 frame_event.type = kVideoAckSent; | 282 frame_event.type = FRAME_ACK_SENT; |
| 283 frame_event.media_type = VIDEO_EVENT; |
284 frame_event.timestamp = testing_clock.NowTicks(); | 284 frame_event.timestamp = testing_clock.NowTicks(); |
285 event_subscriber.OnReceiveFrameEvent(frame_event); | 285 event_subscriber.OnReceiveFrameEvent(frame_event); |
286 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 286 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
287 | 287 |
288 PacketEvent packet_event; | 288 PacketEvent packet_event; |
289 packet_event.rtp_timestamp = kRtpTimestamp; | 289 packet_event.rtp_timestamp = kRtpTimestamp; |
290 packet_event.type = kVideoPacketReceived; | 290 packet_event.type = PACKET_RECEIVED; |
| 291 packet_event.media_type = VIDEO_EVENT; |
291 packet_event.timestamp = testing_clock.NowTicks(); | 292 packet_event.timestamp = testing_clock.NowTicks(); |
292 packet_event.packet_id = kLostPacketId1; | 293 packet_event.packet_id = kLostPacketId1; |
293 event_subscriber.OnReceivePacketEvent(packet_event); | 294 event_subscriber.OnReceivePacketEvent(packet_event); |
294 event_subscriber.GetRtcpEventsAndReset(&rtcp_events); | 295 event_subscriber.GetRtcpEventsAndReset(&rtcp_events); |
295 EXPECT_EQ(2u, rtcp_events.size()); | 296 EXPECT_EQ(2u, rtcp_events.size()); |
296 | 297 |
297 rtcp_sender_->SendRtcpFromRtpReceiver( | 298 rtcp_sender_->SendRtcpFromRtpReceiver( |
298 transport::kRtcpRr | transport::kRtcpRrtr | transport::kRtcpCast | | 299 transport::kRtcpRr | transport::kRtcpRrtr | transport::kRtcpCast | |
299 transport::kRtcpReceiverLog, | 300 transport::kRtcpReceiverLog, |
300 &report_block, | 301 &report_block, |
(...skipping 27 matching lines...) Expand all Loading... |
328 remaining_bytes -= kRtcpReceiverFrameLogSize; | 329 remaining_bytes -= kRtcpReceiverFrameLogSize; |
329 int num_events = remaining_bytes / kRtcpReceiverEventLogSize; | 330 int num_events = remaining_bytes / kRtcpReceiverEventLogSize; |
330 EXPECT_LE(num_events, static_cast<int>(kRtcpMaxReceiverLogMessages)); | 331 EXPECT_LE(num_events, static_cast<int>(kRtcpMaxReceiverLogMessages)); |
331 // Only the last |num_events| events are sent due to receiver log size cap. | 332 // Only the last |num_events| events are sent due to receiver log size cap. |
332 p.AddReceiverFrameLog( | 333 p.AddReceiverFrameLog( |
333 kRtpTimestamp + 2345, | 334 kRtpTimestamp + 2345, |
334 num_events, | 335 num_events, |
335 kTimeBaseMs + (kRtcpMaxReceiverLogMessages - num_events) * kTimeDelayMs); | 336 kTimeBaseMs + (kRtcpMaxReceiverLogMessages - num_events) * kTimeDelayMs); |
336 for (int i = 0; i < num_events; i++) { | 337 for (int i = 0; i < num_events; i++) { |
337 p.AddReceiverEventLog( | 338 p.AddReceiverEventLog( |
338 kLostPacketId1, kVideoPacketReceived, | 339 kLostPacketId1, PACKET_RECEIVED, |
339 static_cast<uint16>(kTimeDelayMs * i)); | 340 static_cast<uint16>(kTimeDelayMs * i)); |
340 } | 341 } |
341 | 342 |
342 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); | 343 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); |
343 | 344 |
344 ReceiverRtcpEventSubscriber event_subscriber( | 345 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
345 500, ReceiverRtcpEventSubscriber::kVideoEventSubscriber); | |
346 FrameEvent frame_event; | 346 FrameEvent frame_event; |
347 frame_event.rtp_timestamp = kRtpTimestamp; | 347 frame_event.rtp_timestamp = kRtpTimestamp; |
348 frame_event.type = media::cast::kVideoAckSent; | 348 frame_event.type = FRAME_ACK_SENT; |
| 349 frame_event.media_type = VIDEO_EVENT; |
349 frame_event.timestamp = testing_clock.NowTicks(); | 350 frame_event.timestamp = testing_clock.NowTicks(); |
350 event_subscriber.OnReceiveFrameEvent(frame_event); | 351 event_subscriber.OnReceiveFrameEvent(frame_event); |
351 | 352 |
352 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { | 353 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { |
353 PacketEvent packet_event; | 354 PacketEvent packet_event; |
354 packet_event.rtp_timestamp = kRtpTimestamp + 2345; | 355 packet_event.rtp_timestamp = kRtpTimestamp + 2345; |
355 packet_event.type = kVideoPacketReceived; | 356 packet_event.type = PACKET_RECEIVED; |
| 357 packet_event.media_type = VIDEO_EVENT; |
356 packet_event.timestamp = testing_clock.NowTicks(); | 358 packet_event.timestamp = testing_clock.NowTicks(); |
357 packet_event.packet_id = kLostPacketId1; | 359 packet_event.packet_id = kLostPacketId1; |
358 event_subscriber.OnReceivePacketEvent(packet_event); | 360 event_subscriber.OnReceivePacketEvent(packet_event); |
359 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 361 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
360 } | 362 } |
361 | 363 |
362 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; | 364 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; |
363 event_subscriber.GetRtcpEventsAndReset(&rtcp_events); | 365 event_subscriber.GetRtcpEventsAndReset(&rtcp_events); |
364 | 366 |
365 rtcp_sender_->SendRtcpFromRtpReceiver( | 367 rtcp_sender_->SendRtcpFromRtpReceiver( |
(...skipping 27 matching lines...) Expand all Loading... |
393 remaining_bytes -= kRtcpCastLogHeaderSize; | 395 remaining_bytes -= kRtcpCastLogHeaderSize; |
394 | 396 |
395 int num_events = | 397 int num_events = |
396 remaining_bytes / (kRtcpReceiverFrameLogSize + kRtcpReceiverEventLogSize); | 398 remaining_bytes / (kRtcpReceiverFrameLogSize + kRtcpReceiverEventLogSize); |
397 | 399 |
398 // The last |num_events| events are sent due to receiver log size cap. | 400 // The last |num_events| events are sent due to receiver log size cap. |
399 for (size_t i = kRtcpMaxReceiverLogMessages - num_events; | 401 for (size_t i = kRtcpMaxReceiverLogMessages - num_events; |
400 i < kRtcpMaxReceiverLogMessages; | 402 i < kRtcpMaxReceiverLogMessages; |
401 ++i) { | 403 ++i) { |
402 p.AddReceiverFrameLog(kRtpTimestamp + i, 1, kTimeBaseMs + i * kTimeDelayMs); | 404 p.AddReceiverFrameLog(kRtpTimestamp + i, 1, kTimeBaseMs + i * kTimeDelayMs); |
403 p.AddReceiverEventLog(0, kVideoAckSent, 0); | 405 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); |
404 } | 406 } |
405 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); | 407 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); |
406 | 408 |
407 ReceiverRtcpEventSubscriber event_subscriber( | 409 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
408 500, ReceiverRtcpEventSubscriber::kVideoEventSubscriber); | |
409 | 410 |
410 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { | 411 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { |
411 FrameEvent frame_event; | 412 FrameEvent frame_event; |
412 frame_event.rtp_timestamp = kRtpTimestamp + static_cast<int>(i); | 413 frame_event.rtp_timestamp = kRtpTimestamp + static_cast<int>(i); |
413 frame_event.type = media::cast::kVideoAckSent; | 414 frame_event.type = FRAME_ACK_SENT; |
| 415 frame_event.media_type = VIDEO_EVENT; |
414 frame_event.timestamp = testing_clock.NowTicks(); | 416 frame_event.timestamp = testing_clock.NowTicks(); |
415 event_subscriber.OnReceiveFrameEvent(frame_event); | 417 event_subscriber.OnReceiveFrameEvent(frame_event); |
416 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 418 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
417 } | 419 } |
418 | 420 |
419 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; | 421 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; |
420 event_subscriber.GetRtcpEventsAndReset(&rtcp_events); | 422 event_subscriber.GetRtcpEventsAndReset(&rtcp_events); |
421 | 423 |
422 rtcp_sender_->SendRtcpFromRtpReceiver( | 424 rtcp_sender_->SendRtcpFromRtpReceiver( |
423 transport::kRtcpRr | transport::kRtcpReceiverLog, | 425 transport::kRtcpRr | transport::kRtcpReceiverLog, |
(...skipping 20 matching lines...) Expand all Loading... |
444 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); | 446 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); |
445 | 447 |
446 p.AddReceiverLog(kSendingSsrc); | 448 p.AddReceiverLog(kSendingSsrc); |
447 | 449 |
448 // Log 11 events for a single frame, each |kTimeBetweenEventsMs| apart. | 450 // Log 11 events for a single frame, each |kTimeBetweenEventsMs| apart. |
449 // Only last 10 events will be sent because the first event is more than | 451 // Only last 10 events will be sent because the first event is more than |
450 // 4095 milliseconds away from latest event. | 452 // 4095 milliseconds away from latest event. |
451 const int kTimeBetweenEventsMs = 410; | 453 const int kTimeBetweenEventsMs = 410; |
452 p.AddReceiverFrameLog(kRtpTimestamp, 10, kTimeBaseMs + kTimeBetweenEventsMs); | 454 p.AddReceiverFrameLog(kRtpTimestamp, 10, kTimeBaseMs + kTimeBetweenEventsMs); |
453 for (int i = 0; i < 10; ++i) { | 455 for (int i = 0; i < 10; ++i) { |
454 p.AddReceiverEventLog(0, kVideoAckSent, i * kTimeBetweenEventsMs); | 456 p.AddReceiverEventLog(0, FRAME_ACK_SENT, i * kTimeBetweenEventsMs); |
455 } | 457 } |
456 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); | 458 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); |
457 | 459 |
458 ReceiverRtcpEventSubscriber event_subscriber( | 460 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
459 500, ReceiverRtcpEventSubscriber::kVideoEventSubscriber); | |
460 for (int i = 0; i < 11; ++i) { | 461 for (int i = 0; i < 11; ++i) { |
461 FrameEvent frame_event; | 462 FrameEvent frame_event; |
462 frame_event.rtp_timestamp = kRtpTimestamp; | 463 frame_event.rtp_timestamp = kRtpTimestamp; |
463 frame_event.type = media::cast::kVideoAckSent; | 464 frame_event.type = FRAME_ACK_SENT; |
| 465 frame_event.media_type = VIDEO_EVENT; |
464 frame_event.timestamp = testing_clock.NowTicks(); | 466 frame_event.timestamp = testing_clock.NowTicks(); |
465 event_subscriber.OnReceiveFrameEvent(frame_event); | 467 event_subscriber.OnReceiveFrameEvent(frame_event); |
466 testing_clock.Advance( | 468 testing_clock.Advance( |
467 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); | 469 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); |
468 } | 470 } |
469 | 471 |
470 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; | 472 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; |
471 event_subscriber.GetRtcpEventsAndReset(&rtcp_events); | 473 event_subscriber.GetRtcpEventsAndReset(&rtcp_events); |
472 | 474 |
473 rtcp_sender_->SendRtcpFromRtpReceiver( | 475 rtcp_sender_->SendRtcpFromRtpReceiver( |
474 transport::kRtcpRr | transport::kRtcpReceiverLog, | 476 transport::kRtcpRr | transport::kRtcpReceiverLog, |
475 &report_block, | 477 &report_block, |
476 NULL, | 478 NULL, |
477 NULL, | 479 NULL, |
478 &rtcp_events, | 480 &rtcp_events, |
479 kDefaultDelay); | 481 kDefaultDelay); |
480 | 482 |
481 EXPECT_EQ(1, test_transport_.packet_count()); | 483 EXPECT_EQ(1, test_transport_.packet_count()); |
482 } | 484 } |
483 | 485 |
484 TEST_F(RtcpSenderTest, RtcpReceiverReportRedundancy) { | 486 TEST_F(RtcpSenderTest, RtcpReceiverReportRedundancy) { |
485 uint32 time_base_ms = 12345678; | 487 uint32 time_base_ms = 12345678; |
486 int kTimeBetweenEventsMs = 10; | 488 int kTimeBetweenEventsMs = 10; |
487 | 489 |
488 transport::RtcpReportBlock report_block = GetReportBlock(); | 490 transport::RtcpReportBlock report_block = GetReportBlock(); |
489 | 491 |
490 base::SimpleTestTickClock testing_clock; | 492 base::SimpleTestTickClock testing_clock; |
491 testing_clock.Advance(base::TimeDelta::FromMilliseconds(time_base_ms)); | 493 testing_clock.Advance(base::TimeDelta::FromMilliseconds(time_base_ms)); |
492 | 494 |
493 ReceiverRtcpEventSubscriber event_subscriber( | 495 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
494 500, ReceiverRtcpEventSubscriber::kVideoEventSubscriber); | |
495 size_t packet_count = kReceiveLogMessageHistorySize + 10; | 496 size_t packet_count = kReceiveLogMessageHistorySize + 10; |
496 for (size_t i = 0; i < packet_count; i++) { | 497 for (size_t i = 0; i < packet_count; i++) { |
497 TestRtcpPacketBuilder p; | 498 TestRtcpPacketBuilder p; |
498 p.AddRr(kSendingSsrc, 1); | 499 p.AddRr(kSendingSsrc, 1); |
499 p.AddRb(kMediaSsrc); | 500 p.AddRb(kMediaSsrc); |
500 p.AddSdesCname(kSendingSsrc, kCName); | 501 p.AddSdesCname(kSendingSsrc, kCName); |
501 | 502 |
502 p.AddReceiverLog(kSendingSsrc); | 503 p.AddReceiverLog(kSendingSsrc); |
503 | 504 |
504 if (i >= kSecondRedundancyOffset) { | 505 if (i >= kSecondRedundancyOffset) { |
505 p.AddReceiverFrameLog( | 506 p.AddReceiverFrameLog( |
506 kRtpTimestamp, | 507 kRtpTimestamp, |
507 1, | 508 1, |
508 time_base_ms - kSecondRedundancyOffset * kTimeBetweenEventsMs); | 509 time_base_ms - kSecondRedundancyOffset * kTimeBetweenEventsMs); |
509 p.AddReceiverEventLog(0, kVideoAckSent, 0); | 510 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); |
510 } | 511 } |
511 if (i >= kFirstRedundancyOffset) { | 512 if (i >= kFirstRedundancyOffset) { |
512 p.AddReceiverFrameLog( | 513 p.AddReceiverFrameLog( |
513 kRtpTimestamp, | 514 kRtpTimestamp, |
514 1, | 515 1, |
515 time_base_ms - kFirstRedundancyOffset * kTimeBetweenEventsMs); | 516 time_base_ms - kFirstRedundancyOffset * kTimeBetweenEventsMs); |
516 p.AddReceiverEventLog(0, kVideoAckSent, 0); | 517 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); |
517 } | 518 } |
518 p.AddReceiverFrameLog(kRtpTimestamp, 1, time_base_ms); | 519 p.AddReceiverFrameLog(kRtpTimestamp, 1, time_base_ms); |
519 p.AddReceiverEventLog(0, kVideoAckSent, 0); | 520 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); |
520 | 521 |
521 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); | 522 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); |
522 | 523 |
523 FrameEvent frame_event; | 524 FrameEvent frame_event; |
524 frame_event.rtp_timestamp = kRtpTimestamp; | 525 frame_event.rtp_timestamp = kRtpTimestamp; |
525 frame_event.type = media::cast::kVideoAckSent; | 526 frame_event.type = FRAME_ACK_SENT; |
| 527 frame_event.media_type = VIDEO_EVENT; |
526 frame_event.timestamp = testing_clock.NowTicks(); | 528 frame_event.timestamp = testing_clock.NowTicks(); |
527 event_subscriber.OnReceiveFrameEvent(frame_event); | 529 event_subscriber.OnReceiveFrameEvent(frame_event); |
528 | 530 |
529 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; | 531 ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; |
530 event_subscriber.GetRtcpEventsAndReset(&rtcp_events); | 532 event_subscriber.GetRtcpEventsAndReset(&rtcp_events); |
531 | 533 |
532 rtcp_sender_->SendRtcpFromRtpReceiver( | 534 rtcp_sender_->SendRtcpFromRtpReceiver( |
533 transport::kRtcpRr | transport::kRtcpReceiverLog, | 535 transport::kRtcpRr | transport::kRtcpReceiverLog, |
534 &report_block, | 536 &report_block, |
535 NULL, | 537 NULL, |
536 NULL, | 538 NULL, |
537 &rtcp_events, | 539 &rtcp_events, |
538 kDefaultDelay); | 540 kDefaultDelay); |
539 | 541 |
540 testing_clock.Advance( | 542 testing_clock.Advance( |
541 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); | 543 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); |
542 time_base_ms += kTimeBetweenEventsMs; | 544 time_base_ms += kTimeBetweenEventsMs; |
543 } | 545 } |
544 | 546 |
545 EXPECT_EQ(static_cast<int>(packet_count), test_transport_.packet_count()); | 547 EXPECT_EQ(static_cast<int>(packet_count), test_transport_.packet_count()); |
546 } | 548 } |
547 | 549 |
548 } // namespace cast | 550 } // namespace cast |
549 } // namespace media | 551 } // namespace media |
OLD | NEW |