Add NACK rate throttling for audio channels.
Not really used for audio today (already in place for video), but should still function anyway. BUG= R=henrika@webrtc.org, minyue@webrtc.org, stefan@webrtc.org Review URL: https://codereview.webrtc.org/2181383002 . Cr-Commit-Position: refs/heads/master@{#13571}
This commit is contained in:
@ -14,6 +14,7 @@
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
#include "webrtc/base/rate_limiter.h"
|
||||
#include "webrtc/test/null_transport.h"
|
||||
|
||||
namespace webrtc {
|
||||
@ -80,7 +81,8 @@ int32_t TestRtpReceiver::OnReceivedPayloadData(
|
||||
|
||||
class RtpRtcpAPITest : public ::testing::Test {
|
||||
protected:
|
||||
RtpRtcpAPITest() : fake_clock_(123456) {
|
||||
RtpRtcpAPITest()
|
||||
: fake_clock_(123456), retransmission_rate_limiter_(&fake_clock_, 1000) {
|
||||
test_csrcs_.push_back(1234);
|
||||
test_csrcs_.push_back(2345);
|
||||
test_ssrc_ = 3456;
|
||||
@ -94,6 +96,7 @@ class RtpRtcpAPITest : public ::testing::Test {
|
||||
configuration.audio = true;
|
||||
configuration.clock = &fake_clock_;
|
||||
configuration.outgoing_transport = &null_transport_;
|
||||
configuration.retransmission_rate_limiter = &retransmission_rate_limiter_;
|
||||
module_.reset(RtpRtcp::CreateRtpRtcp(configuration));
|
||||
rtp_payload_registry_.reset(new RTPPayloadRegistry(
|
||||
RTPPayloadStrategy::CreateStrategy(true)));
|
||||
@ -110,6 +113,7 @@ class RtpRtcpAPITest : public ::testing::Test {
|
||||
std::vector<uint32_t> test_csrcs_;
|
||||
SimulatedClock fake_clock_;
|
||||
test::NullTransport null_transport_;
|
||||
RateLimiter retransmission_rate_limiter_;
|
||||
};
|
||||
|
||||
TEST_F(RtpRtcpAPITest, Basic) {
|
||||
|
||||
@ -15,6 +15,7 @@
|
||||
|
||||
#include "webrtc/modules/rtp_rtcp/test/testAPI/test_api.h"
|
||||
|
||||
#include "webrtc/base/rate_limiter.h"
|
||||
#include "webrtc/common_types.h"
|
||||
#include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h"
|
||||
#include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||
@ -77,7 +78,8 @@ class RTPCallback : public NullRtpFeedback {
|
||||
|
||||
class RtpRtcpAudioTest : public ::testing::Test {
|
||||
protected:
|
||||
RtpRtcpAudioTest() : fake_clock(123456) {
|
||||
RtpRtcpAudioTest()
|
||||
: fake_clock(123456), retransmission_rate_limiter_(&fake_clock, 1000) {
|
||||
test_CSRC[0] = 1234;
|
||||
test_CSRC[2] = 2345;
|
||||
test_ssrc = 3456;
|
||||
@ -106,6 +108,7 @@ class RtpRtcpAudioTest : public ::testing::Test {
|
||||
configuration.clock = &fake_clock;
|
||||
configuration.receive_statistics = receive_statistics1_.get();
|
||||
configuration.outgoing_transport = transport1;
|
||||
configuration.retransmission_rate_limiter = &retransmission_rate_limiter_;
|
||||
|
||||
module1 = RtpRtcp::CreateRtpRtcp(configuration);
|
||||
rtp_receiver1_.reset(RtpReceiver::CreateAudioReceiver(
|
||||
@ -152,6 +155,7 @@ class RtpRtcpAudioTest : public ::testing::Test {
|
||||
uint16_t test_sequence_number;
|
||||
uint32_t test_CSRC[webrtc::kRtpCsrcSize];
|
||||
SimulatedClock fake_clock;
|
||||
RateLimiter retransmission_rate_limiter_;
|
||||
};
|
||||
|
||||
TEST_F(RtpRtcpAudioTest, Basic) {
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
|
||||
#include "testing/gmock/include/gmock/gmock.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "webrtc/base/rate_limiter.h"
|
||||
#include "webrtc/common_types.h"
|
||||
#include "webrtc/modules/rtp_rtcp/include/receive_statistics.h"
|
||||
#include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h"
|
||||
@ -66,7 +67,8 @@ class TestRtpFeedback : public NullRtpFeedback {
|
||||
|
||||
class RtpRtcpRtcpTest : public ::testing::Test {
|
||||
protected:
|
||||
RtpRtcpRtcpTest() : fake_clock(123456) {
|
||||
RtpRtcpRtcpTest()
|
||||
: fake_clock(123456), retransmission_rate_limiter_(&fake_clock, 1000) {
|
||||
test_csrcs.push_back(1234);
|
||||
test_csrcs.push_back(2345);
|
||||
test_ssrc = 3456;
|
||||
@ -91,6 +93,7 @@ class RtpRtcpRtcpTest : public ::testing::Test {
|
||||
configuration.receive_statistics = receive_statistics1_.get();
|
||||
configuration.outgoing_transport = transport1;
|
||||
configuration.intra_frame_callback = myRTCPFeedback1;
|
||||
configuration.retransmission_rate_limiter = &retransmission_rate_limiter_;
|
||||
|
||||
rtp_payload_registry1_.reset(new RTPPayloadRegistry(
|
||||
RTPPayloadStrategy::CreateStrategy(true)));
|
||||
@ -197,6 +200,7 @@ class RtpRtcpRtcpTest : public ::testing::Test {
|
||||
uint16_t test_sequence_number;
|
||||
std::vector<uint32_t> test_csrcs;
|
||||
SimulatedClock fake_clock;
|
||||
RateLimiter retransmission_rate_limiter_;
|
||||
};
|
||||
|
||||
TEST_F(RtpRtcpRtcpTest, RTCP_PLI_RPSI) {
|
||||
|
||||
@ -15,6 +15,7 @@
|
||||
#include <vector>
|
||||
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "webrtc/base/rate_limiter.h"
|
||||
#include "webrtc/common_types.h"
|
||||
#include "webrtc/modules/rtp_rtcp/include/rtp_payload_registry.h"
|
||||
#include "webrtc/modules/rtp_rtcp/include/rtp_rtcp.h"
|
||||
@ -38,7 +39,8 @@ class RtpRtcpVideoTest : public ::testing::Test {
|
||||
test_ssrc_(3456),
|
||||
test_timestamp_(4567),
|
||||
test_sequence_number_(2345),
|
||||
fake_clock(123456) {}
|
||||
fake_clock(123456),
|
||||
retransmission_rate_limiter_(&fake_clock, 1000) {}
|
||||
~RtpRtcpVideoTest() {}
|
||||
|
||||
virtual void SetUp() {
|
||||
@ -49,6 +51,7 @@ class RtpRtcpVideoTest : public ::testing::Test {
|
||||
configuration.audio = false;
|
||||
configuration.clock = &fake_clock;
|
||||
configuration.outgoing_transport = transport_;
|
||||
configuration.retransmission_rate_limiter = &retransmission_rate_limiter_;
|
||||
|
||||
video_module_ = RtpRtcp::CreateRtpRtcp(configuration);
|
||||
rtp_receiver_.reset(RtpReceiver::CreateVideoReceiver(
|
||||
@ -139,6 +142,7 @@ class RtpRtcpVideoTest : public ::testing::Test {
|
||||
uint8_t video_frame_[65000];
|
||||
size_t payload_data_length_;
|
||||
SimulatedClock fake_clock;
|
||||
RateLimiter retransmission_rate_limiter_;
|
||||
};
|
||||
|
||||
TEST_F(RtpRtcpVideoTest, BasicVideo) {
|
||||
|
||||
Reference in New Issue
Block a user