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 |