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 a2832ded00cb330d86ffae8805955326cb1033a2..3cfe13f10bb0b93a7eb81862648ae77d2e785ca2 100644 |
--- a/webrtc/audio/audio_send_stream_unittest.cc |
+++ b/webrtc/audio/audio_send_stream_unittest.cc |
@@ -69,7 +69,6 @@ struct ConfigHelper { |
bitrate_allocator_(&limit_observer_), |
worker_queue_("ConfigHelper_worker_queue") { |
using testing::Invoke; |
- using testing::StrEq; |
EXPECT_CALL(voice_engine_, |
RegisterVoiceEngineObserver(_)).WillOnce(Return(0)); |
@@ -79,40 +78,15 @@ struct ConfigHelper { |
config.voice_engine = &voice_engine_; |
audio_state_ = AudioState::Create(config); |
+ SetupDefaultChannelProxy(); |
+ |
EXPECT_CALL(voice_engine_, ChannelProxyFactory(kChannelId)) |
.WillOnce(Invoke([this](int channel_id) { |
- EXPECT_FALSE(channel_proxy_); |
- channel_proxy_ = new testing::StrictMock<MockVoEChannelProxy>(); |
- EXPECT_CALL(*channel_proxy_, SetRTCPStatus(true)).Times(1); |
- EXPECT_CALL(*channel_proxy_, SetLocalSSRC(kSsrc)).Times(1); |
- EXPECT_CALL(*channel_proxy_, SetRTCP_CNAME(StrEq(kCName))).Times(1); |
- EXPECT_CALL(*channel_proxy_, SetNACKStatus(true, 10)).Times(1); |
- EXPECT_CALL(*channel_proxy_, |
- SetSendAbsoluteSenderTimeStatus(true, kAbsSendTimeId)).Times(1); |
- EXPECT_CALL(*channel_proxy_, |
- SetSendAudioLevelIndicationStatus(true, kAudioLevelId)).Times(1); |
- EXPECT_CALL(*channel_proxy_, EnableSendTransportSequenceNumber( |
- kTransportSequenceNumberId)) |
- .Times(1); |
- EXPECT_CALL(*channel_proxy_, |
- RegisterSenderCongestionControlObjects( |
- congestion_controller_.pacer(), |
- congestion_controller_.GetTransportFeedbackObserver(), |
- congestion_controller_.packet_router())) |
- .Times(1); |
- EXPECT_CALL(*channel_proxy_, ResetCongestionControlObjects()) |
- .Times(1); |
- EXPECT_CALL(*channel_proxy_, RegisterExternalTransport(nullptr)) |
- .Times(1); |
- EXPECT_CALL(*channel_proxy_, DeRegisterExternalTransport()) |
- .Times(1); |
- EXPECT_CALL(*channel_proxy_, SetRtcEventLog(testing::NotNull())) |
- .Times(1); |
- EXPECT_CALL(*channel_proxy_, SetRtcEventLog(testing::IsNull())) |
- .Times(1); // Destructor resets the event log |
return channel_proxy_; |
})); |
+ |
SetupMockForSetupSendCodec(); |
+ |
stream_config_.voe_channel_id = kChannelId; |
stream_config_.rtp.ssrc = kSsrc; |
stream_config_.rtp.nack.rtp_history_ms = 200; |
@@ -139,6 +113,36 @@ struct ConfigHelper { |
RtcEventLog* event_log() { return &event_log_; } |
MockVoiceEngine* voice_engine() { return &voice_engine_; } |
+ void SetupDefaultChannelProxy() { |
+ using testing::StrEq; |
+ channel_proxy_ = new testing::StrictMock<MockVoEChannelProxy>(); |
+ EXPECT_CALL(*channel_proxy_, SetRTCPStatus(true)).Times(1); |
+ EXPECT_CALL(*channel_proxy_, SetLocalSSRC(kSsrc)).Times(1); |
+ EXPECT_CALL(*channel_proxy_, SetRTCP_CNAME(StrEq(kCName))).Times(1); |
+ EXPECT_CALL(*channel_proxy_, SetNACKStatus(true, 10)).Times(1); |
+ EXPECT_CALL(*channel_proxy_, |
+ SetSendAbsoluteSenderTimeStatus(true, kAbsSendTimeId)) |
+ .Times(1); |
+ EXPECT_CALL(*channel_proxy_, |
+ SetSendAudioLevelIndicationStatus(true, kAudioLevelId)) |
+ .Times(1); |
+ EXPECT_CALL(*channel_proxy_, |
+ EnableSendTransportSequenceNumber(kTransportSequenceNumberId)) |
+ .Times(1); |
+ EXPECT_CALL(*channel_proxy_, |
+ RegisterSenderCongestionControlObjects( |
+ congestion_controller_.pacer(), |
+ congestion_controller_.GetTransportFeedbackObserver(), |
+ congestion_controller_.packet_router())) |
+ .Times(1); |
+ EXPECT_CALL(*channel_proxy_, ResetCongestionControlObjects()).Times(1); |
+ EXPECT_CALL(*channel_proxy_, RegisterExternalTransport(nullptr)).Times(1); |
+ EXPECT_CALL(*channel_proxy_, DeRegisterExternalTransport()).Times(1); |
+ EXPECT_CALL(*channel_proxy_, SetRtcEventLog(testing::NotNull())).Times(1); |
+ EXPECT_CALL(*channel_proxy_, SetRtcEventLog(testing::IsNull())) |
+ .Times(1); // Destructor resets the event log |
+ } |
+ |
void SetupMockForSetupSendCodec() { |
EXPECT_CALL(voice_engine_, SetVADStatus(kChannelId, false, _, _)) |
.WillOnce(Return(0)); |
@@ -228,6 +232,8 @@ TEST(AudioSendStreamTest, ConfigToString) { |
config.send_codec_spec.opus_max_playback_rate = 32000; |
config.send_codec_spec.cng_payload_type = 42; |
config.send_codec_spec.cng_plfreq = 56; |
+ config.send_codec_spec.min_ptime_ms = 20; |
+ config.send_codec_spec.max_ptime_ms = 60; |
config.send_codec_spec.codec_inst = kIsacCodec; |
EXPECT_EQ( |
"{rtp: {ssrc: 1234, extensions: [{uri: " |
@@ -236,9 +242,9 @@ TEST(AudioSendStreamTest, ConfigToString) { |
"voe_channel_id: 1, min_bitrate_kbps: 12, max_bitrate_kbps: 34, " |
"send_codec_spec: {nack_enabled: true, transport_cc_enabled: false, " |
"enable_codec_fec: true, enable_opus_dtx: false, opus_max_playback_rate: " |
- "32000, cng_payload_type: 42, cng_plfreq: 56, codec_inst: {pltype: " |
- "103, plname: \"isac\", plfreq: 16000, pacsize: 320, channels: 1, rate: " |
- "32000}}}", |
+ "32000, cng_payload_type: 42, cng_plfreq: 56, min_ptime: 20, max_ptime: " |
+ "60, codec_inst: {pltype: 103, plname: \"isac\", plfreq: 16000, pacsize: " |
+ "320, channels: 1, rate: 32000}}}", |
config.ToString()); |
} |
@@ -331,6 +337,10 @@ TEST(AudioSendStreamTest, SendCodecAppliesConfigParams) { |
stream_config.send_codec_spec.opus_max_playback_rate = 12345; |
stream_config.send_codec_spec.cng_plfreq = 16000; |
stream_config.send_codec_spec.cng_payload_type = 105; |
+ stream_config.send_codec_spec.min_ptime_ms = 10; |
+ stream_config.send_codec_spec.max_ptime_ms = 60; |
+ stream_config.audio_network_adaptor_config = |
+ rtc::Optional<std::string>("abced"); |
EXPECT_CALL(*helper.voice_engine(), SetFECStatus(kChannelId, true)) |
.WillOnce(Return(0)); |
EXPECT_CALL( |
@@ -347,6 +357,13 @@ TEST(AudioSendStreamTest, SendCodecAppliesConfigParams) { |
kChannelId, stream_config.send_codec_spec.cng_payload_type, |
webrtc::kFreq16000Hz)) |
.WillOnce(Return(0)); |
+ EXPECT_CALL( |
+ *helper.channel_proxy(), |
+ SetReceiverFrameLengthRange(stream_config.send_codec_spec.min_ptime_ms, |
+ stream_config.send_codec_spec.max_ptime_ms)); |
+ EXPECT_CALL( |
+ *helper.channel_proxy(), |
+ EnableAudioNetworkAdaptor(*stream_config.audio_network_adaptor_config)); |
internal::AudioSendStream send_stream( |
stream_config, helper.audio_state(), helper.worker_queue(), |
helper.congestion_controller(), helper.bitrate_allocator(), |