Index: webrtc/audio/audio_send_stream_unittest.cc |
diff --git a/webrtc/audio/audio_send_stream_unittest.cc b/webrtc/audio/audio_send_stream_unittest.cc |
index 9ae0a879990db1e859426b389783691ac67fa0e0..0a8b4b8a302f46c8f293abeec66ff6842c8c943c 100644 |
--- a/webrtc/audio/audio_send_stream_unittest.cc |
+++ b/webrtc/audio/audio_send_stream_unittest.cc |
@@ -15,6 +15,7 @@ |
#include "webrtc/audio/audio_state.h" |
#include "webrtc/audio/conversion.h" |
#include "webrtc/base/task_queue.h" |
+#include "webrtc/call/rtp_transport_controller.h" |
#include "webrtc/logging/rtc_event_log/mock/mock_rtc_event_log.h" |
#include "webrtc/modules/audio_mixer/audio_mixer_impl.h" |
#include "webrtc/modules/audio_processing/include/mock_audio_processing.h" |
@@ -64,14 +65,33 @@ class MockLimitObserver : public BitrateAllocator::LimitObserver { |
}; |
struct ConfigHelper { |
+ class FakeRtpTransportController |
+ : public RtpTransportControllerSendInterface { |
+ public: |
+ explicit FakeRtpTransportController(RtcEventLog* event_log) |
+ : simulated_clock_(123456), |
+ congestion_controller_(&simulated_clock_, |
+ &bitrate_observer_, |
+ &remote_bitrate_observer_, |
+ event_log, |
+ &packet_router_) {} |
+ CongestionController* congestion_controller() override { |
+ return &congestion_controller_; |
+ } |
+ VieRemb* remb() override { return nullptr; } |
+ PacketRouter* packet_router() override { return &packet_router_; } |
+ |
+ private: |
+ SimulatedClock simulated_clock_; |
+ testing::NiceMock<MockCongestionObserver> bitrate_observer_; |
+ testing::NiceMock<MockRemoteBitrateObserver> remote_bitrate_observer_; |
+ PacketRouter packet_router_; |
+ CongestionController congestion_controller_; |
+ }; |
+ |
explicit ConfigHelper(bool audio_bwe_enabled) |
- : simulated_clock_(123456), |
- stream_config_(nullptr), |
- congestion_controller_(&simulated_clock_, |
- &bitrate_observer_, |
- &remote_bitrate_observer_, |
- &event_log_, |
- &packet_router_), |
+ : stream_config_(nullptr), |
+ fake_transport_(&event_log_), |
bitrate_allocator_(&limit_observer_), |
worker_queue_("ConfigHelper_worker_queue") { |
using testing::Invoke; |
@@ -120,10 +140,7 @@ struct ConfigHelper { |
AudioSendStream::Config& config() { return stream_config_; } |
rtc::scoped_refptr<AudioState> audio_state() { return audio_state_; } |
MockVoEChannelProxy* channel_proxy() { return channel_proxy_; } |
- PacketRouter* packet_router() { return &packet_router_; } |
- CongestionController* congestion_controller() { |
- return &congestion_controller_; |
- } |
+ RtpTransportControllerSendInterface* transport() { return &fake_transport_; } |
BitrateAllocator* bitrate_allocator() { return &bitrate_allocator_; } |
rtc::TaskQueue* worker_queue() { return &worker_queue_; } |
RtcEventLog* event_log() { return &event_log_; } |
@@ -139,23 +156,16 @@ struct ConfigHelper { |
EXPECT_CALL(*channel_proxy_, |
SetSendAudioLevelIndicationStatus(true, kAudioLevelId)) |
.Times(1); |
- |
if (audio_bwe_enabled) { |
EXPECT_CALL(*channel_proxy_, |
EnableSendTransportSequenceNumber(kTransportSequenceNumberId)) |
.Times(1); |
- EXPECT_CALL(*channel_proxy_, |
- RegisterSenderCongestionControlObjects( |
- congestion_controller_.pacer(), |
- congestion_controller_.GetTransportFeedbackObserver(), |
- packet_router(), Ne(nullptr))) |
+ EXPECT_CALL(*channel_proxy_, RegisterSenderCongestionControlObjects( |
+ &fake_transport_, Ne(nullptr))) |
.Times(1); |
} else { |
- EXPECT_CALL(*channel_proxy_, |
- RegisterSenderCongestionControlObjects( |
- congestion_controller_.pacer(), |
- congestion_controller_.GetTransportFeedbackObserver(), |
- packet_router(), Eq(nullptr))) |
+ EXPECT_CALL(*channel_proxy_, RegisterSenderCongestionControlObjects( |
+ &fake_transport_, Eq(nullptr))) |
.Times(1); |
} |
EXPECT_CALL(*channel_proxy_, ResetCongestionControlObjects()).Times(1); |
@@ -233,17 +243,13 @@ struct ConfigHelper { |
} |
private: |
- SimulatedClock simulated_clock_; |
testing::StrictMock<MockVoiceEngine> voice_engine_; |
rtc::scoped_refptr<AudioState> audio_state_; |
AudioSendStream::Config stream_config_; |
testing::StrictMock<MockVoEChannelProxy>* channel_proxy_ = nullptr; |
- testing::NiceMock<MockCongestionObserver> bitrate_observer_; |
- testing::NiceMock<MockRemoteBitrateObserver> remote_bitrate_observer_; |
MockAudioProcessing audio_processing_; |
AudioProcessing::AudioProcessingStatistics audio_processing_stats_; |
- PacketRouter packet_router_; |
- CongestionController congestion_controller_; |
+ FakeRtpTransportController fake_transport_; |
MockRtcEventLog event_log_; |
MockRtcpRttStats rtcp_rtt_stats_; |
testing::NiceMock<MockLimitObserver> limit_observer_; |
@@ -290,16 +296,16 @@ TEST(AudioSendStreamTest, ConstructDestruct) { |
ConfigHelper helper(false); |
internal::AudioSendStream send_stream( |
helper.config(), helper.audio_state(), helper.worker_queue(), |
- helper.packet_router(), helper.congestion_controller(), |
- helper.bitrate_allocator(), helper.event_log(), helper.rtcp_rtt_stats()); |
+ helper.transport(), helper.bitrate_allocator(), helper.event_log(), |
+ helper.rtcp_rtt_stats()); |
} |
TEST(AudioSendStreamTest, SendTelephoneEvent) { |
ConfigHelper helper(false); |
internal::AudioSendStream send_stream( |
helper.config(), helper.audio_state(), helper.worker_queue(), |
- helper.packet_router(), helper.congestion_controller(), |
- helper.bitrate_allocator(), helper.event_log(), helper.rtcp_rtt_stats()); |
+ helper.transport(), helper.bitrate_allocator(), helper.event_log(), |
+ helper.rtcp_rtt_stats()); |
helper.SetupMockForSendTelephoneEvent(); |
EXPECT_TRUE(send_stream.SendTelephoneEvent(kTelephoneEventPayloadType, |
kTelephoneEventPayloadFrequency, kTelephoneEventCode, |
@@ -310,8 +316,8 @@ TEST(AudioSendStreamTest, SetMuted) { |
ConfigHelper helper(false); |
internal::AudioSendStream send_stream( |
helper.config(), helper.audio_state(), helper.worker_queue(), |
- helper.packet_router(), helper.congestion_controller(), |
- helper.bitrate_allocator(), helper.event_log(), helper.rtcp_rtt_stats()); |
+ helper.transport(), helper.bitrate_allocator(), helper.event_log(), |
+ helper.rtcp_rtt_stats()); |
EXPECT_CALL(*helper.channel_proxy(), SetInputMute(true)); |
send_stream.SetMuted(true); |
} |
@@ -320,24 +326,24 @@ TEST(AudioSendStreamTest, AudioBweCorrectObjectsOnChannelProxy) { |
ConfigHelper helper(true); |
internal::AudioSendStream send_stream( |
helper.config(), helper.audio_state(), helper.worker_queue(), |
- helper.packet_router(), helper.congestion_controller(), |
- helper.bitrate_allocator(), helper.event_log(), helper.rtcp_rtt_stats()); |
+ helper.transport(), helper.bitrate_allocator(), helper.event_log(), |
+ helper.rtcp_rtt_stats()); |
} |
TEST(AudioSendStreamTest, NoAudioBweCorrectObjectsOnChannelProxy) { |
ConfigHelper helper(false); |
internal::AudioSendStream send_stream( |
helper.config(), helper.audio_state(), helper.worker_queue(), |
- helper.packet_router(), helper.congestion_controller(), |
- helper.bitrate_allocator(), helper.event_log(), helper.rtcp_rtt_stats()); |
+ helper.transport(), helper.bitrate_allocator(), helper.event_log(), |
+ helper.rtcp_rtt_stats()); |
} |
TEST(AudioSendStreamTest, GetStats) { |
ConfigHelper helper(false); |
internal::AudioSendStream send_stream( |
helper.config(), helper.audio_state(), helper.worker_queue(), |
- helper.packet_router(), helper.congestion_controller(), |
- helper.bitrate_allocator(), helper.event_log(), helper.rtcp_rtt_stats()); |
+ helper.transport(), helper.bitrate_allocator(), helper.event_log(), |
+ helper.rtcp_rtt_stats()); |
helper.SetupMockForGetStats(); |
AudioSendStream::Stats stats = send_stream.GetStats(); |
EXPECT_EQ(kSsrc, stats.local_ssrc); |
@@ -367,8 +373,8 @@ TEST(AudioSendStreamTest, GetStatsTypingNoiseDetected) { |
ConfigHelper helper(false); |
internal::AudioSendStream send_stream( |
helper.config(), helper.audio_state(), helper.worker_queue(), |
- helper.packet_router(), helper.congestion_controller(), |
- helper.bitrate_allocator(), helper.event_log(), helper.rtcp_rtt_stats()); |
+ helper.transport(), helper.bitrate_allocator(), helper.event_log(), |
+ helper.rtcp_rtt_stats()); |
helper.SetupMockForGetStats(); |
EXPECT_FALSE(send_stream.GetStats().typing_noise_detected); |
@@ -421,8 +427,8 @@ TEST(AudioSendStreamTest, SendCodecAppliesConfigParams) { |
EnableAudioNetworkAdaptor(*stream_config.audio_network_adaptor_config)); |
internal::AudioSendStream send_stream( |
stream_config, helper.audio_state(), helper.worker_queue(), |
- helper.packet_router(), helper.congestion_controller(), |
- helper.bitrate_allocator(), helper.event_log(), helper.rtcp_rtt_stats()); |
+ helper.transport(), helper.bitrate_allocator(), helper.event_log(), |
+ helper.rtcp_rtt_stats()); |
} |
// VAD is applied when codec is mono and the CNG frequency matches the codec |
@@ -438,16 +444,16 @@ TEST(AudioSendStreamTest, SendCodecCanApplyVad) { |
.WillOnce(Return(true)); |
internal::AudioSendStream send_stream( |
stream_config, helper.audio_state(), helper.worker_queue(), |
- helper.packet_router(), helper.congestion_controller(), |
- helper.bitrate_allocator(), helper.event_log(), helper.rtcp_rtt_stats()); |
+ helper.transport(), helper.bitrate_allocator(), helper.event_log(), |
+ helper.rtcp_rtt_stats()); |
} |
TEST(AudioSendStreamTest, DoesNotPassHigherBitrateThanMaxBitrate) { |
ConfigHelper helper(false); |
internal::AudioSendStream send_stream( |
helper.config(), helper.audio_state(), helper.worker_queue(), |
- helper.packet_router(), helper.congestion_controller(), |
- helper.bitrate_allocator(), helper.event_log(), helper.rtcp_rtt_stats()); |
+ helper.transport(), helper.bitrate_allocator(), helper.event_log(), |
+ helper.rtcp_rtt_stats()); |
EXPECT_CALL(*helper.channel_proxy(), |
SetBitrate(helper.config().max_bitrate_bps, _)); |
send_stream.OnBitrateUpdated(helper.config().max_bitrate_bps + 5000, 0.0, 50, |
@@ -458,8 +464,8 @@ TEST(AudioSendStreamTest, ProbingIntervalOnBitrateUpdated) { |
ConfigHelper helper(false); |
internal::AudioSendStream send_stream( |
helper.config(), helper.audio_state(), helper.worker_queue(), |
- helper.packet_router(), helper.congestion_controller(), |
- helper.bitrate_allocator(), helper.event_log(), helper.rtcp_rtt_stats()); |
+ helper.transport(), helper.bitrate_allocator(), helper.event_log(), |
+ helper.rtcp_rtt_stats()); |
EXPECT_CALL(*helper.channel_proxy(), SetBitrate(_, 5000)); |
send_stream.OnBitrateUpdated(50000, 0.0, 50, 5000); |
} |