Index: webrtc/modules/video_coding/video_coding_impl.h |
diff --git a/webrtc/modules/video_coding/video_coding_impl.h b/webrtc/modules/video_coding/video_coding_impl.h |
index f6e53063fb3256768014ba380984959296a7c427..b5d04c4a68246b9655375be0ae71143857112a50 100644 |
--- a/webrtc/modules/video_coding/video_coding_impl.h |
+++ b/webrtc/modules/video_coding/video_coding_impl.h |
@@ -35,6 +35,7 @@ |
namespace webrtc { |
class VideoBitrateAllocator; |
+class VideoBitrateAllocationObserver; |
namespace vcm { |
@@ -79,14 +80,23 @@ class VideoSender : public Module { |
int Bitrate(unsigned int* bitrate) const; |
int FrameRate(unsigned int* framerate) const; |
- int32_t SetChannelParameters(uint32_t target_bitrate_bps, |
- uint8_t lossRate, |
- int64_t rtt, |
- VideoBitrateAllocator* bitrate_allocator); |
- // Updates the channel parameters, with a reallocated bitrate based on a |
- // presumably updated codec configuration, but does not update the encoder |
- // itself (it will be updated on the next frame). |
- void UpdateChannelParemeters(VideoBitrateAllocator* bitrate_allocator); |
+ // Update the channel parameters based on new rates and rtt. This will also |
+ // cause an immediate call to VideoEncoder::SetRateAllocation(). |
+ int32_t SetChannelParameters( |
+ uint32_t target_bitrate_bps, |
+ uint8_t loss_rate, |
+ int64_t rtt, |
+ VideoBitrateAllocator* bitrate_allocator, |
+ VideoBitrateAllocationObserver* bitrate_updated_callback); |
+ |
+ // Updates the channel parameters with a new bitrate allocation, but using the |
+ // current targit_bitrate, loss rate and rtt. That is, the distribution or |
+ // caps may be updated to a change to a new VideoCodec or allocation mode. |
+ // The new parameters will be stored as pending EncoderParameters, and the |
+ // encoder will only be updated on the next frame. |
+ void UpdateChannelParemeters( |
+ VideoBitrateAllocator* bitrate_allocator, |
+ VideoBitrateAllocationObserver* bitrate_updated_callback); |
// Deprecated: |
// TODO(perkj): Remove once no projects use it. |