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
|
// Transport sequence number
|
||||||
if (first_time ||
|
if (first_time ||
|
||||||
new_ids.transport_sequence_number != old_ids.transport_sequence_number) {
|
new_ids.transport_sequence_number != old_ids.transport_sequence_number) {
|
||||||
if (old_ids.transport_sequence_number) {
|
if (!first_time) {
|
||||||
channel_proxy->ResetSenderCongestionControlObjects();
|
channel_proxy->ResetSenderCongestionControlObjects();
|
||||||
stream->bandwidth_observer_.reset();
|
stream->bandwidth_observer_.reset();
|
||||||
}
|
}
|
||||||
|
@ -174,10 +174,7 @@ struct ConfigHelper {
|
|||||||
stream_config_.rtp.extensions.push_back(
|
stream_config_.rtp.extensions.push_back(
|
||||||
RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId));
|
RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId));
|
||||||
if (audio_bwe_enabled) {
|
if (audio_bwe_enabled) {
|
||||||
stream_config_.rtp.extensions.push_back(
|
AddBweToConfig(&stream_config_);
|
||||||
RtpExtension(RtpExtension::kTransportSequenceNumberUri,
|
|
||||||
kTransportSequenceNumberId));
|
|
||||||
stream_config_.send_codec_spec->transport_cc_enabled = true;
|
|
||||||
}
|
}
|
||||||
stream_config_.encoder_factory = SetupEncoderFactoryMock();
|
stream_config_.encoder_factory = SetupEncoderFactoryMock();
|
||||||
stream_config_.min_bitrate_bps = 10000;
|
stream_config_.min_bitrate_bps = 10000;
|
||||||
@ -197,6 +194,13 @@ struct ConfigHelper {
|
|||||||
RtcEventLog* event_log() { return &event_log_; }
|
RtcEventLog* event_log() { return &event_log_; }
|
||||||
MockVoiceEngine* voice_engine() { return &voice_engine_; }
|
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) {
|
void SetupDefaultChannelProxy(bool audio_bwe_enabled) {
|
||||||
using testing::StrEq;
|
using testing::StrEq;
|
||||||
channel_proxy_ = new testing::StrictMock<MockVoEChannelProxy>();
|
channel_proxy_ = new testing::StrictMock<MockVoEChannelProxy>();
|
||||||
@ -541,5 +545,28 @@ TEST(AudioSendStreamTest, DontRecreateEncoder) {
|
|||||||
send_stream.Reconfigure(stream_config);
|
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 test
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
Reference in New Issue
Block a user