| 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/rtcp_sender.h" | 9 #include "media/cast/rtcp/rtcp_sender.h" |
| 10 #include "media/cast/rtcp/rtcp_utility.h" | 10 #include "media/cast/rtcp/rtcp_utility.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 size_t expected_packet_length_; | 57 size_t expected_packet_length_; |
| 58 int packet_count_; | 58 int packet_count_; |
| 59 }; | 59 }; |
| 60 | 60 |
| 61 class RtcpSenderTest : public ::testing::Test { | 61 class RtcpSenderTest : public ::testing::Test { |
| 62 protected: | 62 protected: |
| 63 RtcpSenderTest() | 63 RtcpSenderTest() |
| 64 : task_runner_(new test::FakeTaskRunner(&testing_clock_)), | 64 : task_runner_(new test::FakeTaskRunner(&testing_clock_)), |
| 65 cast_environment_(new CastEnvironment(&testing_clock_, task_runner_, | 65 cast_environment_(new CastEnvironment(&testing_clock_, task_runner_, |
| 66 task_runner_, task_runner_, task_runner_, task_runner_, | 66 task_runner_, task_runner_, task_runner_, task_runner_, |
| 67 task_runner_, GetDefaultCastLoggingConfig())), | 67 task_runner_, GetDefaultCastSenderLoggingConfig())), |
| 68 rtcp_sender_(new RtcpSender(cast_environment_, | 68 rtcp_sender_(new RtcpSender(cast_environment_, |
| 69 &test_transport_, | 69 &test_transport_, |
| 70 kSendingSsrc, | 70 kSendingSsrc, |
| 71 kCName)) { | 71 kCName)) { |
| 72 } | 72 } |
| 73 | 73 |
| 74 base::SimpleTestTickClock testing_clock_; | 74 base::SimpleTestTickClock testing_clock_; |
| 75 TestRtcpTransport test_transport_; | 75 TestRtcpTransport test_transport_; |
| 76 scoped_refptr<test::FakeTaskRunner> task_runner_; | 76 scoped_refptr<test::FakeTaskRunner> task_runner_; |
| 77 scoped_refptr<CastEnvironment> cast_environment_; | 77 scoped_refptr<CastEnvironment> cast_environment_; |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 | 272 |
| 273 missing_packets.insert(kLostPacketId1); | 273 missing_packets.insert(kLostPacketId1); |
| 274 missing_packets.insert(kLostPacketId2); | 274 missing_packets.insert(kLostPacketId2); |
| 275 missing_packets.insert(kLostPacketId3); | 275 missing_packets.insert(kLostPacketId3); |
| 276 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] = | 276 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] = |
| 277 missing_packets; | 277 missing_packets; |
| 278 | 278 |
| 279 // Test empty Log message. | 279 // Test empty Log message. |
| 280 RtcpReceiverLogMessage receiver_log; | 280 RtcpReceiverLogMessage receiver_log; |
| 281 | 281 |
| 282 VLOG(0) << " Test empty Log " ; | |
| 283 rtcp_sender_->SendRtcpFromRtpReceiver( | 282 rtcp_sender_->SendRtcpFromRtpReceiver( |
| 284 RtcpSender::kRtcpRr | RtcpSender::kRtcpRrtr | RtcpSender::kRtcpCast | | 283 RtcpSender::kRtcpRr | RtcpSender::kRtcpRrtr | RtcpSender::kRtcpCast | |
| 285 RtcpSender::kRtcpReceiverLog, | 284 RtcpSender::kRtcpReceiverLog, |
| 286 &report_block, | 285 &report_block, |
| 287 &rrtr, | 286 &rrtr, |
| 288 &cast_message, | 287 &cast_message, |
| 289 &receiver_log); | 288 &receiver_log); |
| 290 | 289 |
| 291 | 290 |
| 292 base::SimpleTestTickClock testing_clock; | 291 base::SimpleTestTickClock testing_clock; |
| 293 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); | 292 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); |
| 294 | 293 |
| 295 p.AddReceiverLog(kSendingSsrc); | 294 p.AddReceiverLog(kSendingSsrc); |
| 296 p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs); | 295 p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs); |
| 297 p.AddReceiverEventLog(kDelayDeltaMs, 1, 0); | 296 p.AddReceiverEventLog(kDelayDeltaMs, 5, 0); |
| 298 p.AddReceiverEventLog(kLostPacketId1, 6, kTimeDelayMs); | 297 p.AddReceiverEventLog(kLostPacketId1, 8, kTimeDelayMs); |
| 299 | 298 |
| 300 test_transport_.SetExpectedRtcpPacket(p.Packet(), p.Length()); | 299 test_transport_.SetExpectedRtcpPacket(p.Packet(), p.Length()); |
| 301 | 300 |
| 302 RtcpReceiverFrameLogMessage frame_log(kRtpTimestamp); | 301 RtcpReceiverFrameLogMessage frame_log(kRtpTimestamp); |
| 303 RtcpReceiverEventLogMessage event_log; | 302 RtcpReceiverEventLogMessage event_log; |
| 304 | 303 |
| 305 event_log.type = kAckSent; | 304 event_log.type = kVideoAckSent; |
| 306 event_log.event_timestamp = testing_clock.NowTicks(); | 305 event_log.event_timestamp = testing_clock.NowTicks(); |
| 307 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs); | 306 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs); |
| 308 frame_log.event_log_messages_.push_back(event_log); | 307 frame_log.event_log_messages_.push_back(event_log); |
| 309 | 308 |
| 310 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 309 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
| 311 event_log.type = kPacketReceived; | 310 event_log.type = kVideoPacketReceived; |
| 312 event_log.event_timestamp = testing_clock.NowTicks(); | 311 event_log.event_timestamp = testing_clock.NowTicks(); |
| 313 event_log.packet_id = kLostPacketId1; | 312 event_log.packet_id = kLostPacketId1; |
| 314 frame_log.event_log_messages_.push_back(event_log); | 313 frame_log.event_log_messages_.push_back(event_log); |
| 315 | 314 |
| 316 receiver_log.push_back(frame_log); | 315 receiver_log.push_back(frame_log); |
| 317 | 316 |
| 318 VLOG(0) << " Test Log " ; | |
| 319 rtcp_sender_->SendRtcpFromRtpReceiver( | 317 rtcp_sender_->SendRtcpFromRtpReceiver( |
| 320 RtcpSender::kRtcpRr | RtcpSender::kRtcpRrtr | RtcpSender::kRtcpCast | | 318 RtcpSender::kRtcpRr | RtcpSender::kRtcpRrtr | RtcpSender::kRtcpCast | |
| 321 RtcpSender::kRtcpReceiverLog, | 319 RtcpSender::kRtcpReceiverLog, |
| 322 &report_block, | 320 &report_block, |
| 323 &rrtr, | 321 &rrtr, |
| 324 &cast_message, | 322 &cast_message, |
| 325 &receiver_log); | 323 &receiver_log); |
| 326 | 324 |
| 327 EXPECT_TRUE(receiver_log.empty()); | 325 EXPECT_TRUE(receiver_log.empty()); |
| 328 EXPECT_EQ(2, test_transport_.packet_count()); | 326 EXPECT_EQ(2, test_transport_.packet_count()); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 348 report_block.jitter = kTestJitter; | 346 report_block.jitter = kTestJitter; |
| 349 report_block.last_sr = kLastSr; | 347 report_block.last_sr = kLastSr; |
| 350 report_block.delay_since_last_sr = kDelayLastSr; | 348 report_block.delay_since_last_sr = kDelayLastSr; |
| 351 | 349 |
| 352 base::SimpleTestTickClock testing_clock; | 350 base::SimpleTestTickClock testing_clock; |
| 353 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); | 351 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); |
| 354 | 352 |
| 355 p.AddReceiverLog(kSendingSsrc); | 353 p.AddReceiverLog(kSendingSsrc); |
| 356 | 354 |
| 357 p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs); | 355 p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs); |
| 358 p.AddReceiverEventLog(kDelayDeltaMs, 1, 0); | 356 p.AddReceiverEventLog(kDelayDeltaMs, 5, 0); |
| 359 p.AddReceiverFrameLog(kRtpTimestamp + 2345, | 357 p.AddReceiverFrameLog(kRtpTimestamp + 2345, |
| 360 kRtcpMaxReceiverLogMessages, kTimeBaseMs); | 358 kRtcpMaxReceiverLogMessages, kTimeBaseMs); |
| 361 | 359 |
| 362 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { | 360 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { |
| 363 p.AddReceiverEventLog( | 361 p.AddReceiverEventLog( |
| 364 kLostPacketId1, 6, static_cast<uint16>(kTimeDelayMs * i)); | 362 kLostPacketId1, 8, static_cast<uint16>(kTimeDelayMs * i)); |
| 365 } | 363 } |
| 366 | 364 |
| 367 test_transport_.SetExpectedRtcpPacket(p.Packet(), p.Length()); | 365 test_transport_.SetExpectedRtcpPacket(p.Packet(), p.Length()); |
| 368 | 366 |
| 369 RtcpReceiverFrameLogMessage frame_1_log(kRtpTimestamp); | 367 RtcpReceiverFrameLogMessage frame_1_log(kRtpTimestamp); |
| 370 RtcpReceiverEventLogMessage event_log; | 368 RtcpReceiverEventLogMessage event_log; |
| 371 | 369 |
| 372 event_log.type = kAckSent; | 370 event_log.type = kVideoAckSent; |
| 373 event_log.event_timestamp = testing_clock.NowTicks(); | 371 event_log.event_timestamp = testing_clock.NowTicks(); |
| 374 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs); | 372 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs); |
| 375 frame_1_log.event_log_messages_.push_back(event_log); | 373 frame_1_log.event_log_messages_.push_back(event_log); |
| 376 | 374 |
| 377 RtcpReceiverLogMessage receiver_log; | 375 RtcpReceiverLogMessage receiver_log; |
| 378 receiver_log.push_back(frame_1_log); | 376 receiver_log.push_back(frame_1_log); |
| 379 | 377 |
| 380 RtcpReceiverFrameLogMessage frame_2_log(kRtpTimestamp + 2345); | 378 RtcpReceiverFrameLogMessage frame_2_log(kRtpTimestamp + 2345); |
| 381 | 379 |
| 382 for (int j = 0; j < 300; ++j) { | 380 for (int j = 0; j < 300; ++j) { |
| 383 event_log.type = kPacketReceived; | 381 event_log.type = kVideoPacketReceived; |
| 384 event_log.event_timestamp = testing_clock.NowTicks(); | 382 event_log.event_timestamp = testing_clock.NowTicks(); |
| 385 event_log.packet_id = kLostPacketId1; | 383 event_log.packet_id = kLostPacketId1; |
| 386 frame_2_log.event_log_messages_.push_back(event_log); | 384 frame_2_log.event_log_messages_.push_back(event_log); |
| 387 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 385 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
| 388 } | 386 } |
| 389 receiver_log.push_back(frame_2_log); | 387 receiver_log.push_back(frame_2_log); |
| 390 | 388 |
| 391 rtcp_sender_->SendRtcpFromRtpReceiver( | 389 rtcp_sender_->SendRtcpFromRtpReceiver( |
| 392 RtcpSender::kRtcpRr | RtcpSender::kRtcpReceiverLog, | 390 RtcpSender::kRtcpRr | RtcpSender::kRtcpReceiverLog, |
| 393 &report_block, | 391 &report_block, |
| (...skipping 28 matching lines...) Expand all Loading... |
| 422 report_block.last_sr = kLastSr; | 420 report_block.last_sr = kLastSr; |
| 423 report_block.delay_since_last_sr = kDelayLastSr; | 421 report_block.delay_since_last_sr = kDelayLastSr; |
| 424 | 422 |
| 425 base::SimpleTestTickClock testing_clock; | 423 base::SimpleTestTickClock testing_clock; |
| 426 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); | 424 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); |
| 427 | 425 |
| 428 p.AddReceiverLog(kSendingSsrc); | 426 p.AddReceiverLog(kSendingSsrc); |
| 429 | 427 |
| 430 for (int i = 0; i < 119; ++i) { | 428 for (int i = 0; i < 119; ++i) { |
| 431 p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs + i * kTimeDelayMs); | 429 p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs + i * kTimeDelayMs); |
| 432 p.AddReceiverEventLog(kDelayDeltaMs, 1, 0); | 430 p.AddReceiverEventLog(kDelayDeltaMs, 5, 0); |
| 433 } | 431 } |
| 434 test_transport_.SetExpectedRtcpPacket(p.Packet(), p.Length()); | 432 test_transport_.SetExpectedRtcpPacket(p.Packet(), p.Length()); |
| 435 | 433 |
| 436 RtcpReceiverLogMessage receiver_log; | 434 RtcpReceiverLogMessage receiver_log; |
| 437 | 435 |
| 438 for (int j = 0; j < 200; ++j) { | 436 for (int j = 0; j < 200; ++j) { |
| 439 RtcpReceiverFrameLogMessage frame_log(kRtpTimestamp); | 437 RtcpReceiverFrameLogMessage frame_log(kRtpTimestamp); |
| 440 RtcpReceiverEventLogMessage event_log; | 438 RtcpReceiverEventLogMessage event_log; |
| 441 | 439 |
| 442 event_log.type = kAckSent; | 440 event_log.type = kVideoAckSent; |
| 443 event_log.event_timestamp = testing_clock.NowTicks(); | 441 event_log.event_timestamp = testing_clock.NowTicks(); |
| 444 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs); | 442 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs); |
| 445 frame_log.event_log_messages_.push_back(event_log); | 443 frame_log.event_log_messages_.push_back(event_log); |
| 446 receiver_log.push_back(frame_log); | 444 receiver_log.push_back(frame_log); |
| 447 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 445 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
| 448 } | 446 } |
| 449 rtcp_sender_->SendRtcpFromRtpReceiver( | 447 rtcp_sender_->SendRtcpFromRtpReceiver( |
| 450 RtcpSender::kRtcpRr | RtcpSender::kRtcpReceiverLog, | 448 RtcpSender::kRtcpRr | RtcpSender::kRtcpReceiverLog, |
| 451 &report_block, | 449 &report_block, |
| 452 NULL, | 450 NULL, |
| 453 NULL, | 451 NULL, |
| 454 &receiver_log); | 452 &receiver_log); |
| 455 | 453 |
| 456 EXPECT_EQ(1, test_transport_.packet_count()); | 454 EXPECT_EQ(1, test_transport_.packet_count()); |
| 457 EXPECT_EQ(81u, receiver_log.size()); | 455 EXPECT_EQ(81u, receiver_log.size()); |
| 458 } | 456 } |
| 459 | 457 |
| 460 } // namespace cast | 458 } // namespace cast |
| 461 } // namespace media | 459 } // namespace media |
| OLD | NEW |