Chromium Code Reviews| 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 |