| Index: webrtc/modules/video_coding/utility/quality_scaler.cc
|
| diff --git a/webrtc/modules/video_coding/utility/quality_scaler.cc b/webrtc/modules/video_coding/utility/quality_scaler.cc
|
| index 5b2e94b88d53e85dd36c3b30da7c4b33a5c298a8..30a5776b2d05b6d92495e67dfb75743972809854 100644
|
| --- a/webrtc/modules/video_coding/utility/quality_scaler.cc
|
| +++ b/webrtc/modules/video_coding/utility/quality_scaler.cc
|
| @@ -30,12 +30,10 @@ static const int kQvgaBitrateThresholdKbps = 250;
|
| static const int kQvgaNumPixels = 400 * 300; // 320x240
|
| } // namespace
|
|
|
| -QualityScaler::QualityScaler()
|
| - : low_qp_threshold_(-1), framerate_down_(false) {}
|
| +QualityScaler::QualityScaler() : low_qp_threshold_(-1) {}
|
|
|
| void QualityScaler::Init(int low_qp_threshold,
|
| int high_qp_threshold,
|
| - bool use_framerate_reduction,
|
| int initial_bitrate_kbps,
|
| int width,
|
| int height,
|
| @@ -43,7 +41,6 @@ void QualityScaler::Init(int low_qp_threshold,
|
| ClearSamples();
|
| low_qp_threshold_ = low_qp_threshold;
|
| high_qp_threshold_ = high_qp_threshold;
|
| - use_framerate_reduction_ = use_framerate_reduction;
|
| downscale_shift_ = 0;
|
| // Use a faster window for upscaling initially (but be more graceful later).
|
| // This enables faster initial rampups without risking strong up-down
|
| @@ -65,7 +62,6 @@ void QualityScaler::Init(int low_qp_threshold,
|
| }
|
| UpdateTargetResolution(init_width, init_height);
|
| ReportFramerate(fps);
|
| - target_framerate_ = -1;
|
| }
|
|
|
| // Report framerate(fps) to estimate # of samples.
|
| @@ -94,34 +90,14 @@ void QualityScaler::OnEncodeFrame(const VideoFrame& frame) {
|
| int avg_drop = 0;
|
| int avg_qp = 0;
|
|
|
| - // When encoder consistently overshoots, framerate reduction and spatial
|
| - // resizing will be triggered to get a smoother video.
|
| if ((framedrop_percent_.GetAverage(num_samples_downscale_, &avg_drop) &&
|
| avg_drop >= kFramedropPercentThreshold) ||
|
| (average_qp_downscale_.GetAverage(num_samples_downscale_, &avg_qp) &&
|
| avg_qp > high_qp_threshold_)) {
|
| - // Reducing frame rate before spatial resolution change.
|
| - // Reduce frame rate only when it is above a certain number.
|
| - // Only one reduction is allowed for now.
|
| - // TODO(jackychen): Allow more than one framerate reduction.
|
| - if (use_framerate_reduction_ && !framerate_down_ && framerate_ >= 20) {
|
| - target_framerate_ = framerate_ / 2;
|
| - framerate_down_ = true;
|
| - // If frame rate has been updated, clear the buffer. We don't want
|
| - // spatial resolution to change right after frame rate change.
|
| - ClearSamples();
|
| - } else {
|
| - AdjustScale(false);
|
| - }
|
| + AdjustScale(false);
|
| } else if (average_qp_upscale_.GetAverage(num_samples_upscale_, &avg_qp) &&
|
| avg_qp <= low_qp_threshold_) {
|
| - if (use_framerate_reduction_ && framerate_down_) {
|
| - target_framerate_ = -1;
|
| - framerate_down_ = false;
|
| - ClearSamples();
|
| - } else {
|
| - AdjustScale(true);
|
| - }
|
| + AdjustScale(true);
|
| }
|
| UpdateTargetResolution(frame.width(), frame.height());
|
| }
|
| @@ -130,10 +106,6 @@ QualityScaler::Resolution QualityScaler::GetScaledResolution() const {
|
| return res_;
|
| }
|
|
|
| -int QualityScaler::GetTargetFramerate() const {
|
| - return target_framerate_;
|
| -}
|
| -
|
| const VideoFrame& QualityScaler::GetScaledFrame(const VideoFrame& frame) {
|
| Resolution res = GetScaledResolution();
|
| if (res.width == frame.width())
|
|
|