OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
447 EXPECT_EQ(0U, parser()->app()->data_size()); | 447 EXPECT_EQ(0U, parser()->app()->data_size()); |
448 } | 448 } |
449 | 449 |
450 TEST_F(RtcpSenderTest, SetInvalidApplicationSpecificData) { | 450 TEST_F(RtcpSenderTest, SetInvalidApplicationSpecificData) { |
451 const uint8_t kData[] = {'t', 'e', 's', 't', 'd', 'a', 't'}; | 451 const uint8_t kData[] = {'t', 'e', 's', 't', 'd', 'a', 't'}; |
452 const uint16_t kInvalidDataLength = sizeof(kData) / sizeof(kData[0]); | 452 const uint16_t kInvalidDataLength = sizeof(kData) / sizeof(kData[0]); |
453 EXPECT_EQ(-1, rtcp_sender_->SetApplicationSpecificData( | 453 EXPECT_EQ(-1, rtcp_sender_->SetApplicationSpecificData( |
454 0, 0, kData, kInvalidDataLength)); // Should by multiple of 4. | 454 0, 0, kData, kInvalidDataLength)); // Should by multiple of 4. |
455 } | 455 } |
456 | 456 |
457 TEST_F(RtcpSenderTest, SendFirNonRepeat) { | 457 TEST_F(RtcpSenderTest, SendFir) { |
458 rtcp_sender_->SetRTCPStatus(RtcpMode::kReducedSize); | 458 rtcp_sender_->SetRTCPStatus(RtcpMode::kReducedSize); |
459 EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state(), kRtcpFir)); | 459 EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state(), kRtcpFir)); |
460 EXPECT_EQ(1, parser()->fir()->num_packets()); | 460 EXPECT_EQ(1, parser()->fir()->num_packets()); |
461 EXPECT_EQ(kSenderSsrc, parser()->fir()->sender_ssrc()); | 461 EXPECT_EQ(kSenderSsrc, parser()->fir()->sender_ssrc()); |
462 EXPECT_EQ(1U, parser()->fir()->requests().size()); | 462 EXPECT_EQ(1U, parser()->fir()->requests().size()); |
463 EXPECT_EQ(kRemoteSsrc, parser()->fir()->requests()[0].ssrc); | 463 EXPECT_EQ(kRemoteSsrc, parser()->fir()->requests()[0].ssrc); |
464 uint8_t seq = parser()->fir()->requests()[0].seq_nr; | 464 uint8_t seq = parser()->fir()->requests()[0].seq_nr; |
465 // Sends non-repeat FIR as default. | |
466 EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state(), kRtcpFir)); | 465 EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state(), kRtcpFir)); |
467 EXPECT_EQ(2, parser()->fir()->num_packets()); | 466 EXPECT_EQ(2, parser()->fir()->num_packets()); |
468 EXPECT_EQ(seq + 1, parser()->fir()->requests()[0].seq_nr); | 467 EXPECT_EQ(seq + 1, parser()->fir()->requests()[0].seq_nr); |
469 } | 468 } |
470 | 469 |
471 TEST_F(RtcpSenderTest, SendFirRepeat) { | |
472 rtcp_sender_->SetRTCPStatus(RtcpMode::kReducedSize); | |
473 EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state(), kRtcpFir)); | |
474 EXPECT_EQ(1, parser()->fir()->num_packets()); | |
475 EXPECT_EQ(1U, parser()->fir()->requests().size()); | |
476 uint8_t seq = parser()->fir()->requests()[0].seq_nr; | |
477 const bool kRepeat = true; | |
478 EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state(), kRtcpFir, 0, nullptr, | |
479 kRepeat)); | |
480 EXPECT_EQ(2, parser()->fir()->num_packets()); | |
481 EXPECT_EQ(seq, parser()->fir()->requests()[0].seq_nr); | |
482 } | |
483 | |
484 TEST_F(RtcpSenderTest, SendPli) { | 470 TEST_F(RtcpSenderTest, SendPli) { |
485 rtcp_sender_->SetRTCPStatus(RtcpMode::kReducedSize); | 471 rtcp_sender_->SetRTCPStatus(RtcpMode::kReducedSize); |
486 EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state(), kRtcpPli)); | 472 EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state(), kRtcpPli)); |
487 EXPECT_EQ(1, parser()->pli()->num_packets()); | 473 EXPECT_EQ(1, parser()->pli()->num_packets()); |
488 EXPECT_EQ(kSenderSsrc, parser()->pli()->sender_ssrc()); | 474 EXPECT_EQ(kSenderSsrc, parser()->pli()->sender_ssrc()); |
489 EXPECT_EQ(kRemoteSsrc, parser()->pli()->media_ssrc()); | 475 EXPECT_EQ(kRemoteSsrc, parser()->pli()->media_ssrc()); |
490 } | 476 } |
491 | 477 |
492 TEST_F(RtcpSenderTest, SendRpsi) { | 478 TEST_F(RtcpSenderTest, SendRpsi) { |
493 const uint64_t kPictureId = 0x41; | 479 const uint64_t kPictureId = 0x41; |
494 const int8_t kPayloadType = 100; | 480 const int8_t kPayloadType = 100; |
495 rtcp_sender_->SetRTCPStatus(RtcpMode::kReducedSize); | 481 rtcp_sender_->SetRTCPStatus(RtcpMode::kReducedSize); |
496 RTCPSender::FeedbackState feedback_state = rtp_rtcp_impl_->GetFeedbackState(); | 482 RTCPSender::FeedbackState feedback_state = rtp_rtcp_impl_->GetFeedbackState(); |
497 feedback_state.send_payload_type = kPayloadType; | 483 feedback_state.send_payload_type = kPayloadType; |
498 EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state, kRtcpRpsi, 0, nullptr, | 484 EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state, kRtcpRpsi, 0, nullptr, |
499 false, kPictureId)); | 485 kPictureId)); |
500 EXPECT_EQ(1, parser()->rpsi()->num_packets()); | 486 EXPECT_EQ(1, parser()->rpsi()->num_packets()); |
501 EXPECT_EQ(kPayloadType, parser()->rpsi()->payload_type()); | 487 EXPECT_EQ(kPayloadType, parser()->rpsi()->payload_type()); |
502 EXPECT_EQ(kPictureId, parser()->rpsi()->picture_id()); | 488 EXPECT_EQ(kPictureId, parser()->rpsi()->picture_id()); |
503 } | 489 } |
504 | 490 |
505 TEST_F(RtcpSenderTest, SendSli) { | 491 TEST_F(RtcpSenderTest, SendSli) { |
506 const uint16_t kFirstMb = 0; | 492 const uint16_t kFirstMb = 0; |
507 const uint16_t kNumberOfMb = 0x1FFF; | 493 const uint16_t kNumberOfMb = 0x1FFF; |
508 const uint8_t kPictureId = 60; | 494 const uint8_t kPictureId = 60; |
509 rtcp_sender_->SetRTCPStatus(RtcpMode::kReducedSize); | 495 rtcp_sender_->SetRTCPStatus(RtcpMode::kReducedSize); |
510 EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state(), kRtcpSli, 0, nullptr, | 496 EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state(), kRtcpSli, 0, nullptr, |
511 false, kPictureId)); | 497 kPictureId)); |
512 EXPECT_EQ(1, parser()->sli()->num_packets()); | 498 EXPECT_EQ(1, parser()->sli()->num_packets()); |
513 EXPECT_EQ(kSenderSsrc, parser()->sli()->sender_ssrc()); | 499 EXPECT_EQ(kSenderSsrc, parser()->sli()->sender_ssrc()); |
514 EXPECT_EQ(kRemoteSsrc, parser()->sli()->media_ssrc()); | 500 EXPECT_EQ(kRemoteSsrc, parser()->sli()->media_ssrc()); |
515 EXPECT_EQ(1U, parser()->sli()->macroblocks().size()); | 501 EXPECT_EQ(1U, parser()->sli()->macroblocks().size()); |
516 EXPECT_EQ(kFirstMb, parser()->sli()->macroblocks()[0].first()); | 502 EXPECT_EQ(kFirstMb, parser()->sli()->macroblocks()[0].first()); |
517 EXPECT_EQ(kNumberOfMb, parser()->sli()->macroblocks()[0].number()); | 503 EXPECT_EQ(kNumberOfMb, parser()->sli()->macroblocks()[0].number()); |
518 EXPECT_EQ(kPictureId, parser()->sli()->macroblocks()[0].picture_id()); | 504 EXPECT_EQ(kPictureId, parser()->sli()->macroblocks()[0].picture_id()); |
519 } | 505 } |
520 | 506 |
521 TEST_F(RtcpSenderTest, SendNack) { | 507 TEST_F(RtcpSenderTest, SendNack) { |
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
850 const rtcp::TargetBitrate::BitrateItem& item = bitrates[index]; | 836 const rtcp::TargetBitrate::BitrateItem& item = bitrates[index]; |
851 EXPECT_EQ(sl, item.spatial_layer); | 837 EXPECT_EQ(sl, item.spatial_layer); |
852 EXPECT_EQ(tl, item.temporal_layer); | 838 EXPECT_EQ(tl, item.temporal_layer); |
853 EXPECT_EQ(start_bitrate_bps + (tl * 20000), | 839 EXPECT_EQ(start_bitrate_bps + (tl * 20000), |
854 item.target_bitrate_kbps * 1000); | 840 item.target_bitrate_kbps * 1000); |
855 } | 841 } |
856 } | 842 } |
857 } | 843 } |
858 | 844 |
859 } // namespace webrtc | 845 } // namespace webrtc |
OLD | NEW |