Chromium Code Reviews| 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_environment.h" | 7 #include "media/cast/cast_environment.h" |
| 8 #include "media/cast/net/cast_transport_config.h" | 8 #include "media/cast/net/cast_transport_config.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 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 207 | 207 |
| 208 base::SimpleTestTickClock testing_clock; | 208 base::SimpleTestTickClock testing_clock; |
| 209 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); | 209 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); |
| 210 | 210 |
| 211 p.AddReceiverLog(kSendingSsrc); | 211 p.AddReceiverLog(kSendingSsrc); |
| 212 p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs); | 212 p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs); |
| 213 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); | 213 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); |
| 214 p.AddReceiverEventLog(kLostPacketId1, PACKET_RECEIVED, kTimeDelayMs); | 214 p.AddReceiverEventLog(kLostPacketId1, PACKET_RECEIVED, kTimeDelayMs); |
| 215 | 215 |
| 216 FrameEvent frame_event; | 216 FrameEvent frame_event; |
| 217 frame_event.rtp_timestamp = kRtpTimestamp; | 217 frame_event.rtp_timestamp = RtpTimeTicks().Expand(kRtpTimestamp); |
| 218 frame_event.type = FRAME_ACK_SENT; | 218 frame_event.type = FRAME_ACK_SENT; |
| 219 frame_event.media_type = VIDEO_EVENT; | 219 frame_event.media_type = VIDEO_EVENT; |
| 220 frame_event.timestamp = testing_clock.NowTicks(); | 220 frame_event.timestamp = testing_clock.NowTicks(); |
| 221 event_subscriber.OnReceiveFrameEvent(frame_event); | 221 event_subscriber.OnReceiveFrameEvent(frame_event); |
| 222 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 222 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
| 223 | 223 |
| 224 PacketEvent packet_event; | 224 PacketEvent packet_event; |
| 225 packet_event.rtp_timestamp = kRtpTimestamp; | 225 packet_event.rtp_timestamp = RtpTimeTicks().Expand(kRtpTimestamp); |
|
Irfan
2015/12/09 21:24:28
consider making kRtpTimestamp a RtpTimeTicks value
miu
2015/12/10 00:38:37
Done.
| |
| 226 packet_event.type = PACKET_RECEIVED; | 226 packet_event.type = PACKET_RECEIVED; |
| 227 packet_event.media_type = VIDEO_EVENT; | 227 packet_event.media_type = VIDEO_EVENT; |
| 228 packet_event.timestamp = testing_clock.NowTicks(); | 228 packet_event.timestamp = testing_clock.NowTicks(); |
| 229 packet_event.packet_id = kLostPacketId1; | 229 packet_event.packet_id = kLostPacketId1; |
| 230 event_subscriber.OnReceivePacketEvent(packet_event); | 230 event_subscriber.OnReceivePacketEvent(packet_event); |
| 231 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); | 231 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
| 232 EXPECT_EQ(2u, rtcp_events.size()); | 232 EXPECT_EQ(2u, rtcp_events.size()); |
| 233 | 233 |
| 234 ExpectPacketEQ( | 234 ExpectPacketEQ( |
| 235 p.GetPacket().Pass(), | 235 p.GetPacket().Pass(), |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 268 kLostPacketId1, | 268 kLostPacketId1, |
| 269 PACKET_RECEIVED, | 269 PACKET_RECEIVED, |
| 270 static_cast<uint16>(kTimeDelayMs * i)); | 270 static_cast<uint16>(kTimeDelayMs * i)); |
| 271 } | 271 } |
| 272 | 272 |
| 273 | 273 |
| 274 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); | 274 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
| 275 | 275 |
| 276 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { | 276 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { |
| 277 PacketEvent packet_event; | 277 PacketEvent packet_event; |
| 278 packet_event.rtp_timestamp = kRtpTimestamp + 2345; | 278 packet_event.rtp_timestamp = |
| 279 RtpTimeTicks().Expand(kRtpTimestamp) + RtpTimeDelta::FromTicks(2345); | |
| 279 packet_event.type = PACKET_RECEIVED; | 280 packet_event.type = PACKET_RECEIVED; |
| 280 packet_event.media_type = VIDEO_EVENT; | 281 packet_event.media_type = VIDEO_EVENT; |
| 281 packet_event.timestamp = testing_clock.NowTicks(); | 282 packet_event.timestamp = testing_clock.NowTicks(); |
| 282 packet_event.packet_id = kLostPacketId1; | 283 packet_event.packet_id = kLostPacketId1; |
| 283 event_subscriber.OnReceivePacketEvent(packet_event); | 284 event_subscriber.OnReceivePacketEvent(packet_event); |
| 284 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 285 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
| 285 } | 286 } |
| 286 | 287 |
| 287 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; | 288 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
| 288 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); | 289 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 315 | 316 |
| 316 for (int i = 0; i < num_events; i++) { | 317 for (int i = 0; i < num_events; i++) { |
| 317 p.AddReceiverFrameLog(kRtpTimestamp + i, 1, kTimeBaseMs + i * kTimeDelayMs); | 318 p.AddReceiverFrameLog(kRtpTimestamp + i, 1, kTimeBaseMs + i * kTimeDelayMs); |
| 318 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); | 319 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); |
| 319 } | 320 } |
| 320 | 321 |
| 321 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); | 322 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
| 322 | 323 |
| 323 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { | 324 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { |
| 324 FrameEvent frame_event; | 325 FrameEvent frame_event; |
| 325 frame_event.rtp_timestamp = kRtpTimestamp + static_cast<int>(i); | 326 frame_event.rtp_timestamp = |
| 327 RtpTimeTicks().Expand(kRtpTimestamp) + RtpTimeDelta::FromTicks(i); | |
| 326 frame_event.type = FRAME_ACK_SENT; | 328 frame_event.type = FRAME_ACK_SENT; |
| 327 frame_event.media_type = VIDEO_EVENT; | 329 frame_event.media_type = VIDEO_EVENT; |
| 328 frame_event.timestamp = testing_clock.NowTicks(); | 330 frame_event.timestamp = testing_clock.NowTicks(); |
| 329 event_subscriber.OnReceiveFrameEvent(frame_event); | 331 event_subscriber.OnReceiveFrameEvent(frame_event); |
| 330 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 332 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
| 331 } | 333 } |
| 332 | 334 |
| 333 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; | 335 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
| 334 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); | 336 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
| 335 | 337 |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 361 // 4095 milliseconds away from latest event. | 363 // 4095 milliseconds away from latest event. |
| 362 const int kTimeBetweenEventsMs = 410; | 364 const int kTimeBetweenEventsMs = 410; |
| 363 p.AddReceiverFrameLog(kRtpTimestamp, 10, kTimeBaseMs + kTimeBetweenEventsMs); | 365 p.AddReceiverFrameLog(kRtpTimestamp, 10, kTimeBaseMs + kTimeBetweenEventsMs); |
| 364 for (int i = 0; i < 10; ++i) { | 366 for (int i = 0; i < 10; ++i) { |
| 365 p.AddReceiverEventLog(0, FRAME_ACK_SENT, i * kTimeBetweenEventsMs); | 367 p.AddReceiverEventLog(0, FRAME_ACK_SENT, i * kTimeBetweenEventsMs); |
| 366 } | 368 } |
| 367 | 369 |
| 368 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); | 370 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
| 369 for (int i = 0; i < 11; ++i) { | 371 for (int i = 0; i < 11; ++i) { |
| 370 FrameEvent frame_event; | 372 FrameEvent frame_event; |
| 371 frame_event.rtp_timestamp = kRtpTimestamp; | 373 frame_event.rtp_timestamp = RtpTimeTicks().Expand(kRtpTimestamp); |
| 372 frame_event.type = FRAME_ACK_SENT; | 374 frame_event.type = FRAME_ACK_SENT; |
| 373 frame_event.media_type = VIDEO_EVENT; | 375 frame_event.media_type = VIDEO_EVENT; |
| 374 frame_event.timestamp = testing_clock.NowTicks(); | 376 frame_event.timestamp = testing_clock.NowTicks(); |
| 375 event_subscriber.OnReceiveFrameEvent(frame_event); | 377 event_subscriber.OnReceiveFrameEvent(frame_event); |
| 376 testing_clock.Advance( | 378 testing_clock.Advance( |
| 377 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); | 379 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); |
| 378 } | 380 } |
| 379 | 381 |
| 380 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; | 382 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
| 381 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); | 383 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 412 p.AddReceiverFrameLog(kRtpTimestamp, num_events, | 414 p.AddReceiverFrameLog(kRtpTimestamp, num_events, |
| 413 time_base_ms - (num_events - 1) * kResendDelay * | 415 time_base_ms - (num_events - 1) * kResendDelay * |
| 414 kTimeBetweenEventsMs); | 416 kTimeBetweenEventsMs); |
| 415 for (int i = 0; i < num_events; i++) { | 417 for (int i = 0; i < num_events; i++) { |
| 416 p.AddReceiverEventLog( | 418 p.AddReceiverEventLog( |
| 417 0, FRAME_ACK_SENT, | 419 0, FRAME_ACK_SENT, |
| 418 base::checked_cast<uint16>(i * kResendDelay * kTimeBetweenEventsMs)); | 420 base::checked_cast<uint16>(i * kResendDelay * kTimeBetweenEventsMs)); |
| 419 } | 421 } |
| 420 | 422 |
| 421 FrameEvent frame_event; | 423 FrameEvent frame_event; |
| 422 frame_event.rtp_timestamp = kRtpTimestamp; | 424 frame_event.rtp_timestamp = RtpTimeTicks().Expand(kRtpTimestamp); |
| 423 frame_event.type = FRAME_ACK_SENT; | 425 frame_event.type = FRAME_ACK_SENT; |
| 424 frame_event.media_type = VIDEO_EVENT; | 426 frame_event.media_type = VIDEO_EVENT; |
| 425 frame_event.timestamp = testing_clock.NowTicks(); | 427 frame_event.timestamp = testing_clock.NowTicks(); |
| 426 event_subscriber.OnReceiveFrameEvent(frame_event); | 428 event_subscriber.OnReceiveFrameEvent(frame_event); |
| 427 | 429 |
| 428 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; | 430 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
| 429 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); | 431 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
| 430 | 432 |
| 431 ExpectPacketEQ(p.GetPacket().Pass(), | 433 ExpectPacketEQ(p.GetPacket().Pass(), |
| 432 rtcp_builder_->BuildRtcpFromReceiver( | 434 rtcp_builder_->BuildRtcpFromReceiver( |
| 433 &report_block, | 435 &report_block, |
| 434 NULL, | 436 NULL, |
| 435 NULL, | 437 NULL, |
| 436 &rtcp_events, | 438 &rtcp_events, |
| 437 kDefaultDelay)); | 439 kDefaultDelay)); |
| 438 | 440 |
| 439 testing_clock.Advance( | 441 testing_clock.Advance( |
| 440 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); | 442 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); |
| 441 time_base_ms += kTimeBetweenEventsMs; | 443 time_base_ms += kTimeBetweenEventsMs; |
| 442 } | 444 } |
| 443 } | 445 } |
| 444 | 446 |
| 445 TEST_F(RtcpBuilderTest, RtcpSenderReport) { | 447 TEST_F(RtcpBuilderTest, RtcpSenderReport) { |
| 446 RtcpSenderInfo sender_info; | 448 RtcpSenderInfo sender_info; |
| 447 sender_info.ntp_seconds = kNtpHigh; | 449 sender_info.ntp_seconds = kNtpHigh; |
| 448 sender_info.ntp_fraction = kNtpLow; | 450 sender_info.ntp_fraction = kNtpLow; |
| 449 sender_info.rtp_timestamp = kRtpTimestamp; | 451 sender_info.rtp_timestamp = RtpTimeTicks().Expand(kRtpTimestamp); |
| 450 sender_info.send_packet_count = kSendPacketCount; | 452 sender_info.send_packet_count = kSendPacketCount; |
| 451 sender_info.send_octet_count = kSendOctetCount; | 453 sender_info.send_octet_count = kSendOctetCount; |
| 452 | 454 |
| 453 // Sender report. | 455 // Sender report. |
| 454 TestRtcpPacketBuilder p; | 456 TestRtcpPacketBuilder p; |
| 455 p.AddSr(kSendingSsrc, 0); | 457 p.AddSr(kSendingSsrc, 0); |
| 456 | 458 |
| 457 ExpectPacketEQ(p.GetPacket().Pass(), | 459 ExpectPacketEQ(p.GetPacket().Pass(), |
| 458 rtcp_builder_->BuildRtcpFromSender(sender_info)); | 460 rtcp_builder_->BuildRtcpFromSender(sender_info)); |
| 459 } | 461 } |
| 460 | 462 |
| 461 } // namespace cast | 463 } // namespace cast |
| 462 } // namespace media | 464 } // namespace media |
| OLD | NEW |