Index: webrtc/common_types.h |
diff --git a/webrtc/common_types.h b/webrtc/common_types.h |
index b1842ef59598e78e86f99f71d495661b0d1a9483..1217c2427b4de9e4d38f1a4a0c0d304f4401828a 100644 |
--- a/webrtc/common_types.h |
+++ b/webrtc/common_types.h |
@@ -524,7 +524,7 @@ struct VideoCodecVP8 { |
bool automaticResizeOn; |
bool frameDroppingOn; |
int keyFrameInterval; |
- const TemporalLayersFactory* tl_factory; |
+ TemporalLayersFactory* tl_factory; |
}; |
// VP9 specific. |
@@ -622,6 +622,35 @@ struct VideoCodec { |
bool operator!=(const VideoCodec& other) const = delete; |
}; |
+class BitrateAllocation { |
+ public: |
+ static constexpr size_t kMaxBitrateBps = 100000000; |
perkj_webrtc
2016/10/27 12:57:31
nit : add comment 100 Mbit/s
sprang_webrtc
2016/11/01 18:03:16
Done.
|
+ BitrateAllocation(); |
+ |
+ bool SetBitrate(size_t spatial_index, |
+ size_t temporal_index, |
+ uint32_t bitrate_bps); |
+ |
+ uint32_t GetBitrate(size_t spatial_index, size_t temporal_index) const; |
+ |
+ // Get the sum of all the temporal layer for a specific spatial layer. |
+ uint32_t GetSpatialLayerSum(size_t spatial_index) const; |
+ |
+ uint32_t get_sum_bps() const { return sum_; } // Sum of all bitrates. |
+ uint32_t get_sum_kbps() const { return (sum_ + 500) / 1000; } |
+ |
+ inline bool operator==(const BitrateAllocation& other) const { |
+ return memcmp(bitrates_, other.bitrates_, sizeof(bitrates_)) == 0; |
+ } |
+ inline bool operator!=(const BitrateAllocation& other) const { |
+ return !(*this == other); |
+ } |
+ |
+ private: |
+ uint32_t sum_; |
+ uint32_t bitrates_[kMaxSpatialLayers][kMaxTemporalStreams]; |
+}; |
+ |
// Bandwidth over-use detector options. These are used to drive |
// experimentation with bandwidth estimation parameters. |
// See modules/remote_bitrate_estimator/overuse_detector.h |