Index: webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc |
diff --git a/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc b/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc |
index 4c9a37cbf863aedb51054ef64b689a7857a6e203..8777375996fab2975881d874509168047ae790e2 100644 |
--- a/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc |
+++ b/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc |
@@ -633,6 +633,20 @@ int VP8EncoderImpl::SetCpuSpeed(int width, int height) { |
} |
int VP8EncoderImpl::NumberOfThreads(int width, int height, int cpus) { |
+#if defined(ANDROID) |
+ if (width * height >= 320 * 180) { |
+ if (cpus >= 4) { |
+ // 3 threads for CPUs with 4 and more cores since most of times only 4 |
+ // cores will be active. |
+ return 3; |
+ } else if (cpus == 3 || cpus == 2) { |
+ return 2; |
+ } else { |
+ return 1; |
+ } |
+ } |
+ return 1; |
+#else |
if (width * height >= 1920 * 1080 && cpus > 8) { |
return 8; // 8 threads for 1080p on high perf machines. |
} else if (width * height > 1280 * 960 && cpus >= 6) { |
@@ -645,6 +659,7 @@ int VP8EncoderImpl::NumberOfThreads(int width, int height, int cpus) { |
// 1 thread for VGA or less. |
return 1; |
} |
+#endif |
} |
int VP8EncoderImpl::InitAndSetControlSettings() { |