diff --git a/webrtc/api/java/jni/androidmediaencoder_jni.cc b/webrtc/api/java/jni/androidmediaencoder_jni.cc index 1530f003dc..69060f8508 100644 --- a/webrtc/api/java/jni/androidmediaencoder_jni.cc +++ b/webrtc/api/java/jni/androidmediaencoder_jni.cc @@ -376,15 +376,15 @@ int32_t MediaCodecVideoEncoder::InitEncode( // always = 127. Note that in SW, QP is that of the user-level range [0, // 63]. const int kLowQpThreshold = 29; - const int kBadQpThreshold = 90; + const int kBadQpThreshold = 100; quality_scaler_.Init(kLowQpThreshold, kBadQpThreshold, false, codec_settings->startBitrate, codec_settings->width, codec_settings->height, codec_settings->maxFramerate); } else if (codecType_ == kVideoCodecH264) { // H264 QP is in the range [0, 51]. - const int kLowQpThreshold = 21; - const int kBadQpThreshold = 33; + const int kLowQpThreshold = 24; + const int kBadQpThreshold = 39; quality_scaler_.Init(kLowQpThreshold, kBadQpThreshold, false, codec_settings->startBitrate, codec_settings->width, codec_settings->height, diff --git a/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc b/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc index 4ab939a4a7..abe58e3626 100644 --- a/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc +++ b/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc @@ -604,8 +604,8 @@ int VP8EncoderImpl::InitEncode(const VideoCodec* inst, // quality is good, but also low enough to not cause a flip-flop behavior // (e.g. going up in resolution shouldn't give so bad quality that we should // go back down). - const int kLowQpThreshold = 23; - const int kDisabledBadQpThreshold = 128; + const int kLowQpThreshold = 29; + const int kDisabledBadQpThreshold = 100; // TODO(glaznev/sprang): consider passing codec initial bitrate to quality // scaler to avoid starting with HD for low initial bitrates. quality_scaler_.Init(kLowQpThreshold, kDisabledBadQpThreshold, false, 0, 0, 0, diff --git a/webrtc/modules/video_coding/utility/quality_scaler.cc b/webrtc/modules/video_coding/utility/quality_scaler.cc index 42f3e287a9..0e1f1d4248 100644 --- a/webrtc/modules/video_coding/utility/quality_scaler.cc +++ b/webrtc/modules/video_coding/utility/quality_scaler.cc @@ -13,10 +13,10 @@ namespace webrtc { namespace { static const int kMinFps = 5; -static const int kMeasureSecondsDownscale = 3; // Threshold constant used until first downscale (to permit fast rampup). static const int kMeasureSecondsFastUpscale = 2; static const int kMeasureSecondsUpscale = 5; +static const int kMeasureSecondsDownscale = 5; static const int kFramedropPercentThreshold = 60; static const int kHdResolutionThreshold = 700 * 500; static const int kHdBitrateThresholdKbps = 500; diff --git a/webrtc/modules/video_coding/utility/quality_scaler_unittest.cc b/webrtc/modules/video_coding/utility/quality_scaler_unittest.cc index ecd678edb6..0f761c7d17 100644 --- a/webrtc/modules/video_coding/utility/quality_scaler_unittest.cc +++ b/webrtc/modules/video_coding/utility/quality_scaler_unittest.cc @@ -29,9 +29,9 @@ static const int kDisabledBadQpThreshold = 64; static const int kLowInitialBitrateKbps = 300; // These values need to be in sync with corresponding constants // in quality_scaler.cc -static const int kMeasureSecondsDownscale = 3; static const int kMeasureSecondsFastUpscale = 2; static const int kMeasureSecondsUpscale = 5; +static const int kMeasureSecondsDownscale = 5; static const int kMinDownscaleDimension = 140; } // namespace