| Index: webrtc/modules/video_coding/codecs/h264/h264_video_toolbox_encoder.mm
|
| diff --git a/webrtc/modules/video_coding/codecs/h264/h264_video_toolbox_encoder.mm b/webrtc/modules/video_coding/codecs/h264/h264_video_toolbox_encoder.mm
|
| index 2d1e2a1416d350e02da3db3a17f7ec00a085c206..88687136ed31fbdcdf75af27522f5ce0abe219c9 100644
|
| --- a/webrtc/modules/video_coding/codecs/h264/h264_video_toolbox_encoder.mm
|
| +++ b/webrtc/modules/video_coding/codecs/h264/h264_video_toolbox_encoder.mm
|
| @@ -33,6 +33,10 @@ namespace internal {
|
| // kVTCompressionPropertyKey_AverageBitRate. The data rate limit is set higher
|
| // than the average bit rate to avoid undershooting the target.
|
| const float kLimitToAverageBitRateFactor = 1.5f;
|
| +// These thresholds deviate from the default h264 QP thresholds, as they
|
| +// have been found to work better on devices that support VideoToolbox
|
| +const int kLowH264QpThreshold = 28;
|
| +const int kHighH264QpThreshold = 39;
|
|
|
| // Convenience function for creating a dictionary.
|
| inline CFDictionaryRef CreateCFDictionary(CFTypeRef* keys,
|
| @@ -232,8 +236,8 @@ int H264VideoToolboxEncoder::InitEncode(const VideoCodec* codec_settings,
|
| RTC_DCHECK_EQ(codec_settings->codecType, kVideoCodecH264);
|
| {
|
| rtc::CritScope lock(&quality_scaler_crit_);
|
| - quality_scaler_.Init(QualityScaler::kLowH264QpThreshold,
|
| - QualityScaler::kBadH264QpThreshold,
|
| + quality_scaler_.Init(internal::kLowH264QpThreshold,
|
| + internal::kHighH264QpThreshold,
|
| codec_settings->startBitrate, codec_settings->width,
|
| codec_settings->height, codec_settings->maxFramerate);
|
| QualityScaler::Resolution res = quality_scaler_.GetScaledResolution();
|
|
|