| Index: content/renderer/media/video_track_recorder.cc
|
| diff --git a/content/renderer/media/video_track_recorder.cc b/content/renderer/media/video_track_recorder.cc
|
| index 82ae3ea9ba7dc9ed25e19f9277f1e0fd758de253..b9d2e0f72d4c5aa68d1952d6a6a6054c17f5ed78 100644
|
| --- a/content/renderer/media/video_track_recorder.cc
|
| +++ b/content/renderer/media/video_track_recorder.cc
|
| @@ -260,9 +260,8 @@ void VideoTrackRecorder::VpxEncoder::ConfigureEncoding(const gfx::Size& size) {
|
|
|
| const vpx_codec_iface_t* interface =
|
| use_vp9_ ? vpx_codec_vp9_cx() : vpx_codec_vp8_cx();
|
| - const vpx_codec_err_t result = vpx_codec_enc_config_default(interface,
|
| - &codec_config_,
|
| - 0 /* reserved */);
|
| + vpx_codec_err_t result =
|
| + vpx_codec_enc_config_default(interface, &codec_config_, 0 /* reserved */);
|
| DCHECK_EQ(VPX_CODEC_OK, result);
|
|
|
| DCHECK_EQ(320u, codec_config_.g_w);
|
| @@ -325,6 +324,17 @@ void VideoTrackRecorder::VpxEncoder::ConfigureEncoding(const gfx::Size& size) {
|
| const vpx_codec_err_t ret = vpx_codec_enc_init(encoder_.get(), interface,
|
| &codec_config_, kNoFlags);
|
| DCHECK_EQ(VPX_CODEC_OK, ret);
|
| +
|
| + if (use_vp9_) {
|
| + // Values of VP8E_SET_CPUUSED greater than 0 will increase encoder speed at
|
| + // the expense of quality up to a maximum value of 8 for VP9, by tuning the
|
| + // target time spent encoding the frame. Go from 8 to 5 (values for real
|
| + // time encoding) depending on the amount of cores available in the system.
|
| + const int kCpuUsed =
|
| + std::max(5, 8 - base::SysInfo::NumberOfProcessors() / 2);
|
| + result = vpx_codec_control(encoder_.get(), VP8E_SET_CPUUSED, kCpuUsed);
|
| + DLOG_IF(WARNING, VPX_CODEC_OK != result) << "VP8E_SET_CPUUSED failed";
|
| + }
|
| }
|
|
|
| bool VideoTrackRecorder::VpxEncoder::IsInitialized() const {
|
|
|