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 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 kSendSsrcs[0], header.sequenceNumber, send_count_ / 2, 127); | 330 kSendSsrcs[0], header.sequenceNumber, send_count_ / 2, 127); |
331 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), | 331 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), |
332 &lossy_receive_stats, nullptr, | 332 &lossy_receive_stats, nullptr, |
333 &transport_adapter_); | 333 &transport_adapter_); |
334 | 334 |
335 rtcp_sender.SetRTCPStatus(kRtcpNonCompound); | 335 rtcp_sender.SetRTCPStatus(RtcpMode::kReducedSize); |
336 rtcp_sender.SetRemoteSSRC(kSendSsrcs[0]); | 336 rtcp_sender.SetRemoteSSRC(kSendSsrcs[0]); |
337 | 337 |
338 RTCPSender::FeedbackState feedback_state; | 338 RTCPSender::FeedbackState feedback_state; |
339 | 339 |
340 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); | 340 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); |
341 } | 341 } |
342 | 342 |
343 int encapsulated_payload_type = -1; | 343 int encapsulated_payload_type = -1; |
344 if (header.payloadType == kRedPayloadType) { | 344 if (header.payloadType == kRedPayloadType) { |
345 encapsulated_payload_type = | 345 encapsulated_payload_type = |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
406 EXPECT_TRUE(parser_->Parse(packet, length, &header)); | 406 EXPECT_TRUE(parser_->Parse(packet, length, &header)); |
407 | 407 |
408 // Nack second packet after receiving the third one. | 408 // Nack second packet after receiving the third one. |
409 if (++send_count_ == 3) { | 409 if (++send_count_ == 3) { |
410 uint16_t nack_sequence_number = header.sequenceNumber - 1; | 410 uint16_t nack_sequence_number = header.sequenceNumber - 1; |
411 nacked_sequence_number_ = nack_sequence_number; | 411 nacked_sequence_number_ = nack_sequence_number; |
412 NullReceiveStatistics null_stats; | 412 NullReceiveStatistics null_stats; |
413 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), &null_stats, | 413 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), &null_stats, |
414 nullptr, &transport_adapter_); | 414 nullptr, &transport_adapter_); |
415 | 415 |
416 rtcp_sender.SetRTCPStatus(kRtcpNonCompound); | 416 rtcp_sender.SetRTCPStatus(RtcpMode::kReducedSize); |
417 rtcp_sender.SetRemoteSSRC(kSendSsrcs[0]); | 417 rtcp_sender.SetRemoteSSRC(kSendSsrcs[0]); |
418 | 418 |
419 RTCPSender::FeedbackState feedback_state; | 419 RTCPSender::FeedbackState feedback_state; |
420 | 420 |
421 EXPECT_EQ(0, | 421 EXPECT_EQ(0, |
422 rtcp_sender.SendRTCP( | 422 rtcp_sender.SendRTCP( |
423 feedback_state, kRtcpNack, 1, &nack_sequence_number)); | 423 feedback_state, kRtcpNack, 1, &nack_sequence_number)); |
424 } | 424 } |
425 | 425 |
426 uint16_t sequence_number = header.sequenceNumber; | 426 uint16_t sequence_number = header.sequenceNumber; |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
593 void TriggerLossReport(const RTPHeader& header) { | 593 void TriggerLossReport(const RTPHeader& header) { |
594 // Send lossy receive reports to trigger FEC enabling. | 594 // Send lossy receive reports to trigger FEC enabling. |
595 if (packet_count_++ % 2 != 0) { | 595 if (packet_count_++ % 2 != 0) { |
596 // Receive statistics reporting having lost 50% of the packets. | 596 // Receive statistics reporting having lost 50% of the packets. |
597 FakeReceiveStatistics lossy_receive_stats( | 597 FakeReceiveStatistics lossy_receive_stats( |
598 kSendSsrcs[0], header.sequenceNumber, packet_count_ / 2, 127); | 598 kSendSsrcs[0], header.sequenceNumber, packet_count_ / 2, 127); |
599 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), | 599 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), |
600 &lossy_receive_stats, nullptr, | 600 &lossy_receive_stats, nullptr, |
601 &transport_adapter_); | 601 &transport_adapter_); |
602 | 602 |
603 rtcp_sender.SetRTCPStatus(kRtcpNonCompound); | 603 rtcp_sender.SetRTCPStatus(RtcpMode::kReducedSize); |
604 rtcp_sender.SetRemoteSSRC(kSendSsrcs[0]); | 604 rtcp_sender.SetRemoteSSRC(kSendSsrcs[0]); |
605 | 605 |
606 RTCPSender::FeedbackState feedback_state; | 606 RTCPSender::FeedbackState feedback_state; |
607 | 607 |
608 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); | 608 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); |
609 } | 609 } |
610 } | 610 } |
611 | 611 |
612 virtual void EncodedFrameCallback(const EncodedFrame& encoded_frame) { | 612 virtual void EncodedFrameCallback(const EncodedFrame& encoded_frame) { |
613 // Increase frame size for next encoded frame, in the context of the | 613 // Increase frame size for next encoded frame, in the context of the |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
823 kWaitingForStats | 823 kWaitingForStats |
824 }; | 824 }; |
825 | 825 |
826 virtual void SendRtcpFeedback(int remb_value) | 826 virtual void SendRtcpFeedback(int remb_value) |
827 EXCLUSIVE_LOCKS_REQUIRED(crit_) { | 827 EXCLUSIVE_LOCKS_REQUIRED(crit_) { |
828 FakeReceiveStatistics receive_stats( | 828 FakeReceiveStatistics receive_stats( |
829 kSendSsrcs[0], last_sequence_number_, rtp_count_, 0); | 829 kSendSsrcs[0], last_sequence_number_, rtp_count_, 0); |
830 RTCPSender rtcp_sender(false, clock_, &receive_stats, nullptr, | 830 RTCPSender rtcp_sender(false, clock_, &receive_stats, nullptr, |
831 &transport_adapter_); | 831 &transport_adapter_); |
832 | 832 |
833 rtcp_sender.SetRTCPStatus(kRtcpNonCompound); | 833 rtcp_sender.SetRTCPStatus(RtcpMode::kReducedSize); |
834 rtcp_sender.SetRemoteSSRC(kSendSsrcs[0]); | 834 rtcp_sender.SetRemoteSSRC(kSendSsrcs[0]); |
835 if (remb_value > 0) { | 835 if (remb_value > 0) { |
836 rtcp_sender.SetREMBStatus(true); | 836 rtcp_sender.SetREMBStatus(true); |
837 rtcp_sender.SetREMBData(remb_value, std::vector<uint32_t>()); | 837 rtcp_sender.SetREMBData(remb_value, std::vector<uint32_t>()); |
838 } | 838 } |
839 RTCPSender::FeedbackState feedback_state; | 839 RTCPSender::FeedbackState feedback_state; |
840 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); | 840 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); |
841 } | 841 } |
842 | 842 |
843 internal::TransportAdapter transport_adapter_; | 843 internal::TransportAdapter transport_adapter_; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
882 const int kVideoMutedThresholdMs = 10000; | 882 const int kVideoMutedThresholdMs = 10000; |
883 if (last_packet_time_ms_ > 0 && | 883 if (last_packet_time_ms_ > 0 && |
884 clock_->TimeInMilliseconds() - last_packet_time_ms_ > | 884 clock_->TimeInMilliseconds() - last_packet_time_ms_ > |
885 kVideoMutedThresholdMs) | 885 kVideoMutedThresholdMs) |
886 observation_complete_->Set(); | 886 observation_complete_->Set(); |
887 // Receive statistics reporting having lost 50% of the packets. | 887 // Receive statistics reporting having lost 50% of the packets. |
888 FakeReceiveStatistics receive_stats(kSendSsrcs[0], 1, 1, 0); | 888 FakeReceiveStatistics receive_stats(kSendSsrcs[0], 1, 1, 0); |
889 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), &receive_stats, | 889 RTCPSender rtcp_sender(false, Clock::GetRealTimeClock(), &receive_stats, |
890 nullptr, &transport_adapter_); | 890 nullptr, &transport_adapter_); |
891 | 891 |
892 rtcp_sender.SetRTCPStatus(kRtcpNonCompound); | 892 rtcp_sender.SetRTCPStatus(RtcpMode::kReducedSize); |
893 rtcp_sender.SetRemoteSSRC(kSendSsrcs[0]); | 893 rtcp_sender.SetRemoteSSRC(kSendSsrcs[0]); |
894 | 894 |
895 RTCPSender::FeedbackState feedback_state; | 895 RTCPSender::FeedbackState feedback_state; |
896 | 896 |
897 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); | 897 EXPECT_EQ(0, rtcp_sender.SendRTCP(feedback_state, kRtcpRr)); |
898 return SEND_PACKET; | 898 return SEND_PACKET; |
899 } | 899 } |
900 | 900 |
901 void SetReceivers(PacketReceiver* send_transport_receiver, | 901 void SetReceivers(PacketReceiver* send_transport_receiver, |
902 PacketReceiver* receive_transport_receiver) override { | 902 PacketReceiver* receive_transport_receiver) override { |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
943 public: | 943 public: |
944 BitrateObserver() | 944 BitrateObserver() |
945 : SendTest(kDefaultTimeoutMs), | 945 : SendTest(kDefaultTimeoutMs), |
946 feedback_transport_(ReceiveTransport()), | 946 feedback_transport_(ReceiveTransport()), |
947 bitrate_capped_(false) { | 947 bitrate_capped_(false) { |
948 RtpRtcp::Configuration config; | 948 RtpRtcp::Configuration config; |
949 feedback_transport_.Enable(); | 949 feedback_transport_.Enable(); |
950 config.outgoing_transport = &feedback_transport_; | 950 config.outgoing_transport = &feedback_transport_; |
951 rtp_rtcp_.reset(RtpRtcp::CreateRtpRtcp(config)); | 951 rtp_rtcp_.reset(RtpRtcp::CreateRtpRtcp(config)); |
952 rtp_rtcp_->SetREMBStatus(true); | 952 rtp_rtcp_->SetREMBStatus(true); |
953 rtp_rtcp_->SetRTCPStatus(kRtcpNonCompound); | 953 rtp_rtcp_->SetRTCPStatus(RtcpMode::kReducedSize); |
954 } | 954 } |
955 | 955 |
956 void OnStreamsCreated( | 956 void OnStreamsCreated( |
957 VideoSendStream* send_stream, | 957 VideoSendStream* send_stream, |
958 const std::vector<VideoReceiveStream*>& receive_streams) override { | 958 const std::vector<VideoReceiveStream*>& receive_streams) override { |
959 stream_ = send_stream; | 959 stream_ = send_stream; |
960 } | 960 } |
961 | 961 |
962 private: | 962 private: |
963 DeliveryStatus DeliverPacket(MediaType media_type, | 963 DeliveryStatus DeliverPacket(MediaType media_type, |
(...skipping 932 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1896 EXPECT_TRUE(vp9videoHeader->flexible_mode); | 1896 EXPECT_TRUE(vp9videoHeader->flexible_mode); |
1897 observation_complete_->Set(); | 1897 observation_complete_->Set(); |
1898 } | 1898 } |
1899 | 1899 |
1900 } test; | 1900 } test; |
1901 | 1901 |
1902 RunBaseTest(&test); | 1902 RunBaseTest(&test); |
1903 } | 1903 } |
1904 | 1904 |
1905 } // namespace webrtc | 1905 } // namespace webrtc |
OLD | NEW |