WebRTC之RateStatistics

RateStatistics就是一個用於計算最近一段時間內(max_window_size_ms)的帶寬,scale是對帶寬進行縮放,目的是爲了得到bits/s爲單位的帶寬。例如max_window_size_ms是1000,那麼scale就是8000

|bucket1|bucket2|bucket3|bucket4...
  1. Update更新數據,數據第一次進來(大小和時間戳),那麼記錄此時的時間作爲最老的時間oldest_time_,第一個數據就存放在第一個桶裏面
  2. Update更新數據,之後進來的數據減去oldest_time_得到一個偏移(桶的索引值),直接存放在對應的索引值的桶裏面
  3. Update更新數據,當進來的數據時間戳相對於oldest_time_時間戳大於桶的個數時,移除最前面的數據,更新oldest_time_
  4. Rate獲取當前帶寬,根據當前的時間戳統計max_window_size_ms內的帶寬
  5. SetWindowSize設置最小一段時間內能統計的帶寬current_window_size_ms_,也就是說要達到這樣的條件:now-oldest_time_>=current_window_size_ms_
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章