Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(234)

Side by Side Diff: media/cast/net/rtcp/rtcp_utility_unittest.cc

Issue 575683002: [Cast] Fix RtcpParser to parse negative playout delay deltas in receiver reports. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/cast/net/rtcp/rtcp_utility.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 p.AddReceiverEventLog(kLostPacketId2, PACKET_RECEIVED, kTimeDelayMs); 360 p.AddReceiverEventLog(kLostPacketId2, PACKET_RECEIVED, kTimeDelayMs);
361 361
362 RtcpParser parser(kSourceSsrc, kSenderSsrc); 362 RtcpParser parser(kSourceSsrc, kSenderSsrc);
363 EXPECT_TRUE(parser.Parse(p.Reader())); 363 EXPECT_TRUE(parser.Parse(p.Reader()));
364 ExpectReceiverLog(parser, receiver_log); 364 ExpectReceiverLog(parser, receiver_log);
365 } 365 }
366 366
367 TEST_F(RtcpParserTest, InjectReceiverReportWithReceiverLogVerificationMulti) { 367 TEST_F(RtcpParserTest, InjectReceiverReportWithReceiverLogVerificationMulti) {
368 static const uint32 kTimeBaseMs = 12345678; 368 static const uint32 kTimeBaseMs = 12345678;
369 static const uint32 kTimeDelayMs = 10; 369 static const uint32 kTimeDelayMs = 10;
370 static const uint32 kDelayDeltaMs = 123; 370 static const int kDelayDeltaMs = 123; // To be varied for every frame.
371 base::SimpleTestTickClock testing_clock; 371 base::SimpleTestTickClock testing_clock;
372 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); 372 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
373 373
374 RtcpReceiverLogMessage receiver_log; 374 RtcpReceiverLogMessage receiver_log;
375 375
376 for (int j = 0; j < 100; ++j) { 376 for (int j = 0; j < 100; ++j) {
377 RtcpReceiverFrameLogMessage frame_log(kRtpTimestamp); 377 RtcpReceiverFrameLogMessage frame_log(kRtpTimestamp);
378 RtcpReceiverEventLogMessage event_log; 378 RtcpReceiverEventLogMessage event_log;
379 event_log.type = FRAME_ACK_SENT; 379 event_log.type = FRAME_ACK_SENT;
380 event_log.event_timestamp = testing_clock.NowTicks(); 380 event_log.event_timestamp = testing_clock.NowTicks();
381 event_log.delay_delta = base::TimeDelta::FromMilliseconds(kDelayDeltaMs); 381 event_log.delay_delta =
382 base::TimeDelta::FromMilliseconds((j - 50) * kDelayDeltaMs);
382 frame_log.event_log_messages_.push_back(event_log); 383 frame_log.event_log_messages_.push_back(event_log);
383 receiver_log.push_back(frame_log); 384 receiver_log.push_back(frame_log);
384 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); 385 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
385 } 386 }
386 387
387 TestRtcpPacketBuilder p; 388 TestRtcpPacketBuilder p;
388 p.AddRr(kSenderSsrc, 1); 389 p.AddRr(kSenderSsrc, 1);
389 p.AddRb(kSourceSsrc); 390 p.AddRb(kSourceSsrc);
390 p.AddReceiverLog(kSenderSsrc); 391 p.AddReceiverLog(kSenderSsrc);
391 for (int i = 0; i < 100; ++i) { 392 for (int i = 0; i < 100; ++i) {
392 p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs + i * kTimeDelayMs); 393 p.AddReceiverFrameLog(kRtpTimestamp, 1, kTimeBaseMs + i * kTimeDelayMs);
393 p.AddReceiverEventLog(kDelayDeltaMs, FRAME_ACK_SENT, 0); 394 const int delay = (i - 50) * kDelayDeltaMs;
395 p.AddReceiverEventLog(static_cast<uint16>(delay), FRAME_ACK_SENT, 0);
394 } 396 }
395 397
396 RtcpParser parser(kSourceSsrc, kSenderSsrc); 398 RtcpParser parser(kSourceSsrc, kSenderSsrc);
397 EXPECT_TRUE(parser.Parse(p.Reader())); 399 EXPECT_TRUE(parser.Parse(p.Reader()));
398 ExpectReceiverLog(parser, receiver_log); 400 ExpectReceiverLog(parser, receiver_log);
399 } 401 }
400 402
401 } // namespace cast 403 } // namespace cast
402 } // namespace media 404 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/net/rtcp/rtcp_utility.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698