Making RemoteRateControl::min_configured_bit_rate_ configurable
The minimum bitrate can now be configured from WrappingBitrateEstimator. BUG=2698 R=stefan@webrtc.org Review URL: https://webrtc-codereview.appspot.com/5699004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@5279 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@@ -69,7 +69,8 @@ struct RemoteBitrateEstimatorFactory {
|
||||
|
||||
virtual RemoteBitrateEstimator* Create(
|
||||
RemoteBitrateObserver* observer,
|
||||
Clock* clock) const;
|
||||
Clock* clock,
|
||||
uint32_t min_bitrate_bps) const;
|
||||
};
|
||||
|
||||
struct AbsoluteSendTimeRemoteBitrateEstimatorFactory
|
||||
@@ -79,7 +80,8 @@ struct AbsoluteSendTimeRemoteBitrateEstimatorFactory
|
||||
|
||||
virtual RemoteBitrateEstimator* Create(
|
||||
RemoteBitrateObserver* observer,
|
||||
Clock* clock) const;
|
||||
Clock* clock,
|
||||
uint32_t min_bitrate_bps) const;
|
||||
};
|
||||
} // namespace webrtc
|
||||
|
||||
|
||||
@@ -24,7 +24,8 @@ namespace {
|
||||
class RemoteBitrateEstimatorSingleStream : public RemoteBitrateEstimator {
|
||||
public:
|
||||
RemoteBitrateEstimatorSingleStream(RemoteBitrateObserver* observer,
|
||||
Clock* clock);
|
||||
Clock* clock,
|
||||
uint32_t min_bitrate_bps);
|
||||
virtual ~RemoteBitrateEstimatorSingleStream() {}
|
||||
|
||||
// Called for each incoming packet. If this is a new SSRC, a new
|
||||
@@ -72,9 +73,11 @@ class RemoteBitrateEstimatorSingleStream : public RemoteBitrateEstimator {
|
||||
|
||||
RemoteBitrateEstimatorSingleStream::RemoteBitrateEstimatorSingleStream(
|
||||
RemoteBitrateObserver* observer,
|
||||
Clock* clock)
|
||||
Clock* clock,
|
||||
uint32_t min_bitrate_bps)
|
||||
: clock_(clock),
|
||||
incoming_bitrate_(500, 8000),
|
||||
remote_rate_(min_bitrate_bps),
|
||||
observer_(observer),
|
||||
crit_sect_(CriticalSectionWrapper::CreateCriticalSection()),
|
||||
last_process_time_(-1) {
|
||||
@@ -220,13 +223,17 @@ void RemoteBitrateEstimatorSingleStream::GetSsrcs(
|
||||
|
||||
RemoteBitrateEstimator* RemoteBitrateEstimatorFactory::Create(
|
||||
RemoteBitrateObserver* observer,
|
||||
Clock* clock) const {
|
||||
return new RemoteBitrateEstimatorSingleStream(observer, clock);
|
||||
Clock* clock,
|
||||
uint32_t min_bitrate_bps) const {
|
||||
return new RemoteBitrateEstimatorSingleStream(observer, clock,
|
||||
min_bitrate_bps);
|
||||
}
|
||||
|
||||
RemoteBitrateEstimator* AbsoluteSendTimeRemoteBitrateEstimatorFactory::Create(
|
||||
RemoteBitrateObserver* observer,
|
||||
Clock* clock) const {
|
||||
return new RemoteBitrateEstimatorSingleStream(observer, clock);
|
||||
Clock* clock,
|
||||
uint32_t min_bitrate_bps) const {
|
||||
return new RemoteBitrateEstimatorSingleStream(observer, clock,
|
||||
min_bitrate_bps);
|
||||
}
|
||||
} // namespace webrtc
|
||||
|
||||
@@ -17,11 +17,14 @@ namespace webrtc {
|
||||
|
||||
class RemoteBitrateEstimatorSingleTest : public RemoteBitrateEstimatorTest {
|
||||
public:
|
||||
static const uint32_t kRemoteBitrateEstimatorMinBitrateBps = 30000;
|
||||
|
||||
RemoteBitrateEstimatorSingleTest() {}
|
||||
virtual void SetUp() {
|
||||
bitrate_estimator_.reset(RemoteBitrateEstimatorFactory().Create(
|
||||
bitrate_observer_.get(),
|
||||
&clock_));
|
||||
&clock_,
|
||||
kRemoteBitrateEstimatorMinBitrateBps));
|
||||
}
|
||||
protected:
|
||||
DISALLOW_COPY_AND_ASSIGN(RemoteBitrateEstimatorSingleTest);
|
||||
|
||||
@@ -22,8 +22,8 @@ namespace webrtc {
|
||||
|
||||
const unsigned int kDefaultRttMs = 200;
|
||||
|
||||
RemoteRateControl::RemoteRateControl()
|
||||
: min_configured_bit_rate_(30000),
|
||||
RemoteRateControl::RemoteRateControl(uint32_t min_bitrate_bps)
|
||||
: min_configured_bit_rate_(min_bitrate_bps),
|
||||
max_configured_bit_rate_(30000000),
|
||||
current_bit_rate_(max_configured_bit_rate_),
|
||||
max_hold_rate_(0),
|
||||
@@ -45,7 +45,7 @@ RemoteRateControl::RemoteRateControl()
|
||||
}
|
||||
|
||||
void RemoteRateControl::Reset() {
|
||||
*this = RemoteRateControl();
|
||||
*this = RemoteRateControl(min_configured_bit_rate_);
|
||||
came_from_state_ = kRcHold;
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace webrtc {
|
||||
|
||||
class RemoteRateControl {
|
||||
public:
|
||||
RemoteRateControl();
|
||||
explicit RemoteRateControl(uint32_t min_bitrate_bps);
|
||||
~RemoteRateControl() {}
|
||||
|
||||
void Reset();
|
||||
|
||||
@@ -36,6 +36,8 @@ template<typename T> void DeleteElements(T* container) {
|
||||
|
||||
class BweTest::TestedEstimator : public RemoteBitrateObserver {
|
||||
public:
|
||||
static const uint32_t kRemoteBitrateEstimatorMinBitrateBps = 30000;
|
||||
|
||||
TestedEstimator(const string& test_name,
|
||||
const BweTestConfig::EstimatorConfig& config)
|
||||
: debug_name_(config.debug_name),
|
||||
@@ -43,7 +45,8 @@ class BweTest::TestedEstimator : public RemoteBitrateObserver {
|
||||
stats_(),
|
||||
relative_estimator_stats_(),
|
||||
latest_estimate_bps_(-1),
|
||||
estimator_(config.estimator_factory->Create(this, &clock_)),
|
||||
estimator_(config.estimator_factory->Create(
|
||||
this, &clock_, kRemoteBitrateEstimatorMinBitrateBps)),
|
||||
relative_estimator_(NULL),
|
||||
baseline_(BaseLineFileInterface::Create(test_name + "_" + debug_name_,
|
||||
config.update_baseline)) {
|
||||
|
||||
Reference in New Issue
Block a user