Revert "Reland "Using units in SendSideBandwidthEstimation.""
This reverts commit e2cb26cb4fa2a3ce7c12636225ba9c720d7c7e56.
Reason for revert: <INSERT REASONING HERE>
Original change's description:
> Reland "Using units in SendSideBandwidthEstimation."
>
> This reverts commit 917e5967a597fa8d6e6cae9ffccb21e3d35d553b.
>
> Reason for revert: Handling downstream use case.
>
> Original change's description:
> > Revert "Using units in SendSideBandwidthEstimation."
> >
> > This reverts commit 35b5e5f3b0dc409bf571b3609860ad5bb8e00c29.
> >
> > Reason for revert: Breaks downstream project
> >
> > Original change's description:
> > > Using units in SendSideBandwidthEstimation.
> > >
> > > This CL moves SendSideBandwidthEstimation to use the unit types
> > > DataRate, TimeDelta and Timestamp. This prepares for upcoming changes.
> > >
> > > Bug: webrtc:9718
> > > Change-Id: If10e329920dda037b53055ff3352ae7f8d7e32b8
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/104021
> > > Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> > > Reviewed-by: Björn Terelius <terelius@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#25029}
> >
> > TBR=terelius@webrtc.org,srte@webrtc.org
> >
> > No-Try: True
> > Bug: webrtc:9718
> > Change-Id: Iaf470f1eec9911ee6fc7c1b4f5db9675d89d3780
> > Reviewed-on: https://webrtc-review.googlesource.com/c/104480
> > Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> > Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#25035}
>
> TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org
>
> Change-Id: I0940791fcd1e196598b0f0a2ec779c49931ee5df
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:9718
> Reviewed-on: https://webrtc-review.googlesource.com/c/104520
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25036}
TBR=oprypin@webrtc.org,terelius@webrtc.org,srte@webrtc.org
Change-Id: I6628771c79fc78dfd856649ae92232e95df63495
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9718
Reviewed-on: https://webrtc-review.googlesource.com/c/104540
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25037}
diff --git a/modules/bitrate_controller/send_side_bandwidth_estimation.h b/modules/bitrate_controller/send_side_bandwidth_estimation.h
index 2c8b4ee..54b571e 100644
--- a/modules/bitrate_controller/send_side_bandwidth_estimation.h
+++ b/modules/bitrate_controller/send_side_bandwidth_estimation.h
@@ -17,7 +17,6 @@
#include <utility>
#include <vector>
-#include "absl/types/optional.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
namespace webrtc {
@@ -33,86 +32,83 @@
void CurrentEstimate(int* bitrate, uint8_t* loss, int64_t* rtt) const;
// Call periodically to update estimate.
- void UpdateEstimate(Timestamp at_time);
+ void UpdateEstimate(int64_t now_ms);
// Call when we receive a RTCP message with TMMBR or REMB.
- void UpdateReceiverEstimate(Timestamp at_time, DataRate bandwidth);
+ void UpdateReceiverEstimate(int64_t now_ms, uint32_t bandwidth);
// Call when a new delay-based estimate is available.
- void UpdateDelayBasedEstimate(Timestamp at_time, DataRate bitrate);
+ void UpdateDelayBasedEstimate(int64_t now_ms, uint32_t bitrate_bps);
// Call when we receive a RTCP message with a ReceiveBlock.
void UpdateReceiverBlock(uint8_t fraction_loss,
- TimeDelta rtt_ms,
+ int64_t rtt_ms,
int number_of_packets,
- Timestamp at_time);
+ int64_t now_ms);
// Call when we receive a RTCP message with a ReceiveBlock.
void UpdatePacketsLost(int packets_lost,
int number_of_packets,
- Timestamp at_time);
+ int64_t now_ms);
// Call when we receive a RTCP message with a ReceiveBlock.
- void UpdateRtt(TimeDelta rtt, Timestamp at_time);
+ void UpdateRtt(int64_t rtt, int64_t now_ms);
- void SetBitrates(absl::optional<DataRate> send_bitrate,
- DataRate min_bitrate,
- DataRate max_bitrate,
- Timestamp at_time);
- void SetSendBitrate(DataRate bitrate, Timestamp at_time);
- void SetMinMaxBitrate(DataRate min_bitrate, DataRate max_bitrate);
+ 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;
private:
enum UmaState { kNoUpdate, kFirstDone, kDone };
- bool IsInStartPhase(Timestamp at_time) const;
+ bool IsInStartPhase(int64_t now_ms) const;
- void UpdateUmaStatsPacketsLost(Timestamp at_time, int packets_lost);
+ void UpdateUmaStatsPacketsLost(int64_t now_ms, int packets_lost);
// Updates history of min bitrates.
// After this method returns min_bitrate_history_.front().second contains the
// min bitrate used during last kBweIncreaseIntervalMs.
- void UpdateMinHistory(Timestamp at_time);
+ void UpdateMinHistory(int64_t now_ms);
- // Cap |bitrate| to [min_bitrate_configured_, max_bitrate_configured_] and
- // set |current_bitrate_| to the capped value and updates the event log.
- void CapBitrateToThresholds(Timestamp at_time, DataRate bitrate);
+ // Cap |bitrate_bps| to [min_bitrate_configured_, max_bitrate_configured_] and
+ // set |current_bitrate_bps_| to the capped value and updates the event log.
+ void CapBitrateToThresholds(int64_t now_ms, uint32_t bitrate_bps);
- std::deque<std::pair<Timestamp, DataRate> > min_bitrate_history_;
+ std::deque<std::pair<int64_t, uint32_t> > min_bitrate_history_;
// incoming filters
int lost_packets_since_last_loss_update_;
int expected_packets_since_last_loss_update_;
- DataRate current_bitrate_;
- DataRate min_bitrate_configured_;
- DataRate max_bitrate_configured_;
- Timestamp last_low_bitrate_log_;
+ uint32_t current_bitrate_bps_;
+ uint32_t min_bitrate_configured_;
+ uint32_t max_bitrate_configured_;
+ int64_t last_low_bitrate_log_ms_;
bool has_decreased_since_last_fraction_loss_;
- Timestamp last_loss_feedback_;
- Timestamp last_loss_packet_report_;
- Timestamp last_timeout_;
+ int64_t last_feedback_ms_;
+ int64_t last_packet_report_ms_;
+ int64_t last_timeout_ms_;
uint8_t last_fraction_loss_;
uint8_t last_logged_fraction_loss_;
- TimeDelta last_round_trip_time_;
+ int64_t last_round_trip_time_ms_;
- DataRate bwe_incoming_;
- DataRate delay_based_bitrate_;
- Timestamp time_last_decrease_;
- Timestamp first_report_time_;
+ uint32_t bwe_incoming_;
+ uint32_t delay_based_bitrate_bps_;
+ int64_t time_last_decrease_ms_;
+ int64_t first_report_time_ms_;
int initially_lost_packets_;
- DataRate bitrate_at_2_seconds_;
+ int bitrate_at_2_seconds_kbps_;
UmaState uma_update_state_;
UmaState uma_rtt_state_;
std::vector<bool> rampup_uma_stats_updated_;
RtcEventLog* event_log_;
- Timestamp last_rtc_event_log_;
+ int64_t last_rtc_event_log_ms_;
bool in_timeout_experiment_;
float low_loss_threshold_;
float high_loss_threshold_;
- DataRate bitrate_threshold_;
+ uint32_t bitrate_threshold_bps_;
};
} // namespace webrtc
#endif // MODULES_BITRATE_CONTROLLER_SEND_SIDE_BANDWIDTH_ESTIMATION_H_