Index: webrtc/video/vie_encoder.cc |
diff --git a/webrtc/video/vie_encoder.cc b/webrtc/video/vie_encoder.cc |
index b149db73bf009e767773d24793e834eb4155cf7c..eaf693af169392883496a2f7fff370029248b433 100644 |
--- a/webrtc/video/vie_encoder.cc |
+++ b/webrtc/video/vie_encoder.cc |
@@ -42,10 +42,6 @@ |
const int kMinPixelsPerFrame = 120 * 90; |
#endif |
-// The maximum number of frames to drop at beginning of stream |
-// to try and achieve desired bitrate. |
-const int kMaxInitialFramedrop = 4; |
- |
// TODO(pbos): Lower these thresholds (to closer to 100%) when we handle |
// pipelining encoders better (multiple input frames before something comes |
// out). This should effectively turn off CPU adaptations for systems that |
@@ -57,17 +53,6 @@ |
options.high_encode_usage_threshold_percent = 200; |
} |
return options; |
-} |
- |
-uint32_t MaximumFrameSizeForBitrate(uint32_t kbps) { |
- if (kbps > 0) { |
- if (kbps < 300 /* qvga */) { |
- return 320 * 240; |
- } else if (kbps < 500 /* vga */) { |
- return 640 * 480; |
- } |
- } |
- return std::numeric_limits<uint32_t>::max(); |
} |
} // namespace |
@@ -259,7 +244,6 @@ |
EncodedFrameObserver* encoder_timing) |
: shutdown_event_(true /* manual_reset */, false), |
number_of_cores_(number_of_cores), |
- initial_rampup_(0), |
source_proxy_(new VideoSourceProxy(this)), |
sink_(nullptr), |
settings_(settings), |
@@ -357,8 +341,8 @@ |
RTC_DCHECK_RUN_ON(&encoder_queue_); |
scaling_enabled_ = (degradation_preference != |
VideoSendStream::DegradationPreference::kMaintainResolution); |
- initial_rampup_ = scaling_enabled_ ? 0 : kMaxInitialFramedrop; |
- ConfigureQualityScaler(); |
+ stats_proxy_->SetResolutionRestrictionStats( |
+ scaling_enabled_, scale_counter_[kCpu] > 0, scale_counter_[kQuality]); |
}); |
} |
@@ -453,14 +437,8 @@ |
sink_->OnEncoderConfigurationChanged( |
std::move(streams), encoder_config_.min_transmit_bitrate_bps); |
- ConfigureQualityScaler(); |
-} |
- |
-void ViEEncoder::ConfigureQualityScaler() { |
- RTC_DCHECK_RUN_ON(&encoder_queue_); |
const auto scaling_settings = settings_.encoder->GetScalingSettings(); |
if (scaling_enabled_ && scaling_settings.enabled) { |
- // Drop frames and scale down until desired quality is achieved. |
if (scaling_settings.thresholds) { |
quality_scaler_.reset( |
new QualityScaler(this, *(scaling_settings.thresholds))); |
@@ -469,9 +447,9 @@ |
} |
} else { |
quality_scaler_.reset(nullptr); |
- } |
- stats_proxy_->SetResolutionRestrictionStats( |
- scaling_enabled_, scale_counter_[kCpu] > 0, scale_counter_[kQuality]); |
+ stats_proxy_->SetResolutionRestrictionStats( |
+ false, scale_counter_[kCpu] > 0, scale_counter_[kQuality]); |
+ } |
} |
void ViEEncoder::OnFrame(const VideoFrame& video_frame) { |
@@ -567,16 +545,6 @@ |
<< ", texture=" << last_frame_info_->is_texture; |
} |
- if (initial_rampup_ < kMaxInitialFramedrop && |
- video_frame.size() > |
- MaximumFrameSizeForBitrate(encoder_start_bitrate_bps_ / 1000)) { |
- LOG(LS_INFO) << "Dropping frame. Too large for target bitrate."; |
- ScaleDown(kQuality); |
- ++initial_rampup_; |
- return; |
- } |
- initial_rampup_ = kMaxInitialFramedrop; |
- |
int64_t now_ms = clock_->TimeInMilliseconds(); |
if (pending_encoder_reconfiguration_) { |
ReconfigureEncoder(); |