De-flake VideoSendStreamTest.ReconfigureBitratesSetsEncoderBitratesCorrectly

BUG=webrtc:5382
R=pbos@webrtc.org, stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1922483002 .

Cr-Commit-Position: refs/heads/master@{#12547}
This commit is contained in:
philipel 2016-04-28 15:52:49 +02:00
parent 6b470a9413
commit c6957c7b73
8 changed files with 45 additions and 16 deletions

View File

@ -122,6 +122,18 @@ void BitrateControllerImpl::SetMinMaxBitrate(int min_bitrate_bps,
MaybeTriggerOnNetworkChanged();
}
void BitrateControllerImpl::SetBitrates(int start_bitrate_bps,
int min_bitrate_bps,
int max_bitrate_bps) {
{
rtc::CritScope cs(&critsect_);
bandwidth_estimation_.SetBitrates(start_bitrate_bps,
min_bitrate_bps,
max_bitrate_bps);
}
MaybeTriggerOnNetworkChanged();
}
void BitrateControllerImpl::SetReservedBitrate(uint32_t reserved_bitrate_bps) {
{
rtc::CritScope cs(&critsect_);

View File

@ -35,9 +35,15 @@ class BitrateControllerImpl : public BitrateController {
RtcpBandwidthObserver* CreateRtcpBandwidthObserver() override;
// Deprecated
void SetStartBitrate(int start_bitrate_bps) override;
// Deprecated
void SetMinMaxBitrate(int min_bitrate_bps, int max_bitrate_bps) override;
void SetBitrates(int start_bitrate_bps,
int min_bitrate_bps,
int max_bitrate_bps) override;
void UpdateDelayBasedEstimate(uint32_t bitrate_bps) override;
void SetReservedBitrate(uint32_t reserved_bitrate_bps) override;

View File

@ -54,8 +54,13 @@ class BitrateController : public Module {
virtual RtcpBandwidthObserver* CreateRtcpBandwidthObserver() = 0;
// Deprecated
virtual void SetStartBitrate(int start_bitrate_bps) = 0;
// Deprecated
virtual void SetMinMaxBitrate(int min_bitrate_bps, int max_bitrate_bps) = 0;
virtual void SetBitrates(int start_bitrate_bps,
int min_bitrate_bps,
int max_bitrate_bps) = 0;
virtual void UpdateDelayBasedEstimate(uint32_t bitrate_bps) = 0;

View File

@ -31,6 +31,10 @@ class MockBitrateController : public BitrateController {
MOCK_METHOD1(SetStartBitrate, void(int start_bitrate_bps));
MOCK_METHOD2(SetMinMaxBitrate,
void(int min_bitrate_bps, int max_bitrate_bps));
MOCK_METHOD3(SetBitrates,
void(int start_bitrate_bps,
int min_bitrate_bps,
int max_bitrate_bps));
MOCK_METHOD1(UpdateDelayBasedEstimate, void(uint32_t bitrate_bps));
MOCK_METHOD1(SetEventLog, void(RtcEventLog* event_log));
MOCK_CONST_METHOD1(AvailableBandwidth, bool(uint32_t* bandwidth));

View File

@ -67,6 +67,14 @@ SendSideBandwidthEstimation::SendSideBandwidthEstimation()
SendSideBandwidthEstimation::~SendSideBandwidthEstimation() {}
void SendSideBandwidthEstimation::SetBitrates(int send_bitrate,
int min_bitrate,
int max_bitrate) {
if (send_bitrate > 0)
SetSendBitrate(send_bitrate);
SetMinMaxBitrate(min_bitrate, max_bitrate);
}
void SendSideBandwidthEstimation::SetSendBitrate(int bitrate) {
RTC_DCHECK_GT(bitrate, 0);
bitrate_ = bitrate;

View File

@ -46,6 +46,9 @@ class SendSideBandwidthEstimation {
int number_of_packets,
int64_t now_ms);
void SetBitrates(int send_bitrate,
int min_bitrate,
int max_bitrate);
void SetSendBitrate(int bitrate);
void SetMinMaxBitrate(int min_bitrate, int max_bitrate);
int GetMinBitrate() const;

View File

@ -177,11 +177,13 @@ void CongestionController::SetBweBitrates(int min_bitrate_bps,
min_bitrate_bps = kMinBitrateBps;
if (max_bitrate_bps > 0)
max_bitrate_bps = std::max(min_bitrate_bps, max_bitrate_bps);
if (start_bitrate_bps > 0) {
if (start_bitrate_bps > 0)
start_bitrate_bps = std::max(min_bitrate_bps, start_bitrate_bps);
bitrate_controller_->SetStartBitrate(start_bitrate_bps);
}
bitrate_controller_->SetMinMaxBitrate(min_bitrate_bps, max_bitrate_bps);
bitrate_controller_->SetBitrates(start_bitrate_bps,
min_bitrate_bps,
max_bitrate_bps);
if (remote_bitrate_estimator_)
remote_bitrate_estimator_->SetMinBitrate(min_bitrate_bps);
min_bitrate_bps_ = min_bitrate_bps;

View File

@ -1690,18 +1690,7 @@ TEST_F(VideoSendStreamTest, TranslatesTwoLayerScreencastToTargetBitrate) {
RunBaseTest(&test);
}
// Disabled on LinuxAsan:
// https://bugs.chromium.org/p/webrtc/issues/detail?id=5382
#if defined(ADDRESS_SANITIZER) && defined(WEBRTC_LINUX)
#define MAYBE_ReconfigureBitratesSetsEncoderBitratesCorrectly \
DISABLED_ReconfigureBitratesSetsEncoderBitratesCorrectly
#else
#define MAYBE_ReconfigureBitratesSetsEncoderBitratesCorrectly \
ReconfigureBitratesSetsEncoderBitratesCorrectly
#endif
TEST_F(VideoSendStreamTest,
MAYBE_ReconfigureBitratesSetsEncoderBitratesCorrectly) {
TEST_F(VideoSendStreamTest, ReconfigureBitratesSetsEncoderBitratesCorrectly) {
// These are chosen to be "kind of odd" to not be accidentally checked against
// default values.
static const int kMinBitrateKbps = 137;