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_defines.h" | 8 #include "media/cast/net/cast_transport_defines.h" |
9 #include "media/cast/net/rtcp/rtcp_utility.h" | 9 #include "media/cast/net/rtcp/rtcp_utility.h" |
10 #include "media/cast/net/rtcp/test_rtcp_packet_builder.h" | 10 #include "media/cast/net/rtcp/test_rtcp_packet_builder.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 parser.has_last_report() || | 33 parser.has_last_report() || |
34 parser.has_receiver_log() || | 34 parser.has_receiver_log() || |
35 parser.has_cast_message() || | 35 parser.has_cast_message() || |
36 parser.has_receiver_reference_time_report(); | 36 parser.has_receiver_reference_time_report(); |
37 } | 37 } |
38 | 38 |
39 void ExpectSenderInfo(const RtcpParser& parser) { | 39 void ExpectSenderInfo(const RtcpParser& parser) { |
40 EXPECT_TRUE(parser.has_sender_report()); | 40 EXPECT_TRUE(parser.has_sender_report()); |
41 EXPECT_EQ(kNtpHigh, parser.sender_report().ntp_seconds); | 41 EXPECT_EQ(kNtpHigh, parser.sender_report().ntp_seconds); |
42 EXPECT_EQ(kNtpLow, parser.sender_report().ntp_fraction); | 42 EXPECT_EQ(kNtpLow, parser.sender_report().ntp_fraction); |
43 EXPECT_EQ(kRtpTimestamp, parser.sender_report().rtp_timestamp); | 43 EXPECT_EQ(kRtpTimestamp, |
| 44 parser.sender_report().rtp_timestamp.lower_32_bits()); |
44 EXPECT_EQ(kSendPacketCount, parser.sender_report().send_packet_count); | 45 EXPECT_EQ(kSendPacketCount, parser.sender_report().send_packet_count); |
45 EXPECT_EQ(kSendOctetCount, parser.sender_report().send_octet_count); | 46 EXPECT_EQ(kSendOctetCount, parser.sender_report().send_octet_count); |
46 } | 47 } |
47 | 48 |
48 void ExpectLastReport(const RtcpParser& parser) { | 49 void ExpectLastReport(const RtcpParser& parser) { |
49 EXPECT_TRUE(parser.has_last_report()); | 50 EXPECT_TRUE(parser.has_last_report()); |
50 EXPECT_EQ(kLastSr, parser.last_report()); | 51 EXPECT_EQ(kLastSr, parser.last_report()); |
51 EXPECT_EQ(kDelayLastSr, parser.delay_since_last_report()); | 52 EXPECT_EQ(kDelayLastSr, parser.delay_since_last_report()); |
52 } | 53 } |
53 | 54 |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 } | 323 } |
323 | 324 |
324 TEST_F(RtcpParserTest, InjectReceiverReportWithReceiverLogVerificationBase) { | 325 TEST_F(RtcpParserTest, InjectReceiverReportWithReceiverLogVerificationBase) { |
325 static const uint32 kTimeBaseMs = 12345678; | 326 static const uint32 kTimeBaseMs = 12345678; |
326 static const uint32 kTimeDelayMs = 10; | 327 static const uint32 kTimeDelayMs = 10; |
327 static const uint32 kDelayDeltaMs = 123; | 328 static const uint32 kDelayDeltaMs = 123; |
328 base::SimpleTestTickClock testing_clock; | 329 base::SimpleTestTickClock testing_clock; |
329 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); | 330 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); |
330 | 331 |
331 RtcpReceiverLogMessage receiver_log; | 332 RtcpReceiverLogMessage receiver_log; |
332 RtcpReceiverFrameLogMessage frame_log(kRtpTimestamp); | 333 RtcpReceiverFrameLogMessage frame_log(RtpTimeTicks().Expand(kRtpTimestamp)); |
333 RtcpReceiverEventLogMessage event_log; | 334 RtcpReceiverEventLogMessage event_log; |
334 | 335 |
335 event_log.type = FRAME_ACK_SENT; | 336 event_log.type = FRAME_ACK_SENT; |
336 event_log.event_timestamp = testing_clock.NowTicks(); | 337 event_log.event_timestamp = testing_clock.NowTicks(); |
337 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs); | 338 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs); |
338 frame_log.event_log_messages_.push_back(event_log); | 339 frame_log.event_log_messages_.push_back(event_log); |
339 | 340 |
340 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 341 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
341 event_log.type = PACKET_RECEIVED; | 342 event_log.type = PACKET_RECEIVED; |
342 event_log.event_timestamp = testing_clock.NowTicks(); | 343 event_log.event_timestamp = testing_clock.NowTicks(); |
(...skipping 24 matching lines...) Expand all Loading... |
367 TEST_F(RtcpParserTest, InjectReceiverReportWithReceiverLogVerificationMulti) { | 368 TEST_F(RtcpParserTest, InjectReceiverReportWithReceiverLogVerificationMulti) { |
368 static const uint32 kTimeBaseMs = 12345678; | 369 static const uint32 kTimeBaseMs = 12345678; |
369 static const uint32 kTimeDelayMs = 10; | 370 static const uint32 kTimeDelayMs = 10; |
370 static const int kDelayDeltaMs = 123; // To be varied for every frame. | 371 static const int kDelayDeltaMs = 123; // To be varied for every frame. |
371 base::SimpleTestTickClock testing_clock; | 372 base::SimpleTestTickClock testing_clock; |
372 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); | 373 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); |
373 | 374 |
374 RtcpReceiverLogMessage receiver_log; | 375 RtcpReceiverLogMessage receiver_log; |
375 | 376 |
376 for (int j = 0; j < 100; ++j) { | 377 for (int j = 0; j < 100; ++j) { |
377 RtcpReceiverFrameLogMessage frame_log(kRtpTimestamp); | 378 RtcpReceiverFrameLogMessage frame_log(RtpTimeTicks().Expand(kRtpTimestamp)); |
378 RtcpReceiverEventLogMessage event_log; | 379 RtcpReceiverEventLogMessage event_log; |
379 event_log.type = FRAME_ACK_SENT; | 380 event_log.type = FRAME_ACK_SENT; |
380 event_log.event_timestamp = testing_clock.NowTicks(); | 381 event_log.event_timestamp = testing_clock.NowTicks(); |
381 event_log.delay_delta = | 382 event_log.delay_delta = |
382 base::TimeDelta::FromMilliseconds((j - 50) * kDelayDeltaMs); | 383 base::TimeDelta::FromMilliseconds((j - 50) * kDelayDeltaMs); |
383 frame_log.event_log_messages_.push_back(event_log); | 384 frame_log.event_log_messages_.push_back(event_log); |
384 receiver_log.push_back(frame_log); | 385 receiver_log.push_back(frame_log); |
385 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); | 386 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
386 } | 387 } |
387 | 388 |
388 TestRtcpPacketBuilder p; | 389 TestRtcpPacketBuilder p; |
389 p.AddRr(kSenderSsrc, 1); | 390 p.AddRr(kSenderSsrc, 1); |
390 p.AddRb(kSourceSsrc); | 391 p.AddRb(kSourceSsrc); |
391 p.AddReceiverLog(kSenderSsrc); | 392 p.AddReceiverLog(kSenderSsrc); |
392 for (int i = 0; i < 100; ++i) { | 393 for (int i = 0; i < 100; ++i) { |
393 p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs + i * kTimeDelayMs); | 394 p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs + i * kTimeDelayMs); |
394 const int delay = (i - 50) * kDelayDeltaMs; | 395 const int delay = (i - 50) * kDelayDeltaMs; |
395 p.AddReceiverEventLog(static_cast<uint16>(delay), FRAME_ACK_SENT, 0); | 396 p.AddReceiverEventLog(static_cast<uint16>(delay), FRAME_ACK_SENT, 0); |
396 } | 397 } |
397 | 398 |
398 RtcpParser parser(kSourceSsrc, kSenderSsrc); | 399 RtcpParser parser(kSourceSsrc, kSenderSsrc); |
399 EXPECT_TRUE(parser.Parse(p.Reader())); | 400 EXPECT_TRUE(parser.Parse(p.Reader())); |
400 ExpectReceiverLog(parser, receiver_log); | 401 ExpectReceiverLog(parser, receiver_log); |
401 } | 402 } |
402 | 403 |
403 } // namespace cast | 404 } // namespace cast |
404 } // namespace media | 405 } // namespace media |
OLD | NEW |