| 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 4b7415a738969e8805de751444f4c50c1e85bd3e..236b30134701ed40a84d2d102177b2c49b347fbd 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"
|
| @@ -62,14 +63,33 @@ class MockLimitObserver : public BitrateAllocator::LimitObserver {
|
| };
|
|
|
| struct ConfigHelper {
|
| + class FakeRtpTransportController
|
| + : public RtpTransportControllerSenderInterface {
|
| + 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_;
|
| + };
|
| +
|
| ConfigHelper()
|
| - : 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;
|
| @@ -114,9 +134,8 @@ 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_;
|
| + RtpTransportControllerSenderInterface* transport() {
|
| + return &fake_transport_;
|
| }
|
| BitrateAllocator* bitrate_allocator() { return &bitrate_allocator_; }
|
| rtc::TaskQueue* worker_queue() { return &worker_queue_; }
|
| @@ -137,11 +156,9 @@ struct ConfigHelper {
|
| EnableSendTransportSequenceNumber(kTransportSequenceNumberId))
|
| .Times(1);
|
| EXPECT_CALL(*channel_proxy_,
|
| - RegisterSenderCongestionControlObjects(
|
| - congestion_controller_.pacer(),
|
| - congestion_controller_.GetTransportFeedbackObserver(),
|
| - packet_router()))
|
| + RegisterSenderCongestionControlObjects(&fake_transport_))
|
| .Times(1);
|
| +
|
| EXPECT_CALL(*channel_proxy_, ResetCongestionControlObjects()).Times(1);
|
| EXPECT_CALL(*channel_proxy_, RegisterExternalTransport(nullptr)).Times(1);
|
| EXPECT_CALL(*channel_proxy_, DeRegisterExternalTransport()).Times(1);
|
| @@ -217,17 +234,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_;
|
| @@ -274,16 +287,16 @@ TEST(AudioSendStreamTest, ConstructDestruct) {
|
| ConfigHelper helper;
|
| 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;
|
| 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,
|
| @@ -294,8 +307,8 @@ TEST(AudioSendStreamTest, SetMuted) {
|
| ConfigHelper helper;
|
| 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);
|
| }
|
| @@ -304,8 +317,8 @@ TEST(AudioSendStreamTest, GetStats) {
|
| ConfigHelper helper;
|
| 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);
|
| @@ -335,8 +348,8 @@ TEST(AudioSendStreamTest, GetStatsTypingNoiseDetected) {
|
| ConfigHelper helper;
|
| 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);
|
|
|
| @@ -389,8 +402,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
|
| @@ -406,16 +419,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;
|
| 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,
|
| @@ -426,8 +439,8 @@ TEST(AudioSendStreamTest, ProbingIntervalOnBitrateUpdated) {
|
| ConfigHelper helper;
|
| 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);
|
| }
|
|
|