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