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

Side by Side Diff: media/cast/rtcp/rtcp_unittest.cc

Issue 308043006: [Cast] Clean-up: Merge RtpReceiver+AudioReceiver+VideoReceiver-->FrameReceiver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed hclam's comments. Created 6 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « media/cast/rtcp/rtcp.cc ('k') | media/cast/rtp_receiver/rtp_parser/rtp_parser.cc » ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/test/simple_test_tick_clock.h" 7 #include "base/test/simple_test_tick_clock.h"
8 #include "media/cast/cast_defines.h" 8 #include "media/cast/cast_defines.h"
9 #include "media/cast/cast_environment.h" 9 #include "media/cast/cast_environment.h"
10 #include "media/cast/rtcp/mock_rtcp_receiver_feedback.h" 10 #include "media/cast/rtcp/mock_rtcp_receiver_feedback.h"
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 : Rtcp(cast_environment, 137 : Rtcp(cast_environment,
138 sender_feedback, 138 sender_feedback,
139 transport_sender, 139 transport_sender,
140 paced_packet_sender, 140 paced_packet_sender,
141 rtp_receiver_statistics, 141 rtp_receiver_statistics,
142 rtcp_mode, 142 rtcp_mode,
143 rtcp_interval, 143 rtcp_interval,
144 local_ssrc, 144 local_ssrc,
145 remote_ssrc, 145 remote_ssrc,
146 c_name, 146 c_name,
147 true) {} 147 AUDIO_EVENT) {}
148 148
149 using Rtcp::OnReceivedNtp; 149 using Rtcp::OnReceivedNtp;
150 using Rtcp::OnReceivedLipSyncInfo; 150 using Rtcp::OnReceivedLipSyncInfo;
151 }; 151 };
152 152
153 class RtcpTest : public ::testing::Test { 153 class RtcpTest : public ::testing::Test {
154 protected: 154 protected:
155 RtcpTest() 155 RtcpTest()
156 : testing_clock_(new base::SimpleTestTickClock()), 156 : testing_clock_(new base::SimpleTestTickClock()),
157 task_runner_(new test::FakeSingleThreadTaskRunner(testing_clock_)), 157 task_runner_(new test::FakeSingleThreadTaskRunner(testing_clock_)),
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 Rtcp rtcp(cast_environment_, 212 Rtcp rtcp(cast_environment_,
213 &mock_sender_feedback_, 213 &mock_sender_feedback_,
214 transport_sender_.get(), 214 transport_sender_.get(),
215 &receiver_to_sender_, 215 &receiver_to_sender_,
216 NULL, 216 NULL,
217 kRtcpCompound, 217 kRtcpCompound,
218 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 218 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
219 kSenderSsrc, 219 kSenderSsrc,
220 kReceiverSsrc, 220 kReceiverSsrc,
221 kCName, 221 kCName,
222 true); 222 AUDIO_EVENT);
223 receiver_to_sender_.set_rtcp_receiver(&rtcp); 223 receiver_to_sender_.set_rtcp_receiver(&rtcp);
224 EXPECT_LE(start_time, rtcp.TimeToSendNextRtcpReport()); 224 EXPECT_LE(start_time, rtcp.TimeToSendNextRtcpReport());
225 EXPECT_GE( 225 EXPECT_GE(
226 start_time + base::TimeDelta::FromMilliseconds(kRtcpIntervalMs * 3 / 2), 226 start_time + base::TimeDelta::FromMilliseconds(kRtcpIntervalMs * 3 / 2),
227 rtcp.TimeToSendNextRtcpReport()); 227 rtcp.TimeToSendNextRtcpReport());
228 base::TimeDelta delta = rtcp.TimeToSendNextRtcpReport() - start_time; 228 base::TimeDelta delta = rtcp.TimeToSendNextRtcpReport() - start_time;
229 testing_clock_->Advance(delta); 229 testing_clock_->Advance(delta);
230 EXPECT_EQ(testing_clock_->NowTicks(), rtcp.TimeToSendNextRtcpReport()); 230 EXPECT_EQ(testing_clock_->NowTicks(), rtcp.TimeToSendNextRtcpReport());
231 } 231 }
232 232
233 TEST_F(RtcpTest, BasicSenderReport) { 233 TEST_F(RtcpTest, BasicSenderReport) {
234 Rtcp rtcp(cast_environment_, 234 Rtcp rtcp(cast_environment_,
235 &mock_sender_feedback_, 235 &mock_sender_feedback_,
236 transport_sender_.get(), 236 transport_sender_.get(),
237 NULL, 237 NULL,
238 NULL, 238 NULL,
239 kRtcpCompound, 239 kRtcpCompound,
240 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 240 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
241 kSenderSsrc, 241 kSenderSsrc,
242 kReceiverSsrc, 242 kReceiverSsrc,
243 kCName, 243 kCName,
244 true); 244 AUDIO_EVENT);
245 sender_to_receiver_.set_rtcp_receiver(&rtcp); 245 sender_to_receiver_.set_rtcp_receiver(&rtcp);
246 rtcp.SendRtcpFromRtpSender(base::TimeTicks(), 0); 246 rtcp.SendRtcpFromRtpSender(base::TimeTicks(), 0);
247 } 247 }
248 248
249 TEST_F(RtcpTest, BasicReceiverReport) { 249 TEST_F(RtcpTest, BasicReceiverReport) {
250 Rtcp rtcp(cast_environment_, 250 Rtcp rtcp(cast_environment_,
251 &mock_sender_feedback_, 251 &mock_sender_feedback_,
252 NULL, 252 NULL,
253 &receiver_to_sender_, 253 &receiver_to_sender_,
254 NULL, 254 NULL,
255 kRtcpCompound, 255 kRtcpCompound,
256 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 256 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
257 kSenderSsrc, 257 kSenderSsrc,
258 kReceiverSsrc, 258 kReceiverSsrc,
259 kCName, 259 kCName,
260 true); 260 AUDIO_EVENT);
261 receiver_to_sender_.set_rtcp_receiver(&rtcp); 261 receiver_to_sender_.set_rtcp_receiver(&rtcp);
262 rtcp.SendRtcpFromRtpReceiver(NULL, NULL); 262 rtcp.SendRtcpFromRtpReceiver(NULL, NULL);
263 } 263 }
264 264
265 TEST_F(RtcpTest, BasicCast) { 265 TEST_F(RtcpTest, BasicCast) {
266 EXPECT_CALL(mock_sender_feedback_, OnReceivedCastFeedback(_)).Times(1); 266 EXPECT_CALL(mock_sender_feedback_, OnReceivedCastFeedback(_)).Times(1);
267 267
268 // Media receiver. 268 // Media receiver.
269 Rtcp rtcp(cast_environment_, 269 Rtcp rtcp(cast_environment_,
270 &mock_sender_feedback_, 270 &mock_sender_feedback_,
271 NULL, 271 NULL,
272 &receiver_to_sender_, 272 &receiver_to_sender_,
273 NULL, 273 NULL,
274 kRtcpReducedSize, 274 kRtcpReducedSize,
275 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 275 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
276 kSenderSsrc, 276 kSenderSsrc,
277 kSenderSsrc, 277 kSenderSsrc,
278 kCName, 278 kCName,
279 true); 279 AUDIO_EVENT);
280 receiver_to_sender_.set_rtcp_receiver(&rtcp); 280 receiver_to_sender_.set_rtcp_receiver(&rtcp);
281 RtcpCastMessage cast_message(kSenderSsrc); 281 RtcpCastMessage cast_message(kSenderSsrc);
282 cast_message.ack_frame_id_ = kAckFrameId; 282 cast_message.ack_frame_id_ = kAckFrameId;
283 PacketIdSet missing_packets; 283 PacketIdSet missing_packets;
284 cast_message.missing_frames_and_packets_[kLostFrameId] = missing_packets; 284 cast_message.missing_frames_and_packets_[kLostFrameId] = missing_packets;
285 285
286 missing_packets.insert(kLostPacketId1); 286 missing_packets.insert(kLostPacketId1);
287 missing_packets.insert(kLostPacketId2); 287 missing_packets.insert(kLostPacketId2);
288 missing_packets.insert(kLostPacketId3); 288 missing_packets.insert(kLostPacketId3);
289 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] = 289 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] =
290 missing_packets; 290 missing_packets;
291 rtcp.SendRtcpFromRtpReceiver(&cast_message, NULL); 291 rtcp.SendRtcpFromRtpReceiver(&cast_message, NULL);
292 } 292 }
293 293
294 TEST_F(RtcpTest, RttReducedSizeRtcp) { 294 TEST_F(RtcpTest, RttReducedSizeRtcp) {
295 // Media receiver. 295 // Media receiver.
296 Rtcp rtcp_receiver(cast_environment_, 296 Rtcp rtcp_receiver(cast_environment_,
297 &mock_sender_feedback_, 297 &mock_sender_feedback_,
298 NULL, 298 NULL,
299 &receiver_to_sender_, 299 &receiver_to_sender_,
300 NULL, 300 NULL,
301 kRtcpReducedSize, 301 kRtcpReducedSize,
302 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 302 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
303 kReceiverSsrc, 303 kReceiverSsrc,
304 kSenderSsrc, 304 kSenderSsrc,
305 kCName, 305 kCName,
306 true); 306 AUDIO_EVENT);
307 307
308 // Media sender. 308 // Media sender.
309 Rtcp rtcp_sender(cast_environment_, 309 Rtcp rtcp_sender(cast_environment_,
310 &mock_sender_feedback_, 310 &mock_sender_feedback_,
311 transport_sender_.get(), 311 transport_sender_.get(),
312 NULL, 312 NULL,
313 NULL, 313 NULL,
314 kRtcpReducedSize, 314 kRtcpReducedSize,
315 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 315 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
316 kSenderSsrc, 316 kSenderSsrc,
317 kReceiverSsrc, 317 kReceiverSsrc,
318 kCName, 318 kCName,
319 true); 319 AUDIO_EVENT);
320 320
321 sender_to_receiver_.set_rtcp_receiver(&rtcp_receiver); 321 sender_to_receiver_.set_rtcp_receiver(&rtcp_receiver);
322 receiver_to_sender_.set_rtcp_receiver(&rtcp_sender); 322 receiver_to_sender_.set_rtcp_receiver(&rtcp_sender);
323 323
324 base::TimeDelta rtt; 324 base::TimeDelta rtt;
325 base::TimeDelta avg_rtt; 325 base::TimeDelta avg_rtt;
326 base::TimeDelta min_rtt; 326 base::TimeDelta min_rtt;
327 base::TimeDelta max_rtt; 327 base::TimeDelta max_rtt;
328 EXPECT_FALSE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); 328 EXPECT_FALSE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
329 EXPECT_FALSE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); 329 EXPECT_FALSE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
(...skipping 22 matching lines...) Expand all
352 Rtcp rtcp_receiver(cast_environment_, 352 Rtcp rtcp_receiver(cast_environment_,
353 &mock_sender_feedback_, 353 &mock_sender_feedback_,
354 NULL, 354 NULL,
355 &receiver_to_sender_, 355 &receiver_to_sender_,
356 NULL, 356 NULL,
357 kRtcpCompound, 357 kRtcpCompound,
358 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 358 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
359 kReceiverSsrc, 359 kReceiverSsrc,
360 kSenderSsrc, 360 kSenderSsrc,
361 kCName, 361 kCName,
362 true); 362 AUDIO_EVENT);
363 363
364 // Media sender. 364 // Media sender.
365 Rtcp rtcp_sender(cast_environment_, 365 Rtcp rtcp_sender(cast_environment_,
366 &mock_sender_feedback_, 366 &mock_sender_feedback_,
367 transport_sender_.get(), 367 transport_sender_.get(),
368 NULL, 368 NULL,
369 NULL, 369 NULL,
370 kRtcpCompound, 370 kRtcpCompound,
371 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 371 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
372 kSenderSsrc, 372 kSenderSsrc,
373 kReceiverSsrc, 373 kReceiverSsrc,
374 kCName, 374 kCName,
375 true); 375 AUDIO_EVENT);
376 376
377 receiver_to_sender_.set_rtcp_receiver(&rtcp_sender); 377 receiver_to_sender_.set_rtcp_receiver(&rtcp_sender);
378 sender_to_receiver_.set_rtcp_receiver(&rtcp_receiver); 378 sender_to_receiver_.set_rtcp_receiver(&rtcp_receiver);
379 379
380 base::TimeDelta rtt; 380 base::TimeDelta rtt;
381 base::TimeDelta avg_rtt; 381 base::TimeDelta avg_rtt;
382 base::TimeDelta min_rtt; 382 base::TimeDelta min_rtt;
383 base::TimeDelta max_rtt; 383 base::TimeDelta max_rtt;
384 EXPECT_FALSE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); 384 EXPECT_FALSE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
385 EXPECT_FALSE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); 385 EXPECT_FALSE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 Rtcp rtcp_receiver(cast_environment_, 445 Rtcp rtcp_receiver(cast_environment_,
446 &mock_sender_feedback_, 446 &mock_sender_feedback_,
447 NULL, 447 NULL,
448 &receiver_to_sender_, 448 &receiver_to_sender_,
449 NULL, 449 NULL,
450 kRtcpReducedSize, 450 kRtcpReducedSize,
451 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 451 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
452 kReceiverSsrc, 452 kReceiverSsrc,
453 kSenderSsrc, 453 kSenderSsrc,
454 kCName, 454 kCName,
455 true); 455 AUDIO_EVENT);
456 456
457 // Media sender. 457 // Media sender.
458 Rtcp rtcp_sender(cast_environment_, 458 Rtcp rtcp_sender(cast_environment_,
459 &mock_sender_feedback_, 459 &mock_sender_feedback_,
460 transport_sender_.get(), 460 transport_sender_.get(),
461 NULL, 461 NULL,
462 NULL, 462 NULL,
463 kRtcpReducedSize, 463 kRtcpReducedSize,
464 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 464 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
465 kSenderSsrc, 465 kSenderSsrc,
466 kReceiverSsrc, 466 kReceiverSsrc,
467 kCName, 467 kCName,
468 true); 468 AUDIO_EVENT);
469 469
470 receiver_to_sender_.set_rtcp_receiver(&rtcp_sender); 470 receiver_to_sender_.set_rtcp_receiver(&rtcp_sender);
471 sender_to_receiver_.set_rtcp_receiver(&rtcp_receiver); 471 sender_to_receiver_.set_rtcp_receiver(&rtcp_receiver);
472 472
473 rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL); 473 rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL);
474 rtcp_sender.SendRtcpFromRtpSender(testing_clock_->NowTicks(), 0); 474 rtcp_sender.SendRtcpFromRtpSender(testing_clock_->NowTicks(), 0);
475 RunTasks(33); 475 RunTasks(33);
476 476
477 base::TimeDelta rtt; 477 base::TimeDelta rtt;
478 base::TimeDelta avg_rtt; 478 base::TimeDelta avg_rtt;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 base::TimeTicks out_3 = ConvertNtpToTimeTicks(ntp_seconds_3, ntp_fraction_3); 538 base::TimeTicks out_3 = ConvertNtpToTimeTicks(ntp_seconds_3, ntp_fraction_3);
539 EXPECT_EQ(input_time, out_3); // Verify inverse. 539 EXPECT_EQ(input_time, out_3); // Verify inverse.
540 540
541 // Verify delta. 541 // Verify delta.
542 EXPECT_EQ((out_3 - out_2), time_delta); 542 EXPECT_EQ((out_3 - out_2), time_delta);
543 EXPECT_NEAR((ntp_fraction_3 - ntp_fraction_2), 0xffffffff / 2, 1); 543 EXPECT_NEAR((ntp_fraction_3 - ntp_fraction_2), 0xffffffff / 2, 1);
544 } 544 }
545 545
546 } // namespace cast 546 } // namespace cast
547 } // namespace media 547 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/rtcp/rtcp.cc ('k') | media/cast/rtp_receiver/rtp_parser/rtp_parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698