Unify hardware and software QP thresholds.
Uses current libvpx (slightly older) thresholds to maintain a larger
window of stable QP, but maintains the newer H264 thresholds.
BUG=
R=glaznev@webrtc.org, mflodman@webrtc.org
Review-Url: https://codereview.webrtc.org/1966213002
Cr-Commit-Position: refs/heads/master@{#12734}
diff --git a/webrtc/api/java/jni/androidmediaencoder_jni.cc b/webrtc/api/java/jni/androidmediaencoder_jni.cc
index cffc0d1..6a1c581 100644
--- a/webrtc/api/java/jni/androidmediaencoder_jni.cc
+++ b/webrtc/api/java/jni/androidmediaencoder_jni.cc
@@ -388,21 +388,13 @@
if (scale_) {
if (codecType_ == kVideoCodecVP8) {
- // QP is obtained from VP8-bitstream for HW, so the QP corresponds to the
- // (internal) range: [0, 127]. And we cannot change QP_max in HW, so it is
- // always = 127. Note that in SW, QP is that of the user-level range [0,
- // 63].
- const int kLowQpThreshold = 29;
- const int kBadQpThreshold = 90;
- quality_scaler_.Init(kLowQpThreshold, kBadQpThreshold,
- codec_settings->startBitrate, codec_settings->width,
- codec_settings->height,
- codec_settings->maxFramerate);
+ quality_scaler_.Init(
+ QualityScaler::kLowVp8QpThreshold, QualityScaler::kBadVp8QpThreshold,
+ 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 = 22;
- const int kBadQpThreshold = 35;
- quality_scaler_.Init(kLowQpThreshold, kBadQpThreshold,
+ quality_scaler_.Init(QualityScaler::kLowH264QpThreshold,
+ QualityScaler::kBadH264QpThreshold,
codec_settings->startBitrate, codec_settings->width,
codec_settings->height,
codec_settings->maxFramerate);