From 747c4cc96e66aee42069f4c33fd2a11ce8bcaca1 Mon Sep 17 00:00:00 2001 From: "fbarchard@google.com" Date: Mon, 1 Apr 2013 22:16:45 +0000 Subject: [PATCH] For VGA (640x360), currently 1 thread is used. This change increases it to 2 threads. For HD, 4 threads are enabled. BUG=none TEST=run a hangout and screencast high framerate, high resolution windows of youtube. Observe that 1 cpu is insufficient to maintain high framerate with complex content. Review URL: https://webrtc-codereview.appspot.com/1203006 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3747 4adac7df-926f-26a2-2b94-8c16560cd09d --- webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc b/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc index 9a57e4c5a7..2c674b33a4 100644 --- a/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc +++ b/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc @@ -226,11 +226,12 @@ int VP8EncoderImpl::InitEncode(const VideoCodec* inst, config_->g_lag_in_frames = 0; // 0- no frame lagging // Determining number of threads based on the image size - if (codec_.width * codec_.height > 704 * 576 && number_of_cores > 1) { - // 2 threads when larger than 4CIF - config_->g_threads = 2; + if (codec_.width * codec_.height > 640 * 480 && number_of_cores >= 4) { + config_->g_threads = 4; // 4 threads for qHD/HD. + } else if (codec_.width * codec_.height > 320 * 240 && number_of_cores >= 2) { + config_->g_threads = 2; // 2 threads for HVGA/VGA. } else { - config_->g_threads = 1; + config_->g_threads = 1; // 1 thread for QVGA. } // rate control settings