| 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 |
| 11 #include <memory> | 11 #include <memory> |
| 12 | 12 |
| 13 #include "testing/gmock/include/gmock/gmock.h" | 13 #include "testing/gmock/include/gmock/gmock.h" |
| 14 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
| 15 | 15 |
| 16 #include "webrtc/base/rate_limiter.h" |
| 16 #include "webrtc/common_types.h" | 17 #include "webrtc/common_types.h" |
| 17 #include "webrtc/modules/rtp_rtcp/source/rtcp_sender.h" | 18 #include "webrtc/modules/rtp_rtcp/source/rtcp_sender.h" |
| 18 #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h" | 19 #include "webrtc/modules/rtp_rtcp/source/rtcp_utility.h" |
| 19 #include "webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h" | 20 #include "webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.h" |
| 20 #include "webrtc/test/mock_transport.h" | 21 #include "webrtc/test/mock_transport.h" |
| 21 #include "webrtc/test/rtcp_packet_parser.h" | 22 #include "webrtc/test/rtcp_packet_parser.h" |
| 22 | 23 |
| 23 using ::testing::_; | 24 using ::testing::_; |
| 24 using ::testing::ElementsAre; | 25 using ::testing::ElementsAre; |
| 25 using ::testing::Invoke; | 26 using ::testing::Invoke; |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 static const uint32_t kSenderSsrc = 0x11111111; | 223 static const uint32_t kSenderSsrc = 0x11111111; |
| 223 static const uint32_t kRemoteSsrc = 0x22222222; | 224 static const uint32_t kRemoteSsrc = 0x22222222; |
| 224 static const uint32_t kStartRtpTimestamp = 0x34567; | 225 static const uint32_t kStartRtpTimestamp = 0x34567; |
| 225 static const uint32_t kRtpTimestamp = 0x45678; | 226 static const uint32_t kRtpTimestamp = 0x45678; |
| 226 } | 227 } |
| 227 | 228 |
| 228 class RtcpSenderTest : public ::testing::Test { | 229 class RtcpSenderTest : public ::testing::Test { |
| 229 protected: | 230 protected: |
| 230 RtcpSenderTest() | 231 RtcpSenderTest() |
| 231 : clock_(1335900000), | 232 : clock_(1335900000), |
| 232 receive_statistics_(ReceiveStatistics::Create(&clock_)) { | 233 receive_statistics_(ReceiveStatistics::Create(&clock_)), |
| 234 retransmission_rate_limiter_(&clock_, 1000) { |
| 233 RtpRtcp::Configuration configuration; | 235 RtpRtcp::Configuration configuration; |
| 234 configuration.audio = false; | 236 configuration.audio = false; |
| 235 configuration.clock = &clock_; | 237 configuration.clock = &clock_; |
| 236 configuration.outgoing_transport = &test_transport_; | 238 configuration.outgoing_transport = &test_transport_; |
| 239 configuration.retransmission_rate_limiter = &retransmission_rate_limiter_; |
| 237 | 240 |
| 238 rtp_rtcp_impl_.reset(new ModuleRtpRtcpImpl(configuration)); | 241 rtp_rtcp_impl_.reset(new ModuleRtpRtcpImpl(configuration)); |
| 239 rtcp_sender_.reset(new RTCPSender(false, &clock_, receive_statistics_.get(), | 242 rtcp_sender_.reset(new RTCPSender(false, &clock_, receive_statistics_.get(), |
| 240 nullptr, nullptr, &test_transport_)); | 243 nullptr, nullptr, &test_transport_)); |
| 241 rtcp_sender_->SetSSRC(kSenderSsrc); | 244 rtcp_sender_->SetSSRC(kSenderSsrc); |
| 242 rtcp_sender_->SetRemoteSSRC(kRemoteSsrc); | 245 rtcp_sender_->SetRemoteSSRC(kRemoteSsrc); |
| 243 rtcp_sender_->SetStartTimestamp(kStartRtpTimestamp); | 246 rtcp_sender_->SetStartTimestamp(kStartRtpTimestamp); |
| 244 rtcp_sender_->SetLastRtpTime(kRtpTimestamp, clock_.TimeInMilliseconds()); | 247 rtcp_sender_->SetLastRtpTime(kRtpTimestamp, clock_.TimeInMilliseconds()); |
| 245 } | 248 } |
| 246 | 249 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 258 | 261 |
| 259 RTCPSender::FeedbackState feedback_state() { | 262 RTCPSender::FeedbackState feedback_state() { |
| 260 return rtp_rtcp_impl_->GetFeedbackState(); | 263 return rtp_rtcp_impl_->GetFeedbackState(); |
| 261 } | 264 } |
| 262 | 265 |
| 263 SimulatedClock clock_; | 266 SimulatedClock clock_; |
| 264 TestTransport test_transport_; | 267 TestTransport test_transport_; |
| 265 std::unique_ptr<ReceiveStatistics> receive_statistics_; | 268 std::unique_ptr<ReceiveStatistics> receive_statistics_; |
| 266 std::unique_ptr<ModuleRtpRtcpImpl> rtp_rtcp_impl_; | 269 std::unique_ptr<ModuleRtpRtcpImpl> rtp_rtcp_impl_; |
| 267 std::unique_ptr<RTCPSender> rtcp_sender_; | 270 std::unique_ptr<RTCPSender> rtcp_sender_; |
| 271 RateLimiter retransmission_rate_limiter_; |
| 268 }; | 272 }; |
| 269 | 273 |
| 270 TEST_F(RtcpSenderTest, SetRtcpStatus) { | 274 TEST_F(RtcpSenderTest, SetRtcpStatus) { |
| 271 EXPECT_EQ(RtcpMode::kOff, rtcp_sender_->Status()); | 275 EXPECT_EQ(RtcpMode::kOff, rtcp_sender_->Status()); |
| 272 rtcp_sender_->SetRTCPStatus(RtcpMode::kReducedSize); | 276 rtcp_sender_->SetRTCPStatus(RtcpMode::kReducedSize); |
| 273 EXPECT_EQ(RtcpMode::kReducedSize, rtcp_sender_->Status()); | 277 EXPECT_EQ(RtcpMode::kReducedSize, rtcp_sender_->Status()); |
| 274 } | 278 } |
| 275 | 279 |
| 276 TEST_F(RtcpSenderTest, SetSendingStatus) { | 280 TEST_F(RtcpSenderTest, SetSendingStatus) { |
| 277 EXPECT_FALSE(rtcp_sender_->Sending()); | 281 EXPECT_FALSE(rtcp_sender_->Sending()); |
| (...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 813 rtcp_sender_->SetLastRtpTime(kRtpTimestamp, clock_.TimeInMilliseconds()); | 817 rtcp_sender_->SetLastRtpTime(kRtpTimestamp, clock_.TimeInMilliseconds()); |
| 814 | 818 |
| 815 // Set up XR VoIP metric to be included with BYE | 819 // Set up XR VoIP metric to be included with BYE |
| 816 rtcp_sender_->SetRTCPStatus(RtcpMode::kCompound); | 820 rtcp_sender_->SetRTCPStatus(RtcpMode::kCompound); |
| 817 RTCPVoIPMetric metric; | 821 RTCPVoIPMetric metric; |
| 818 EXPECT_EQ(0, rtcp_sender_->SetRTCPVoIPMetrics(&metric)); | 822 EXPECT_EQ(0, rtcp_sender_->SetRTCPVoIPMetrics(&metric)); |
| 819 EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state(), kRtcpBye)); | 823 EXPECT_EQ(0, rtcp_sender_->SendRTCP(feedback_state(), kRtcpBye)); |
| 820 } | 824 } |
| 821 | 825 |
| 822 } // namespace webrtc | 826 } // namespace webrtc |
| OLD | NEW |