Avoid OpenH264 encoder bug for #threads > 1 on Mac and Chromium+Sandbox.
Until the bug has been further investigated, we're limiting the number
of threads to 1 to avoid problems. See crbug.com/583348.
BUG=chromium:500605, chromium:468365, chromium:583348
Review URL: https://codereview.webrtc.org/1677543002
Cr-Commit-Position: refs/heads/master@{#11536}
diff --git a/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc b/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc
index 281eb3d..9940260 100644
--- a/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc
+++ b/webrtc/modules/video_coding/codecs/h264/h264_encoder_impl.cc
@@ -28,15 +28,18 @@
const bool kOpenH264EncoderDetailedLogging = false;
int NumberOfThreads(int width, int height, int number_of_cores) {
- if (width * height >= 1920 * 1080 && number_of_cores > 8) {
- return 8; // 8 threads for 1080p on high perf machines.
- } else if (width * height > 1280 * 960 && number_of_cores >= 6) {
- return 3; // 3 threads for 1080p.
- } else if (width * height > 640 * 480 && number_of_cores >= 3) {
- return 2; // 2 threads for qHD/HD.
- } else {
- return 1; // 1 thread for VGA or less.
- }
+ // TODO(hbos): In Chromium, multiple threads do not work with sandbox on Mac,
+ // see crbug.com/583348. Until further investigated, only use one thread.
+// if (width * height >= 1920 * 1080 && number_of_cores > 8) {
+// return 8; // 8 threads for 1080p on high perf machines.
+// } else if (width * height > 1280 * 960 && number_of_cores >= 6) {
+// return 3; // 3 threads for 1080p.
+// } else if (width * height > 640 * 480 && number_of_cores >= 3) {
+// return 2; // 2 threads for qHD/HD.
+// } else {
+// return 1; // 1 thread for VGA or less.
+// }
+ return 1;
}
} // namespace