Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(647)

Side by Side Diff: media/cast/rtcp/rtcp_sender_unittest.cc

Issue 270493003: Cast: Deduplicate event types in cast library. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/cast/rtcp/rtcp_sender.cc ('k') | media/cast/rtcp/rtcp_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
OLDNEW
« no previous file with comments | « media/cast/rtcp/rtcp_sender.cc ('k') | media/cast/rtcp/rtcp_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698