Remove SendPacer from ViEEncoder and make sure SendPacer starts at a valid bitrate

This reverts commit e30c27205148b34ba421184efe65f6a0780b436d (https://codereview.webrtc.org/1958053002/)

Original reverted cl is in patch set #1.
Changes in following patch sets.

The cl now also make sure SendPacer starts with the configured bitrate provided in a call to CongestionController::SetBweBitrates)()

It turns out that the failing tests in 609816 is due to a bug in the current code that runs the proper at 300kbit regardless of configured start bitrate.

Original cl description:
Remove SendPacer from ViEEncoder
This CL moves the logic where the ViEEncoder pause if the pacer is full to the BitrateController. If the queue is full, the controller reports a bitrate of zero to  Call (and BitrateAllocator)

BUG=chromium:609816, webrtc:5687
TBR=mflodman@webrtc.org
NOTRY=True  // Due to bug  in android_x86 cq builder....

Review-Url: https://codereview.webrtc.org/1958113003
Cr-Commit-Position: refs/heads/master@{#12688}
diff --git a/webrtc/modules/bitrate_controller/include/bitrate_controller.h b/webrtc/modules/bitrate_controller/include/bitrate_controller.h
index d6cbc02..a61cf6a 100644
--- a/webrtc/modules/bitrate_controller/include/bitrate_controller.h
+++ b/webrtc/modules/bitrate_controller/include/bitrate_controller.h
@@ -18,6 +18,7 @@
 #include <map>
 
 #include "webrtc/modules/include/module.h"
+#include "webrtc/modules/pacing/paced_sender.h"
 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 
 namespace webrtc {
@@ -26,6 +27,8 @@
 class RtcEventLog;
 struct PacketInfo;
 
+// Deprecated
+// TODO(perkj): Remove BitrateObserver when no implementations use it.
 class BitrateObserver {
   // Observer class for bitrate changes announced due to change in bandwidth
   // estimate or due to bitrate allocation changes. Fraction loss and rtt is
@@ -46,10 +49,15 @@
   // estimation and divide the available bitrate between all its registered
   // BitrateObservers.
  public:
-  static const int kDefaultStartBitrateKbps = 300;
+  static const int kDefaultStartBitratebps = 300000;
 
+  // Deprecated:
+  // TODO(perkj): BitrateObserver has been deprecated and is not used in WebRTC.
+  // Remove this method once other other projects does not use it.
   static BitrateController* CreateBitrateController(Clock* clock,
                                                     BitrateObserver* observer);
+  static BitrateController* CreateBitrateController(Clock* clock);
+
   virtual ~BitrateController() {}
 
   virtual RtcpBandwidthObserver* CreateRtcpBandwidthObserver() = 0;
@@ -71,6 +79,10 @@
   virtual bool AvailableBandwidth(uint32_t* bandwidth) const = 0;
 
   virtual void SetReservedBitrate(uint32_t reserved_bitrate_bps) = 0;
+
+  virtual bool GetNetworkParameters(uint32_t* bitrate,
+                                    uint8_t* fraction_loss,
+                                    int64_t* rtt) = 0;
 };
 }  // namespace webrtc
 #endif  // WEBRTC_MODULES_BITRATE_CONTROLLER_INCLUDE_BITRATE_CONTROLLER_H_