Index: webrtc/video/vie_encoder.cc |
diff --git a/webrtc/video/vie_encoder.cc b/webrtc/video/vie_encoder.cc |
index bd0729c1f28425adfd4c1ebcdf1d3d6c3f446e74..e6f6776ad6f7b75d4874ad01a60b079470989689 100644 |
--- a/webrtc/video/vie_encoder.cc |
+++ b/webrtc/video/vie_encoder.cc |
@@ -17,11 +17,9 @@ |
#include "webrtc/base/checks.h" |
#include "webrtc/base/logging.h" |
#include "webrtc/base/trace_event.h" |
-#include "webrtc/call/bitrate_allocator.h" |
#include "webrtc/common_video/include/video_image.h" |
#include "webrtc/common_video/libyuv/include/webrtc_libyuv.h" |
#include "webrtc/frame_callback.h" |
-#include "webrtc/modules/bitrate_controller/include/bitrate_controller.h" |
#include "webrtc/modules/pacing/paced_sender.h" |
#include "webrtc/modules/utility/include/process_thread.h" |
#include "webrtc/modules/video_coding/include/video_codec_interface.h" |
@@ -80,22 +78,6 @@ class QMVideoSettingsCallback : public VCMQMSettingsCallback { |
VideoProcessing* vp_; |
}; |
-class ViEBitrateObserver : public BitrateObserver { |
- public: |
- explicit ViEBitrateObserver(ViEEncoder* owner) |
- : owner_(owner) { |
- } |
- virtual ~ViEBitrateObserver() {} |
- // Implements BitrateObserver. |
- virtual void OnNetworkChanged(uint32_t bitrate_bps, |
- uint8_t fraction_lost, |
- int64_t rtt) { |
- owner_->OnNetworkChanged(bitrate_bps, fraction_lost, rtt); |
- } |
- private: |
- ViEEncoder* owner_; |
-}; |
- |
ViEEncoder::ViEEncoder(uint32_t number_of_cores, |
const std::vector<uint32_t>& ssrcs, |
ProcessThread* module_process_thread, |
@@ -103,8 +85,7 @@ ViEEncoder::ViEEncoder(uint32_t number_of_cores, |
I420FrameCallback* pre_encode_callback, |
OveruseFrameDetector* overuse_detector, |
PacedSender* pacer, |
- PayloadRouter* payload_router, |
- BitrateAllocator* bitrate_allocator) |
+ PayloadRouter* payload_router) |
: number_of_cores_(number_of_cores), |
ssrcs_(ssrcs), |
vp_(VideoProcessing::Create()), |
@@ -117,7 +98,6 @@ ViEEncoder::ViEEncoder(uint32_t number_of_cores, |
overuse_detector_(overuse_detector), |
pacer_(pacer), |
send_payload_router_(payload_router), |
- bitrate_allocator_(bitrate_allocator), |
time_of_last_frame_activity_ms_(0), |
encoder_config_(), |
min_transmit_bitrate_bps_(0), |
@@ -132,7 +112,6 @@ ViEEncoder::ViEEncoder(uint32_t number_of_cores, |
has_received_rpsi_(false), |
picture_id_rpsi_(0), |
video_suspended_(false) { |
- bitrate_observer_.reset(new ViEBitrateObserver(this)); |
module_process_thread_->RegisterModule(vcm_.get()); |
} |
@@ -157,8 +136,6 @@ VideoCodingModule* ViEEncoder::vcm() const { |
ViEEncoder::~ViEEncoder() { |
module_process_thread_->DeRegisterModule(vcm_.get()); |
- if (bitrate_allocator_) |
- bitrate_allocator_->RemoveBitrateObserver(bitrate_observer_.get()); |
} |
void ViEEncoder::SetNetworkTransmissionState(bool is_transmitting) { |
@@ -202,7 +179,7 @@ void ViEEncoder::SetEncoder(const webrtc::VideoCodec& video_codec, |
vp_->SetTargetResolution(video_codec.width, video_codec.height, |
video_codec.maxFramerate)); |
- // Cache codec before calling AddBitrateObserver (which calls OnNetworkChanged |
+ // Cache codec before calling AddBitrateObserver (which calls OnBitrateUpdated |
// that makes use of the number of simulcast streams configured). |
{ |
rtc::CritScope lock(&data_cs_); |
@@ -211,18 +188,9 @@ void ViEEncoder::SetEncoder(const webrtc::VideoCodec& video_codec, |
min_transmit_bitrate_bps_ = min_transmit_bitrate_bps; |
} |
- // Add a bitrate observer to the allocator and update the start, max and |
- // min bitrates of the bitrate controller as needed. |
- int allocated_bitrate_bps = bitrate_allocator_->AddBitrateObserver( |
- bitrate_observer_.get(), video_codec.minBitrate * 1000, |
- video_codec.maxBitrate * 1000); |
- |
- webrtc::VideoCodec modified_video_codec = video_codec; |
- modified_video_codec.startBitrate = allocated_bitrate_bps / 1000; |
- |
size_t max_data_payload_length = send_payload_router_->MaxPayloadLength(); |
bool success = vcm_->RegisterSendCodec( |
- &modified_video_codec, number_of_cores_, |
+ &video_codec, number_of_cores_, |
static_cast<uint32_t>(max_data_payload_length)) == VCM_OK; |
if (!success) { |
LOG(LS_ERROR) << "Failed to configure encoder."; |
@@ -511,11 +479,10 @@ void ViEEncoder::OnReceivedIntraFrameRequest(uint32_t ssrc) { |
RTC_NOTREACHED() << "Should not receive keyframe requests on unknown SSRCs."; |
} |
-// Called from ViEBitrateObserver. |
-void ViEEncoder::OnNetworkChanged(uint32_t bitrate_bps, |
+void ViEEncoder::OnBitrateUpdated(uint32_t bitrate_bps, |
uint8_t fraction_lost, |
int64_t round_trip_time_ms) { |
- LOG(LS_VERBOSE) << "OnNetworkChanged, bitrate" << bitrate_bps |
+ LOG(LS_VERBOSE) << "OnBitrateUpdated, bitrate" << bitrate_bps |
<< " packet loss " << static_cast<int>(fraction_lost) |
<< " rtt " << round_trip_time_ms; |
RTC_DCHECK(send_payload_router_ != NULL); |
@@ -546,11 +513,6 @@ void ViEEncoder::OnNetworkChanged(uint32_t bitrate_bps, |
stats_proxy_->OnSuspendChange(video_is_suspended); |
} |
-void ViEEncoder::SuspendBelowMinBitrate() { |
- vcm_->SuspendBelowMinBitrate(); |
- bitrate_allocator_->EnforceMinBitrate(false); |
-} |
- |
void ViEEncoder::RegisterPostEncodeImageCallback( |
EncodedImageCallback* post_encode_callback) { |
vcm_->RegisterPostEncodeImageCallback(post_encode_callback); |