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

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

Issue 1515433002: Replace uses of raw uint32's with a type-checked RtpTimeTicks data type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Speculative workaround fix for win8_chromium_ng compile error. Created 4 years, 11 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_builder.cc ('k') | media/cast/net/rtcp/rtcp_defines.h » ('j') | 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/test/simple_test_tick_clock.h" 10 #include "base/test/simple_test_tick_clock.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 EXPECT_EQ((*golden_packet)[x], packet->data[x]) << 58 EXPECT_EQ((*golden_packet)[x], packet->data[x]) <<
59 "x = " << x << " / " << golden_packet->size(); 59 "x = " << x << " / " << golden_packet->size();
60 if ((*golden_packet)[x] != packet->data[x]) { 60 if ((*golden_packet)[x] != packet->data[x]) {
61 if (++diffs > 5) 61 if (++diffs > 5)
62 break; 62 break;
63 } 63 }
64 } 64 }
65 } 65 }
66 } 66 }
67 67
68 static RtpTimeTicks test_rtp_timestamp() {
69 return RtpTimeTicks().Expand(kRtpTimestamp);
70 }
71
68 scoped_ptr<RtcpBuilder> rtcp_builder_; 72 scoped_ptr<RtcpBuilder> rtcp_builder_;
69 73
70 DISALLOW_COPY_AND_ASSIGN(RtcpBuilderTest); 74 DISALLOW_COPY_AND_ASSIGN(RtcpBuilderTest);
71 }; 75 };
72 76
73 TEST_F(RtcpBuilderTest, RtcpReceiverReport) { 77 TEST_F(RtcpBuilderTest, RtcpReceiverReport) {
74 // Receiver report with report block. 78 // Receiver report with report block.
75 TestRtcpPacketBuilder p2; 79 TestRtcpPacketBuilder p2;
76 p2.AddRr(kSendingSsrc, 1); 80 p2.AddRr(kSendingSsrc, 1);
77 p2.AddRb(kMediaSsrc); 81 p2.AddRb(kMediaSsrc);
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; 193 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events;
190 194
191 ExpectPacketEQ(p.GetPacket(), rtcp_builder_->BuildRtcpFromReceiver( 195 ExpectPacketEQ(p.GetPacket(), rtcp_builder_->BuildRtcpFromReceiver(
192 &report_block, &rrtr, &cast_message, 196 &report_block, &rrtr, &cast_message,
193 &rtcp_events, kDefaultDelay)); 197 &rtcp_events, kDefaultDelay));
194 198
195 base::SimpleTestTickClock testing_clock; 199 base::SimpleTestTickClock testing_clock;
196 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); 200 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
197 201
198 p.AddReceiverLog(kSendingSsrc); 202 p.AddReceiverLog(kSendingSsrc);
199 p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs); 203 p.AddReceiverFrameLog(test_rtp_timestamp().lower_32_bits(), 2, kTimeBaseMs);
200 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); 204 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0);
201 p.AddReceiverEventLog(kLostPacketId1, PACKET_RECEIVED, kTimeDelayMs); 205 p.AddReceiverEventLog(kLostPacketId1, PACKET_RECEIVED, kTimeDelayMs);
202 206
203 FrameEvent frame_event; 207 FrameEvent frame_event;
204 frame_event.rtp_timestamp = kRtpTimestamp; 208 frame_event.rtp_timestamp = test_rtp_timestamp();
205 frame_event.type = FRAME_ACK_SENT; 209 frame_event.type = FRAME_ACK_SENT;
206 frame_event.media_type = VIDEO_EVENT; 210 frame_event.media_type = VIDEO_EVENT;
207 frame_event.timestamp = testing_clock.NowTicks(); 211 frame_event.timestamp = testing_clock.NowTicks();
208 event_subscriber.OnReceiveFrameEvent(frame_event); 212 event_subscriber.OnReceiveFrameEvent(frame_event);
209 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); 213 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
210 214
211 PacketEvent packet_event; 215 PacketEvent packet_event;
212 packet_event.rtp_timestamp = kRtpTimestamp; 216 packet_event.rtp_timestamp = test_rtp_timestamp();
213 packet_event.type = PACKET_RECEIVED; 217 packet_event.type = PACKET_RECEIVED;
214 packet_event.media_type = VIDEO_EVENT; 218 packet_event.media_type = VIDEO_EVENT;
215 packet_event.timestamp = testing_clock.NowTicks(); 219 packet_event.timestamp = testing_clock.NowTicks();
216 packet_event.packet_id = kLostPacketId1; 220 packet_event.packet_id = kLostPacketId1;
217 event_subscriber.OnReceivePacketEvent(packet_event); 221 event_subscriber.OnReceivePacketEvent(packet_event);
218 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); 222 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events);
219 EXPECT_EQ(2u, rtcp_events.size()); 223 EXPECT_EQ(2u, rtcp_events.size());
220 224
221 ExpectPacketEQ(p.GetPacket(), rtcp_builder_->BuildRtcpFromReceiver( 225 ExpectPacketEQ(p.GetPacket(), rtcp_builder_->BuildRtcpFromReceiver(
222 &report_block, &rrtr, &cast_message, 226 &report_block, &rrtr, &cast_message,
(...skipping 12 matching lines...) Expand all
235 239
236 base::SimpleTestTickClock testing_clock; 240 base::SimpleTestTickClock testing_clock;
237 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); 241 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
238 242
239 p.AddReceiverLog(kSendingSsrc); 243 p.AddReceiverLog(kSendingSsrc);
240 244
241 int num_events = kMaxEventsPerRTCP; 245 int num_events = kMaxEventsPerRTCP;
242 246
243 EXPECT_LE(num_events, static_cast<int>(kRtcpMaxReceiverLogMessages)); 247 EXPECT_LE(num_events, static_cast<int>(kRtcpMaxReceiverLogMessages));
244 p.AddReceiverFrameLog( 248 p.AddReceiverFrameLog(
245 kRtpTimestamp + 2345, 249 (test_rtp_timestamp() + RtpTimeDelta::FromTicks(2345)).lower_32_bits(),
246 num_events, 250 num_events,
247 kTimeBaseMs); 251 kTimeBaseMs);
248 for (int i = 0; i < num_events; i++) { 252 for (int i = 0; i < num_events; i++) {
249 p.AddReceiverEventLog(kLostPacketId1, PACKET_RECEIVED, 253 p.AddReceiverEventLog(kLostPacketId1, PACKET_RECEIVED,
250 static_cast<uint16_t>(kTimeDelayMs * i)); 254 static_cast<uint16_t>(kTimeDelayMs * i));
251 } 255 }
252 256
253 257
254 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); 258 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT);
255 259
256 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { 260 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) {
257 PacketEvent packet_event; 261 PacketEvent packet_event;
258 packet_event.rtp_timestamp = kRtpTimestamp + 2345; 262 packet_event.rtp_timestamp =
263 test_rtp_timestamp() + RtpTimeDelta::FromTicks(2345);
259 packet_event.type = PACKET_RECEIVED; 264 packet_event.type = PACKET_RECEIVED;
260 packet_event.media_type = VIDEO_EVENT; 265 packet_event.media_type = VIDEO_EVENT;
261 packet_event.timestamp = testing_clock.NowTicks(); 266 packet_event.timestamp = testing_clock.NowTicks();
262 packet_event.packet_id = kLostPacketId1; 267 packet_event.packet_id = kLostPacketId1;
263 event_subscriber.OnReceivePacketEvent(packet_event); 268 event_subscriber.OnReceivePacketEvent(packet_event);
264 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); 269 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
265 } 270 }
266 271
267 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; 272 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events;
268 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); 273 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events);
(...skipping 14 matching lines...) Expand all
283 RtcpReportBlock report_block = GetReportBlock(); 288 RtcpReportBlock report_block = GetReportBlock();
284 289
285 base::SimpleTestTickClock testing_clock; 290 base::SimpleTestTickClock testing_clock;
286 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); 291 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
287 292
288 p.AddReceiverLog(kSendingSsrc); 293 p.AddReceiverLog(kSendingSsrc);
289 294
290 int num_events = kMaxEventsPerRTCP; 295 int num_events = kMaxEventsPerRTCP;
291 296
292 for (int i = 0; i < num_events; i++) { 297 for (int i = 0; i < num_events; i++) {
293 p.AddReceiverFrameLog(kRtpTimestamp + i, 1, kTimeBaseMs + i * kTimeDelayMs); 298 p.AddReceiverFrameLog(
299 (test_rtp_timestamp() + RtpTimeDelta::FromTicks(i)).lower_32_bits(),
300 1, kTimeBaseMs + i * kTimeDelayMs);
294 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); 301 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0);
295 } 302 }
296 303
297 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); 304 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT);
298 305
299 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { 306 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) {
300 FrameEvent frame_event; 307 FrameEvent frame_event;
301 frame_event.rtp_timestamp = kRtpTimestamp + static_cast<int>(i); 308 frame_event.rtp_timestamp =
309 test_rtp_timestamp() + RtpTimeDelta::FromTicks(i);
302 frame_event.type = FRAME_ACK_SENT; 310 frame_event.type = FRAME_ACK_SENT;
303 frame_event.media_type = VIDEO_EVENT; 311 frame_event.media_type = VIDEO_EVENT;
304 frame_event.timestamp = testing_clock.NowTicks(); 312 frame_event.timestamp = testing_clock.NowTicks();
305 event_subscriber.OnReceiveFrameEvent(frame_event); 313 event_subscriber.OnReceiveFrameEvent(frame_event);
306 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); 314 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
307 } 315 }
308 316
309 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; 317 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events;
310 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); 318 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events);
311 319
(...skipping 13 matching lines...) Expand all
325 333
326 base::SimpleTestTickClock testing_clock; 334 base::SimpleTestTickClock testing_clock;
327 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); 335 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
328 336
329 p.AddReceiverLog(kSendingSsrc); 337 p.AddReceiverLog(kSendingSsrc);
330 338
331 // Log 11 events for a single frame, each |kTimeBetweenEventsMs| apart. 339 // Log 11 events for a single frame, each |kTimeBetweenEventsMs| apart.
332 // Only last 10 events will be sent because the first event is more than 340 // Only last 10 events will be sent because the first event is more than
333 // 4095 milliseconds away from latest event. 341 // 4095 milliseconds away from latest event.
334 const int kTimeBetweenEventsMs = 410; 342 const int kTimeBetweenEventsMs = 410;
335 p.AddReceiverFrameLog(kRtpTimestamp, 10, kTimeBaseMs + kTimeBetweenEventsMs); 343 p.AddReceiverFrameLog(test_rtp_timestamp().lower_32_bits(), 10,
344 kTimeBaseMs + kTimeBetweenEventsMs);
336 for (int i = 0; i < 10; ++i) { 345 for (int i = 0; i < 10; ++i) {
337 p.AddReceiverEventLog(0, FRAME_ACK_SENT, i * kTimeBetweenEventsMs); 346 p.AddReceiverEventLog(0, FRAME_ACK_SENT, i * kTimeBetweenEventsMs);
338 } 347 }
339 348
340 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); 349 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT);
341 for (int i = 0; i < 11; ++i) { 350 for (int i = 0; i < 11; ++i) {
342 FrameEvent frame_event; 351 FrameEvent frame_event;
343 frame_event.rtp_timestamp = kRtpTimestamp; 352 frame_event.rtp_timestamp = test_rtp_timestamp();
344 frame_event.type = FRAME_ACK_SENT; 353 frame_event.type = FRAME_ACK_SENT;
345 frame_event.media_type = VIDEO_EVENT; 354 frame_event.media_type = VIDEO_EVENT;
346 frame_event.timestamp = testing_clock.NowTicks(); 355 frame_event.timestamp = testing_clock.NowTicks();
347 event_subscriber.OnReceiveFrameEvent(frame_event); 356 event_subscriber.OnReceiveFrameEvent(frame_event);
348 testing_clock.Advance( 357 testing_clock.Advance(
349 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); 358 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs));
350 } 359 }
351 360
352 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; 361 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events;
353 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); 362 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events);
(...skipping 16 matching lines...) Expand all
370 size_t packet_count = kNumResends * kResendDelay + 10; 379 size_t packet_count = kNumResends * kResendDelay + 10;
371 for (size_t i = 0; i < packet_count; i++) { 380 for (size_t i = 0; i < packet_count; i++) {
372 TestRtcpPacketBuilder p; 381 TestRtcpPacketBuilder p;
373 p.AddRr(kSendingSsrc, 1); 382 p.AddRr(kSendingSsrc, 1);
374 p.AddRb(kMediaSsrc); 383 p.AddRb(kMediaSsrc);
375 384
376 p.AddReceiverLog(kSendingSsrc); 385 p.AddReceiverLog(kSendingSsrc);
377 386
378 int num_events = (i + kResendDelay) / kResendDelay; 387 int num_events = (i + kResendDelay) / kResendDelay;
379 num_events = std::min<int>(num_events, kNumResends); 388 num_events = std::min<int>(num_events, kNumResends);
380 p.AddReceiverFrameLog(kRtpTimestamp, num_events, 389 p.AddReceiverFrameLog(test_rtp_timestamp().lower_32_bits(), num_events,
381 time_base_ms - (num_events - 1) * kResendDelay * 390 time_base_ms - (num_events - 1) * kResendDelay *
382 kTimeBetweenEventsMs); 391 kTimeBetweenEventsMs);
383 for (int i = 0; i < num_events; i++) { 392 for (int i = 0; i < num_events; i++) {
384 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 393 p.AddReceiverEventLog(0, FRAME_ACK_SENT,
385 base::checked_cast<uint16_t>(i * kResendDelay * 394 base::checked_cast<uint16_t>(i * kResendDelay *
386 kTimeBetweenEventsMs)); 395 kTimeBetweenEventsMs));
387 } 396 }
388 397
389 FrameEvent frame_event; 398 FrameEvent frame_event;
390 frame_event.rtp_timestamp = kRtpTimestamp; 399 frame_event.rtp_timestamp = test_rtp_timestamp();
391 frame_event.type = FRAME_ACK_SENT; 400 frame_event.type = FRAME_ACK_SENT;
392 frame_event.media_type = VIDEO_EVENT; 401 frame_event.media_type = VIDEO_EVENT;
393 frame_event.timestamp = testing_clock.NowTicks(); 402 frame_event.timestamp = testing_clock.NowTicks();
394 event_subscriber.OnReceiveFrameEvent(frame_event); 403 event_subscriber.OnReceiveFrameEvent(frame_event);
395 404
396 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; 405 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events;
397 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); 406 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events);
398 407
399 ExpectPacketEQ(p.GetPacket(), 408 ExpectPacketEQ(p.GetPacket(),
400 rtcp_builder_->BuildRtcpFromReceiver( 409 rtcp_builder_->BuildRtcpFromReceiver(
401 &report_block, NULL, NULL, &rtcp_events, kDefaultDelay)); 410 &report_block, NULL, NULL, &rtcp_events, kDefaultDelay));
402 411
403 testing_clock.Advance( 412 testing_clock.Advance(
404 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); 413 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs));
405 time_base_ms += kTimeBetweenEventsMs; 414 time_base_ms += kTimeBetweenEventsMs;
406 } 415 }
407 } 416 }
408 417
409 TEST_F(RtcpBuilderTest, RtcpSenderReport) { 418 TEST_F(RtcpBuilderTest, RtcpSenderReport) {
410 RtcpSenderInfo sender_info; 419 RtcpSenderInfo sender_info;
411 sender_info.ntp_seconds = kNtpHigh; 420 sender_info.ntp_seconds = kNtpHigh;
412 sender_info.ntp_fraction = kNtpLow; 421 sender_info.ntp_fraction = kNtpLow;
413 sender_info.rtp_timestamp = kRtpTimestamp; 422 sender_info.rtp_timestamp = test_rtp_timestamp();
414 sender_info.send_packet_count = kSendPacketCount; 423 sender_info.send_packet_count = kSendPacketCount;
415 sender_info.send_octet_count = kSendOctetCount; 424 sender_info.send_octet_count = kSendOctetCount;
416 425
417 // Sender report. 426 // Sender report.
418 TestRtcpPacketBuilder p; 427 TestRtcpPacketBuilder p;
419 p.AddSr(kSendingSsrc, 0); 428 p.AddSr(kSendingSsrc, 0);
420 429
421 ExpectPacketEQ(p.GetPacket(), 430 ExpectPacketEQ(p.GetPacket(),
422 rtcp_builder_->BuildRtcpFromSender(sender_info)); 431 rtcp_builder_->BuildRtcpFromSender(sender_info));
423 } 432 }
424 433
425 } // namespace cast 434 } // namespace cast
426 } // namespace media 435 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/net/rtcp/rtcp_builder.cc ('k') | media/cast/net/rtcp/rtcp_defines.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698