OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 #include <algorithm> // max | 10 #include <algorithm> // max |
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 RTPHeader header; | 323 RTPHeader header; |
324 EXPECT_TRUE(parser_->Parse(packet, length, &header)); | 324 EXPECT_TRUE(parser_->Parse(packet, length, &header)); |
325 | 325 |
326 // Send lossy receive reports to trigger FEC enabling. | 326 // Send lossy receive reports to trigger FEC enabling. |
327 if (send_count_++ % 2 != 0) { | 327 if (send_count_++ % 2 != 0) { |
328 // Receive statistics reporting having lost 50% of the packets. | 328 // Receive statistics reporting having lost 50% of the packets. |
329 FakeReceiveStatistics lossy_receive_stats( | 329 FakeReceiveStatistics lossy_receive_stats( |
330 VideoSendStreamTest::kVideoSendSsrcs[0], header.sequenceNumber, | 330 VideoSendStreamTest::kVideoSendSsrcs[0], header.sequenceNumber, |
331 send_count_ / 2, 127); | 331 send_count_ / 2, 127); |
332 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), | 332 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), |
333 &lossy_receive_stats, nullptr, | 333 &lossy_receive_stats, nullptr, nullptr, |
334 transport_adapter_.get()); | 334 transport_adapter_.get()); |
335 | 335 |
336 rtcp_sender.SetRTCPStatus(RtcpMode::kReducedSize); | 336 rtcp_sender.SetRTCPStatus(RtcpMode::kReducedSize); |
337 rtcp_sender.SetRemoteSSRC(VideoSendStreamTest::kVideoSendSsrcs[0]); | 337 rtcp_sender.SetRemoteSSRC(VideoSendStreamTest::kVideoSendSsrcs[0]); |
338 | 338 |
339 RTCPSender::FeedbackState feedback_state; | 339 RTCPSender::FeedbackState feedback_state; |
340 | 340 |
341 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); | 341 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); |
342 } | 342 } |
343 | 343 |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
450 Action OnSendRtp(const uint8_t* packet, size_t length) override { | 450 Action OnSendRtp(const uint8_t* packet, size_t length) override { |
451 RTPHeader header; | 451 RTPHeader header; |
452 EXPECT_TRUE(parser_->Parse(packet, length, &header)); | 452 EXPECT_TRUE(parser_->Parse(packet, length, &header)); |
453 | 453 |
454 // Nack second packet after receiving the third one. | 454 // Nack second packet after receiving the third one. |
455 if (++send_count_ == 3) { | 455 if (++send_count_ == 3) { |
456 uint16_t nack_sequence_number = header.sequenceNumber - 1; | 456 uint16_t nack_sequence_number = header.sequenceNumber - 1; |
457 nacked_sequence_number_ = nack_sequence_number; | 457 nacked_sequence_number_ = nack_sequence_number; |
458 NullReceiveStatistics null_stats; | 458 NullReceiveStatistics null_stats; |
459 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), &null_stats, | 459 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), &null_stats, |
460 nullptr, transport_adapter_.get()); | 460 nullptr, nullptr, transport_adapter_.get()); |
461 | 461 |
462 rtcp_sender.SetRTCPStatus(RtcpMode::kReducedSize); | 462 rtcp_sender.SetRTCPStatus(RtcpMode::kReducedSize); |
463 rtcp_sender.SetRemoteSSRC(kVideoSendSsrcs[0]); | 463 rtcp_sender.SetRemoteSSRC(kVideoSendSsrcs[0]); |
464 | 464 |
465 RTCPSender::FeedbackState feedback_state; | 465 RTCPSender::FeedbackState feedback_state; |
466 | 466 |
467 EXPECT_EQ(0, | 467 EXPECT_EQ(0, |
468 rtcp_sender.SendRTCP( | 468 rtcp_sender.SendRTCP( |
469 feedback_state, kRtcpNack, 1, &nack_sequence_number)); | 469 feedback_state, kRtcpNack, 1, &nack_sequence_number)); |
470 } | 470 } |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
637 return SEND_PACKET; | 637 return SEND_PACKET; |
638 } | 638 } |
639 | 639 |
640 void TriggerLossReport(const RTPHeader& header) { | 640 void TriggerLossReport(const RTPHeader& header) { |
641 // Send lossy receive reports to trigger FEC enabling. | 641 // Send lossy receive reports to trigger FEC enabling. |
642 if (packet_count_++ % 2 != 0) { | 642 if (packet_count_++ % 2 != 0) { |
643 // Receive statistics reporting having lost 50% of the packets. | 643 // Receive statistics reporting having lost 50% of the packets. |
644 FakeReceiveStatistics lossy_receive_stats( | 644 FakeReceiveStatistics lossy_receive_stats( |
645 kVideoSendSsrcs[0], header.sequenceNumber, packet_count_ / 2, 127); | 645 kVideoSendSsrcs[0], header.sequenceNumber, packet_count_ / 2, 127); |
646 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), | 646 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), |
647 &lossy_receive_stats, nullptr, | 647 &lossy_receive_stats, nullptr, nullptr, |
648 transport_adapter_.get()); | 648 transport_adapter_.get()); |
649 | 649 |
650 rtcp_sender.SetRTCPStatus(RtcpMode::kReducedSize); | 650 rtcp_sender.SetRTCPStatus(RtcpMode::kReducedSize); |
651 rtcp_sender.SetRemoteSSRC(kVideoSendSsrcs[0]); | 651 rtcp_sender.SetRemoteSSRC(kVideoSendSsrcs[0]); |
652 | 652 |
653 RTCPSender::FeedbackState feedback_state; | 653 RTCPSender::FeedbackState feedback_state; |
654 | 654 |
655 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); | 655 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); |
656 } | 656 } |
657 } | 657 } |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
860 kBeforeSuspend, | 860 kBeforeSuspend, |
861 kDuringSuspend, | 861 kDuringSuspend, |
862 kWaitingForPacket, | 862 kWaitingForPacket, |
863 kWaitingForStats | 863 kWaitingForStats |
864 }; | 864 }; |
865 | 865 |
866 virtual void SendRtcpFeedback(int remb_value) | 866 virtual void SendRtcpFeedback(int remb_value) |
867 EXCLUSIVE_LOCKS_REQUIRED(crit_) { | 867 EXCLUSIVE_LOCKS_REQUIRED(crit_) { |
868 FakeReceiveStatistics receive_stats(kVideoSendSsrcs[0], | 868 FakeReceiveStatistics receive_stats(kVideoSendSsrcs[0], |
869 last_sequence_number_, rtp_count_, 0); | 869 last_sequence_number_, rtp_count_, 0); |
870 RTCPSender rtcp_sender(false, clock_, &receive_stats, nullptr, | 870 RTCPSender rtcp_sender(false, clock_, &receive_stats, nullptr, nullptr, |
871 transport_adapter_.get()); | 871 transport_adapter_.get()); |
872 | 872 |
873 rtcp_sender.SetRTCPStatus(RtcpMode::kReducedSize); | 873 rtcp_sender.SetRTCPStatus(RtcpMode::kReducedSize); |
874 rtcp_sender.SetRemoteSSRC(kVideoSendSsrcs[0]); | 874 rtcp_sender.SetRemoteSSRC(kVideoSendSsrcs[0]); |
875 if (remb_value > 0) { | 875 if (remb_value > 0) { |
876 rtcp_sender.SetREMBStatus(true); | 876 rtcp_sender.SetREMBStatus(true); |
877 rtcp_sender.SetREMBData(remb_value, std::vector<uint32_t>()); | 877 rtcp_sender.SetREMBData(remb_value, std::vector<uint32_t>()); |
878 } | 878 } |
879 RTCPSender::FeedbackState feedback_state; | 879 RTCPSender::FeedbackState feedback_state; |
880 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); | 880 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
917 Action OnSendRtcp(const uint8_t* packet, size_t length) override { | 917 Action OnSendRtcp(const uint8_t* packet, size_t length) override { |
918 rtc::CritScope lock(&crit_); | 918 rtc::CritScope lock(&crit_); |
919 const int kVideoMutedThresholdMs = 10000; | 919 const int kVideoMutedThresholdMs = 10000; |
920 if (last_packet_time_ms_ > 0 && | 920 if (last_packet_time_ms_ > 0 && |
921 clock_->TimeInMilliseconds() - last_packet_time_ms_ > | 921 clock_->TimeInMilliseconds() - last_packet_time_ms_ > |
922 kVideoMutedThresholdMs) | 922 kVideoMutedThresholdMs) |
923 observation_complete_.Set(); | 923 observation_complete_.Set(); |
924 // Receive statistics reporting having lost 50% of the packets. | 924 // Receive statistics reporting having lost 50% of the packets. |
925 FakeReceiveStatistics receive_stats(kVideoSendSsrcs[0], 1, 1, 0); | 925 FakeReceiveStatistics receive_stats(kVideoSendSsrcs[0], 1, 1, 0); |
926 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), &receive_stats, | 926 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), &receive_stats, |
927 nullptr, transport_adapter_.get()); | 927 nullptr, nullptr, transport_adapter_.get()); |
928 | 928 |
929 rtcp_sender.SetRTCPStatus(RtcpMode::kReducedSize); | 929 rtcp_sender.SetRTCPStatus(RtcpMode::kReducedSize); |
930 rtcp_sender.SetRemoteSSRC(kVideoSendSsrcs[0]); | 930 rtcp_sender.SetRemoteSSRC(kVideoSendSsrcs[0]); |
931 | 931 |
932 RTCPSender::FeedbackState feedback_state; | 932 RTCPSender::FeedbackState feedback_state; |
933 | 933 |
934 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); | 934 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); |
935 return SEND_PACKET; | 935 return SEND_PACKET; |
936 } | 936 } |
937 | 937 |
(...skipping 1320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2258 observation_complete_.Set(); | 2258 observation_complete_.Set(); |
2259 } | 2259 } |
2260 } | 2260 } |
2261 } test; | 2261 } test; |
2262 | 2262 |
2263 RunBaseTest(&test); | 2263 RunBaseTest(&test); |
2264 } | 2264 } |
2265 #endif | 2265 #endif |
2266 | 2266 |
2267 } // namespace webrtc | 2267 } // namespace webrtc |
OLD | NEW |