Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(277)

Unified Diff: webrtc/video/vie_encoder.cc

Issue 1785283002: Move BitrateAllocator reference from ViEEncoder to VideoSendStream. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Comment changes. Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/video/vie_encoder.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « webrtc/video/vie_encoder.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698