82 lines
2.8 KiB
Diff
82 lines
2.8 KiB
Diff
|
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||
|
Date: Sat, 20 Jan 2018 21:17:27 +0100
|
||
|
Subject: openH264: enable ARM/ARM64 optimizations
|
||
|
|
||
|
Enable the optimizations not only for ChromeOS but for all compatbile ARM/ARM64 architectures
|
||
|
Limit threads auto-detect only for iOS
|
||
|
|
||
|
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||
|
---
|
||
|
.../modules/mediarecorder/h264_encoder.cc | 6 ++---
|
||
|
third_party/openh264/BUILD.gn | 24 ++++++++++++++-----
|
||
|
2 files changed, 21 insertions(+), 9 deletions(-)
|
||
|
|
||
|
diff --git a/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc b/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc
|
||
|
--- a/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc
|
||
|
+++ b/third_party/blink/renderer/modules/mediarecorder/h264_encoder.cc
|
||
|
@@ -223,11 +223,11 @@ bool H264Encoder::ConfigureEncoder(const gfx::Size& size) {
|
||
|
init_params.iRCMode = RC_OFF_MODE;
|
||
|
}
|
||
|
|
||
|
-#if BUILDFLAG(IS_CHROMEOS)
|
||
|
- init_params.iMultipleThreadIdc = 0;
|
||
|
-#else
|
||
|
+#if BUILDFLAG(IS_MAC)
|
||
|
// Threading model: Set to 1 due to https://crbug.com/583348.
|
||
|
init_params.iMultipleThreadIdc = 1;
|
||
|
+#else
|
||
|
+ init_params.iMultipleThreadIdc = 0;
|
||
|
#endif
|
||
|
|
||
|
// TODO(mcasas): consider reducing complexity if there are few CPUs available.
|
||
|
diff --git a/third_party/openh264/BUILD.gn b/third_party/openh264/BUILD.gn
|
||
|
--- a/third_party/openh264/BUILD.gn
|
||
|
+++ b/third_party/openh264/BUILD.gn
|
||
|
@@ -131,8 +131,12 @@ if (use_assembler) {
|
||
|
|
||
|
source_set("common") {
|
||
|
sources = openh264_common_sources
|
||
|
- if (is_chromeos && current_cpu == "arm") {
|
||
|
- sources += openh264_common_sources_asm_arm
|
||
|
+ if (is_chromeos || is_android) {
|
||
|
+ if (current_cpu == "arm") {
|
||
|
+ sources += openh264_common_sources_asm_arm
|
||
|
+ } else if (current_cpu == "arm64") {
|
||
|
+ sources += openh264_common_sources_asm_arm64
|
||
|
+ }
|
||
|
}
|
||
|
include_dirs = openh264_common_include_dirs
|
||
|
|
||
|
@@ -157,8 +161,12 @@ source_set("common") {
|
||
|
|
||
|
source_set("processing") {
|
||
|
sources = openh264_processing_sources
|
||
|
- if (is_chromeos && current_cpu == "arm") {
|
||
|
- sources += openh264_processing_sources_asm_arm
|
||
|
+ if (is_chromeos || is_android) {
|
||
|
+ if (current_cpu == "arm") {
|
||
|
+ sources += openh264_processing_sources_asm_arm
|
||
|
+ } else if (current_cpu == "arm64") {
|
||
|
+ sources += openh264_processing_sources_asm_arm64
|
||
|
+ }
|
||
|
}
|
||
|
include_dirs = openh264_processing_include_dirs
|
||
|
|
||
|
@@ -174,8 +182,12 @@ source_set("processing") {
|
||
|
|
||
|
source_set("encoder") {
|
||
|
sources = openh264_encoder_sources
|
||
|
- if (is_chromeos && current_cpu == "arm") {
|
||
|
- sources += openh264_encoder_sources_asm_arm
|
||
|
+ if (is_chromeos || is_android) {
|
||
|
+ if (current_cpu == "arm") {
|
||
|
+ sources += openh264_encoder_sources_asm_arm
|
||
|
+ } else if (current_cpu == "arm64") {
|
||
|
+ sources += openh264_encoder_sources_asm_arm64
|
||
|
+ }
|
||
|
}
|
||
|
include_dirs = openh264_encoder_include_dirs
|
||
|
|
||
|
--
|
||
|
2.25.1
|