Implement minimum transmit bitrate.
Utilizing minimum transmission bitrate prevents low remote bitrate
estimates (bitrate estimation dips) when encoding non-complex content
such as screenshare of a static image even though there's nothing wrong
with the link.
Requires pacing to be enabled for now, pending issue 3036.
BUG=3014
R=mflodman@webrtc.org, stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/9719004
git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@5694 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/video_engine/vie_encoder.h b/video_engine/vie_encoder.h
index d3271c3..8e22ecf 100644
--- a/video_engine/vie_encoder.h
+++ b/video_engine/vie_encoder.h
@@ -20,6 +20,7 @@
#include "webrtc/modules/video_coding/main/interface/video_coding_defines.h"
#include "webrtc/modules/video_processing/main/interface/video_processing.h"
#include "webrtc/system_wrappers/interface/scoped_ptr.h"
+#include "webrtc/system_wrappers/interface/thread_annotations.h"
#include "webrtc/typedefs.h"
#include "webrtc/frame_callback.h"
#include "webrtc/video_engine/vie_defines.h"
@@ -154,6 +155,8 @@
// Sets SSRCs for all streams.
bool SetSsrcs(const std::list<unsigned int>& ssrcs);
+ void SetMinTransmitBitrate(int min_transmit_bitrate_kbps);
+
// Effect filter.
int32_t RegisterEffectFilter(ViEEffectFilter* effect_filter);
@@ -207,6 +210,7 @@
int64_t time_of_last_incoming_frame_ms_;
bool send_padding_;
+ int min_transmit_bitrate_kbps_ GUARDED_BY(data_cs_);
int target_delay_ms_;
bool network_is_transmitting_;
bool encoder_paused_;
@@ -216,7 +220,7 @@
bool fec_enabled_;
bool nack_enabled_;
- ViEEncoderObserver* codec_observer_;
+ ViEEncoderObserver* codec_observer_ GUARDED_BY(callback_cs_);
ViEEffectFilter* effect_filter_;
ProcessThread& module_process_thread_;