From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sun, 16 Dec 2018 15:24:19 +0100 Subject: AV1 codec support libaom build fixes (requires -fPIC) Report AV1 as playable on Android --- media/base/mime_util_internal.cc | 6 +++++- third_party/libaom/BUILD.gn | 6 ++++-- third_party/libaom/libaom_srcs.gni | 5 +++++ .../config/linux/arm-neon-cpu-detect/config/aom_config.asm | 2 +- .../config/linux/arm-neon-cpu-detect/config/aom_config.h | 2 +- .../source/config/linux/arm-neon/config/aom_config.asm | 2 +- .../libaom/source/config/linux/arm-neon/config/aom_config.h | 2 +- .../libaom/source/config/linux/arm/config/aom_config.asm | 2 +- .../libaom/source/config/linux/arm/config/aom_config.h | 2 +- .../libaom/source/config/linux/arm64/config/aom_config.asm | 2 +- .../libaom/source/config/linux/arm64/config/aom_config.h | 2 +- .../source/config/linux/generic/config/aom_config.asm | 2 +- .../libaom/source/config/linux/generic/config/aom_config.h | 2 +- .../libaom/source/config/linux/x64/config/aom_config.asm | 2 +- .../libaom/source/config/linux/x64/config/aom_config.h | 2 +- 15 files changed, 26 insertions(+), 15 deletions(-) diff --git a/media/base/mime_util_internal.cc b/media/base/mime_util_internal.cc --- a/media/base/mime_util_internal.cc +++ b/media/base/mime_util_internal.cc @@ -562,9 +562,13 @@ bool MimeUtil::IsCodecSupportedOnAndroid( case THEORA: return false; - // AV1 is not supported on Android yet. + // AV1 is supported on Android. case AV1: +#if BUILDFLAG(ENABLE_AV1_DECODER) + return true; +#else return false; +#endif // ---------------------------------------------------------------------- // The remaining codecs may be supported depending on platform abilities. diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn --- a/third_party/libaom/BUILD.gn +++ b/third_party/libaom/BUILD.gn @@ -74,7 +74,7 @@ if (enable_libaom_decoder) { sources = aom_dsp_common_asm_sse2 sources += aom_dsp_common_asm_ssse3 sources += aom_ports_asm_x86 - defines = [ "CHROMIUM" ] + defines = [ "CHROMIUM", "PIC" ] include_dirs = libaom_include_dirs } @@ -158,7 +158,7 @@ if (enable_libaom_decoder) { configs += [ "//build/config/compiler:no_chromium_code" ] if (current_cpu == "arm") { configs -= [ "//build/config/compiler:compiler_arm_fpu" ] - cflags = [ "-mfpu=neon" ] + cflags = [ "-mfpu=neon", "-fPIC" ] } configs += [ ":libaom_config" ] @@ -202,6 +202,8 @@ if (enable_libaom_decoder) { if (current_cpu == "arm64" || cpu_arch_full == "arm-neon" || cpu_arch_full == "arm-neon-cpu-detect") { deps += [ ":libaom_intrinsics_neon" ] + # will detect CPU + sources += aom_ports_arm_sources } if (is_android) { deps += [ "//third_party/android_ndk:cpu_features" ] diff --git a/third_party/libaom/libaom_srcs.gni b/third_party/libaom/libaom_srcs.gni --- a/third_party/libaom/libaom_srcs.gni +++ b/third_party/libaom/libaom_srcs.gni @@ -488,6 +488,11 @@ aom_mem_sources = [ aom_ports_asm_x86 = [ "//third_party/libaom/source/libaom/aom_ports/emms.asm" ] +aom_ports_arm_sources = [ + "//third_party/libaom/source/libaom/aom_ports/arm_cpudetect.c", + "//third_party/libaom/source/libaom/aom_ports/arm.h", + ] + aom_rtcd_sources = [ "//third_party/libaom/source/libaom/aom_dsp/aom_dsp_rtcd.c", "//third_party/libaom/source/libaom/aom_dsp/aom_dsp_rtcd_defs.pl", diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm --- a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm +++ b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm @@ -45,7 +45,7 @@ CONFIG_MULTITHREAD equ 1 CONFIG_NORMAL_TILE_MODE equ 1 CONFIG_ONE_PASS_SVM equ 0 CONFIG_OS_SUPPORT equ 1 -CONFIG_PIC equ 0 +CONFIG_PIC equ 1 CONFIG_RD_DEBUG equ 0 CONFIG_RUNTIME_CPU_DETECT equ 1 CONFIG_SHARED equ 0 diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h --- a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h +++ b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h @@ -47,7 +47,7 @@ #define CONFIG_NORMAL_TILE_MODE 1 #define CONFIG_ONE_PASS_SVM 0 #define CONFIG_OS_SUPPORT 1 -#define CONFIG_PIC 0 +#define CONFIG_PIC 1 #define CONFIG_RD_DEBUG 0 #define CONFIG_RUNTIME_CPU_DETECT 1 #define CONFIG_SHARED 0 diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm --- a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm +++ b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm @@ -45,7 +45,7 @@ CONFIG_MULTITHREAD equ 1 CONFIG_NORMAL_TILE_MODE equ 1 CONFIG_ONE_PASS_SVM equ 0 CONFIG_OS_SUPPORT equ 1 -CONFIG_PIC equ 0 +CONFIG_PIC equ 1 CONFIG_RD_DEBUG equ 0 CONFIG_RUNTIME_CPU_DETECT equ 0 CONFIG_SHARED equ 0 diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h --- a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h +++ b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h @@ -47,7 +47,7 @@ #define CONFIG_NORMAL_TILE_MODE 1 #define CONFIG_ONE_PASS_SVM 0 #define CONFIG_OS_SUPPORT 1 -#define CONFIG_PIC 0 +#define CONFIG_PIC 1 #define CONFIG_RD_DEBUG 0 #define CONFIG_RUNTIME_CPU_DETECT 0 #define CONFIG_SHARED 0 diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.asm b/third_party/libaom/source/config/linux/arm/config/aom_config.asm --- a/third_party/libaom/source/config/linux/arm/config/aom_config.asm +++ b/third_party/libaom/source/config/linux/arm/config/aom_config.asm @@ -45,7 +45,7 @@ CONFIG_MULTITHREAD equ 1 CONFIG_NORMAL_TILE_MODE equ 1 CONFIG_ONE_PASS_SVM equ 0 CONFIG_OS_SUPPORT equ 1 -CONFIG_PIC equ 0 +CONFIG_PIC equ 1 CONFIG_RD_DEBUG equ 0 CONFIG_RUNTIME_CPU_DETECT equ 0 CONFIG_SHARED equ 0 diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.h b/third_party/libaom/source/config/linux/arm/config/aom_config.h --- a/third_party/libaom/source/config/linux/arm/config/aom_config.h +++ b/third_party/libaom/source/config/linux/arm/config/aom_config.h @@ -47,7 +47,7 @@ #define CONFIG_NORMAL_TILE_MODE 1 #define CONFIG_ONE_PASS_SVM 0 #define CONFIG_OS_SUPPORT 1 -#define CONFIG_PIC 0 +#define CONFIG_PIC 1 #define CONFIG_RD_DEBUG 0 #define CONFIG_RUNTIME_CPU_DETECT 0 #define CONFIG_SHARED 0 diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm b/third_party/libaom/source/config/linux/arm64/config/aom_config.asm --- a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm +++ b/third_party/libaom/source/config/linux/arm64/config/aom_config.asm @@ -45,7 +45,7 @@ CONFIG_MULTITHREAD equ 1 CONFIG_NORMAL_TILE_MODE equ 1 CONFIG_ONE_PASS_SVM equ 0 CONFIG_OS_SUPPORT equ 1 -CONFIG_PIC equ 0 +CONFIG_PIC equ 1 CONFIG_RD_DEBUG equ 0 CONFIG_RUNTIME_CPU_DETECT equ 0 CONFIG_SHARED equ 0 diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.h b/third_party/libaom/source/config/linux/arm64/config/aom_config.h --- a/third_party/libaom/source/config/linux/arm64/config/aom_config.h +++ b/third_party/libaom/source/config/linux/arm64/config/aom_config.h @@ -47,7 +47,7 @@ #define CONFIG_NORMAL_TILE_MODE 1 #define CONFIG_ONE_PASS_SVM 0 #define CONFIG_OS_SUPPORT 1 -#define CONFIG_PIC 0 +#define CONFIG_PIC 1 #define CONFIG_RD_DEBUG 0 #define CONFIG_RUNTIME_CPU_DETECT 0 #define CONFIG_SHARED 0 diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.asm b/third_party/libaom/source/config/linux/generic/config/aom_config.asm --- a/third_party/libaom/source/config/linux/generic/config/aom_config.asm +++ b/third_party/libaom/source/config/linux/generic/config/aom_config.asm @@ -45,7 +45,7 @@ CONFIG_MULTITHREAD equ 1 CONFIG_NORMAL_TILE_MODE equ 1 CONFIG_ONE_PASS_SVM equ 0 CONFIG_OS_SUPPORT equ 1 -CONFIG_PIC equ 0 +CONFIG_PIC equ 1 CONFIG_RD_DEBUG equ 0 CONFIG_RUNTIME_CPU_DETECT equ 1 CONFIG_SHARED equ 0 diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.h b/third_party/libaom/source/config/linux/generic/config/aom_config.h --- a/third_party/libaom/source/config/linux/generic/config/aom_config.h +++ b/third_party/libaom/source/config/linux/generic/config/aom_config.h @@ -47,7 +47,7 @@ #define CONFIG_NORMAL_TILE_MODE 1 #define CONFIG_ONE_PASS_SVM 0 #define CONFIG_OS_SUPPORT 1 -#define CONFIG_PIC 0 +#define CONFIG_PIC 1 #define CONFIG_RD_DEBUG 0 #define CONFIG_RUNTIME_CPU_DETECT 1 #define CONFIG_SHARED 0 diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.asm b/third_party/libaom/source/config/linux/x64/config/aom_config.asm --- a/third_party/libaom/source/config/linux/x64/config/aom_config.asm +++ b/third_party/libaom/source/config/linux/x64/config/aom_config.asm @@ -35,7 +35,7 @@ %define CONFIG_NORMAL_TILE_MODE 1 %define CONFIG_ONE_PASS_SVM 0 %define CONFIG_OS_SUPPORT 1 -%define CONFIG_PIC 0 +%define CONFIG_PIC 1 %define CONFIG_RD_DEBUG 0 %define CONFIG_RUNTIME_CPU_DETECT 1 %define CONFIG_SHARED 0 diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.h b/third_party/libaom/source/config/linux/x64/config/aom_config.h --- a/third_party/libaom/source/config/linux/x64/config/aom_config.h +++ b/third_party/libaom/source/config/linux/x64/config/aom_config.h @@ -47,7 +47,7 @@ #define CONFIG_NORMAL_TILE_MODE 1 #define CONFIG_ONE_PASS_SVM 0 #define CONFIG_OS_SUPPORT 1 -#define CONFIG_PIC 0 +#define CONFIG_PIC 1 #define CONFIG_RD_DEBUG 0 #define CONFIG_RUNTIME_CPU_DETECT 1 #define CONFIG_SHARED 0 -- 2.17.1