Always ResetSenderCongestionControlObjects before RegisterEtc...
BUG=webrtc:7896 Review-Url: https://codereview.webrtc.org/2966503002 Cr-Commit-Position: refs/heads/master@{#18844}
This commit is contained in:
@ -171,7 +171,7 @@ void AudioSendStream::ConfigureStream(
|
||||
// Transport sequence number
|
||||
if (first_time ||
|
||||
new_ids.transport_sequence_number != old_ids.transport_sequence_number) {
|
||||
if (old_ids.transport_sequence_number) {
|
||||
if (!first_time) {
|
||||
channel_proxy->ResetSenderCongestionControlObjects();
|
||||
stream->bandwidth_observer_.reset();
|
||||
}
|
||||
|
@ -174,10 +174,7 @@ struct ConfigHelper {
|
||||
stream_config_.rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId));
|
||||
if (audio_bwe_enabled) {
|
||||
stream_config_.rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberId));
|
||||
stream_config_.send_codec_spec->transport_cc_enabled = true;
|
||||
AddBweToConfig(&stream_config_);
|
||||
}
|
||||
stream_config_.encoder_factory = SetupEncoderFactoryMock();
|
||||
stream_config_.min_bitrate_bps = 10000;
|
||||
@ -197,6 +194,13 @@ struct ConfigHelper {
|
||||
RtcEventLog* event_log() { return &event_log_; }
|
||||
MockVoiceEngine* voice_engine() { return &voice_engine_; }
|
||||
|
||||
static void AddBweToConfig(AudioSendStream::Config* config) {
|
||||
config->rtp.extensions.push_back(
|
||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
||||
kTransportSequenceNumberId));
|
||||
config->send_codec_spec->transport_cc_enabled = true;
|
||||
}
|
||||
|
||||
void SetupDefaultChannelProxy(bool audio_bwe_enabled) {
|
||||
using testing::StrEq;
|
||||
channel_proxy_ = new testing::StrictMock<MockVoEChannelProxy>();
|
||||
@ -541,5 +545,28 @@ TEST(AudioSendStreamTest, DontRecreateEncoder) {
|
||||
send_stream.Reconfigure(stream_config);
|
||||
}
|
||||
|
||||
TEST(AudioSendStreamTest, ReconfigureTransportCcResetsFirst) {
|
||||
ConfigHelper helper(false, true);
|
||||
internal::AudioSendStream send_stream(
|
||||
helper.config(), helper.audio_state(), helper.worker_queue(),
|
||||
helper.transport(), helper.bitrate_allocator(), helper.event_log(),
|
||||
helper.rtcp_rtt_stats(), rtc::Optional<RtpState>());
|
||||
auto new_config = helper.config();
|
||||
ConfigHelper::AddBweToConfig(&new_config);
|
||||
EXPECT_CALL(*helper.channel_proxy(),
|
||||
EnableSendTransportSequenceNumber(kTransportSequenceNumberId))
|
||||
.Times(1);
|
||||
{
|
||||
::testing::InSequence seq;
|
||||
EXPECT_CALL(*helper.channel_proxy(), ResetSenderCongestionControlObjects())
|
||||
.Times(1);
|
||||
EXPECT_CALL(*helper.channel_proxy(), RegisterSenderCongestionControlObjects(
|
||||
helper.transport(), Ne(nullptr)))
|
||||
.Times(1);
|
||||
}
|
||||
send_stream.Reconfigure(new_config);
|
||||
}
|
||||
|
||||
|
||||
} // namespace test
|
||||
} // namespace webrtc
|
||||
|
Reference in New Issue
Block a user