Don't send max allocation probe unless allocation changed.

This changes the behavior to a probe only gets trigged if
the total max allocated bitrate  actually changed.

Also adding helpful log dump flag to ramp up tests that
was used to investigate the issue.

Bug: chromium:894434
Change-Id: I907675b8fd5a339f838b07d433ecf837e312def1
Reviewed-on: https://webrtc-review.googlesource.com/c/105981
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25212}
This commit is contained in:
Sebastian Jansson 2018-10-15 13:24:31 +02:00 committed by Commit Bot
parent a1c9312616
commit f5e767dbbc
4 changed files with 24 additions and 2 deletions

View file

@ -386,6 +386,7 @@ if (rtc_include_tests) {
"../api/video:video_bitrate_allocation",
"../api/video_codecs:video_codecs_api",
"../logging:rtc_event_log_api",
"../logging:rtc_event_log_impl_output",
"../modules/audio_coding",
"../modules/audio_device",
"../modules/audio_device:audio_device_impl",

View file

@ -11,7 +11,9 @@
#include "call/rampup_tests.h"
#include "call/fake_network_pipe.h"
#include "logging/rtc_event_log/output/rtc_event_log_output_file.h"
#include "rtc_base/checks.h"
#include "rtc_base/flags.h"
#include "rtc_base/logging.h"
#include "rtc_base/platform_thread.h"
#include "rtc_base/stringencode.h"
@ -38,6 +40,8 @@ std::vector<uint32_t> GenerateSsrcs(size_t num_streams, uint32_t ssrc_offset) {
}
} // namespace
DEFINE_string(ramp_dump_name, "", "Filename for dumped received RTP stream.");
RampUpTester::RampUpTester(size_t num_video_streams,
size_t num_audio_streams,
size_t num_flexfec_streams,
@ -566,7 +570,23 @@ void RampUpDownUpTester::EvolveTestState(int bitrate_bps, bool suspended) {
class RampUpTest : public test::CallTest {
public:
RampUpTest() {}
RampUpTest() {
std::string dump_name(FLAG_ramp_dump_name);
if (!dump_name.empty()) {
send_event_log_ = RtcEventLog::Create(RtcEventLog::EncodingType::Legacy);
recv_event_log_ = RtcEventLog::Create(RtcEventLog::EncodingType::Legacy);
bool event_log_started =
send_event_log_->StartLogging(
absl::make_unique<RtcEventLogOutputFile>(
dump_name + ".send.rtc.dat", RtcEventLog::kUnlimitedOutput),
RtcEventLog::kImmediateOutput) &&
recv_event_log_->StartLogging(
absl::make_unique<RtcEventLogOutputFile>(
dump_name + ".recv.rtc.dat", RtcEventLog::kUnlimitedOutput),
RtcEventLog::kImmediateOutput);
RTC_DCHECK(event_log_started);
}
}
};
static const uint32_t kStartBitrateBps = 60000;

View file

@ -142,7 +142,7 @@ class RampUpDownUpTester : public RampUpTester {
kTransitionToNextState,
};
void ModifyReceiverCallConfig(Call::Config* config);
void ModifyReceiverCallConfig(Call::Config* config) override;
std::string GetModifierString() const;
int GetExpectedHighBitrate() const;

View file

@ -146,6 +146,7 @@ std::vector<ProbeClusterConfig> ProbeController::OnMaxTotalAllocatedBitrate(
max_total_allocated_bitrate_ = max_total_allocated_bitrate;
return InitiateProbing(at_time_ms, {max_total_allocated_bitrate}, false);
}
max_total_allocated_bitrate_ = max_total_allocated_bitrate;
return std::vector<ProbeClusterConfig>();
}