Set send side bitrate estimate on successful probing attempt.
BUG=webrtc:5859 Review-Url: https://codereview.webrtc.org/2263973004 Cr-Commit-Position: refs/heads/master@{#13887}
This commit is contained in:
@ -182,6 +182,14 @@ void BitrateControllerImpl::OnReceivedEstimatedBitrate(uint32_t bitrate) {
|
||||
MaybeTriggerOnNetworkChanged();
|
||||
}
|
||||
|
||||
void BitrateControllerImpl::UpdateProbeBitrate(uint32_t bitrate_bps) {
|
||||
{
|
||||
rtc::CritScope cs(&critsect_);
|
||||
bandwidth_estimation_.SetSendBitrate(bitrate_bps);
|
||||
}
|
||||
MaybeTriggerOnNetworkChanged();
|
||||
}
|
||||
|
||||
void BitrateControllerImpl::UpdateDelayBasedEstimate(uint32_t bitrate_bps) {
|
||||
{
|
||||
rtc::CritScope cs(&critsect_);
|
||||
|
||||
@ -61,6 +61,8 @@ class BitrateControllerImpl : public BitrateController {
|
||||
uint8_t* fraction_loss,
|
||||
int64_t* rtt) override;
|
||||
|
||||
void UpdateProbeBitrate(uint32_t bitrate_bps) override;
|
||||
|
||||
int64_t TimeUntilNextProcess() override;
|
||||
void Process() override;
|
||||
|
||||
|
||||
@ -79,6 +79,8 @@ class BitrateController : public Module {
|
||||
|
||||
virtual void UpdateDelayBasedEstimate(uint32_t bitrate_bps) = 0;
|
||||
|
||||
virtual void UpdateProbeBitrate(uint32_t bitrate_bps) = 0;
|
||||
|
||||
// Gets the available payload bandwidth in bits per second. Note that
|
||||
// this bandwidth excludes packet headers.
|
||||
virtual bool AvailableBandwidth(uint32_t* bandwidth) const = 0;
|
||||
|
||||
@ -38,6 +38,7 @@ class MockBitrateController : public BitrateController {
|
||||
MOCK_METHOD3(ResetBitrates,
|
||||
void(int bitrate_bps, int min_bitrate_bps, int max_bitrate_bps));
|
||||
MOCK_METHOD1(UpdateDelayBasedEstimate, void(uint32_t bitrate_bps));
|
||||
MOCK_METHOD1(UpdateProbeBitrate, void(uint32_t bitrate_bps));
|
||||
MOCK_METHOD1(SetEventLog, void(RtcEventLog* event_log));
|
||||
MOCK_CONST_METHOD1(AvailableBandwidth, bool(uint32_t* bandwidth));
|
||||
MOCK_METHOD1(SetReservedBitrate, void(uint32_t reserved_bitrate_bps));
|
||||
|
||||
@ -95,6 +95,7 @@ void DelayBasedBwe::IncomingPacketInfo(const PacketInfo& info) {
|
||||
int bps = probe_bitrate_estimator_.HandleProbeAndEstimateBitrate(info);
|
||||
if (bps > 0) {
|
||||
remote_rate_.SetEstimate(bps, info.arrival_time_ms);
|
||||
observer_->OnProbeBitrate(bps);
|
||||
update_estimate = true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -35,6 +35,8 @@ class RemoteBitrateObserver {
|
||||
virtual void OnReceiveBitrateChanged(const std::vector<uint32_t>& ssrcs,
|
||||
uint32_t bitrate) = 0;
|
||||
|
||||
virtual void OnProbeBitrate(uint32_t bitrate) {}
|
||||
|
||||
virtual ~RemoteBitrateObserver() {}
|
||||
};
|
||||
|
||||
|
||||
@ -142,6 +142,10 @@ void TransportFeedbackAdapter::OnReceiveBitrateChanged(
|
||||
bitrate_controller_->UpdateDelayBasedEstimate(bitrate);
|
||||
}
|
||||
|
||||
void TransportFeedbackAdapter::OnProbeBitrate(uint32_t bitrate) {
|
||||
bitrate_controller_->UpdateProbeBitrate(bitrate);
|
||||
}
|
||||
|
||||
void TransportFeedbackAdapter::OnRttUpdate(int64_t avg_rtt_ms,
|
||||
int64_t max_rtt_ms) {
|
||||
RTC_DCHECK(bitrate_estimator_.get() != nullptr);
|
||||
|
||||
@ -56,6 +56,8 @@ class TransportFeedbackAdapter : public TransportFeedbackObserver,
|
||||
void OnReceiveBitrateChanged(const std::vector<uint32_t>& ssrcs,
|
||||
uint32_t bitrate) override;
|
||||
|
||||
void OnProbeBitrate(uint32_t bitrate) override;
|
||||
|
||||
rtc::CriticalSection lock_;
|
||||
SendTimeHistory send_time_history_ GUARDED_BY(&lock_);
|
||||
BitrateController* bitrate_controller_;
|
||||
|
||||
Reference in New Issue
Block a user