Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(652)

Unified Diff: webrtc/modules/audio_coding/codecs/opus/opus/BUILD.gn

Issue 1612443002: Create local copy of Opus v1.1.2 Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: testing if neteq4_opus_network_stats.dat.sha1 needs to be updated Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/audio_coding/codecs/opus/opus/BUILD.gn
diff --git a/webrtc/modules/audio_coding/codecs/opus/opus/BUILD.gn b/webrtc/modules/audio_coding/codecs/opus/opus/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..0eee3924f44e557260a07155867621da636ec512
--- /dev/null
+++ b/webrtc/modules/audio_coding/codecs/opus/opus/BUILD.gn
@@ -0,0 +1,273 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/arm.gni")
+import("//testing/test.gni")
+
+# If fixed point implementation shall be used (otherwise float).
+use_opus_fixed_point = current_cpu == "arm" || current_cpu == "arm64"
+
+# If ARM optimizations shall be used to accelerate performance.
+use_opus_arm_optimization = current_cpu == "arm"
+
+# If OPUS Run Time CPU Detections (RTCD) shall be used.
+# Based on the conditions in celt/arm/armcpu.c:
+# defined(_MSC_VER) || defined(__linux__).
+use_opus_rtcd = current_cpu == "arm" && (is_win || is_android || is_linux)
+
+config("opus_config") {
+ include_dirs = [ "src/include" ]
+
+ if (use_opus_fixed_point) {
+ defines = [ "OPUS_FIXED_POINT" ]
+ }
+}
+
+config("opus_test_config") {
+ include_dirs = [
+ "src/celt",
+ "src/silk",
+ ]
+
+ if (is_win) {
+ defines = [ "inline=__inline" ]
+ }
+ if (is_android) {
+ libs = [ "log" ]
+ }
+ if (is_clang) {
+ cflags = [ "-Wno-absolute-value" ]
+ }
+}
+
+if (use_opus_rtcd) {
+ action("convert_rtcd_assembler") {
+ script = "convert_rtcd_assembler.py"
+ outputs = [
+ "$target_gen_dir/celt_pitch_xcorr_arm_gnu.S",
+ ]
+ args = [
+ rebase_path("//third_party/opus/src/celt/arm/arm2gnu.pl", root_build_dir),
+ rebase_path("//third_party/opus/src/celt/arm/celt_pitch_xcorr_arm.s",
+ root_build_dir),
+ rebase_path("$target_gen_dir/celt_pitch_xcorr_arm_gnu.S", root_build_dir),
+ ]
+ }
+}
+
+source_set("opus") {
+ gypi_values = exec_script("//build/gypi_to_gn.py",
+ [ rebase_path("opus_srcs.gypi") ],
+ "scope",
+ [ "opus_srcs.gypi" ])
+ sources = gypi_values.opus_common_sources
+
+ defines = [
+ "OPUS_BUILD",
+ "OPUS_EXPORT=",
+ ]
+
+ include_dirs = [
+ "src/celt",
+ "src/silk",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [ "//build/config/compiler:no_chromium_code" ]
+ public_configs = [ ":opus_config" ]
+
+ if (is_win) {
+ defines += [
+ "USE_ALLOCA",
+ "inline=__inline",
+ ]
+
+ cflags = [
+ "/wd4305", # Disable truncation warning in celt/pitch.c .
+ "/wd4334", # Disable 32-bit shift warning in src/opus_encoder.c .
+ ]
+ } else {
+ defines += [
+ "HAVE_LRINT",
+ "HAVE_LRINTF",
+ "VAR_ARRAYS",
+ ]
+ }
+
+ if (is_posix && !is_android) {
+ # Suppress a warning given by opus_decoder.c that tells us
+ # optimizations are turned off.
+ cflags = [ "-Wno-#pragma-messages" ]
+ }
+
+ if (!is_debug && is_posix &&
+ (current_cpu == "arm" || current_cpu == "arm64")) {
+ configs -= [ "//build/config/compiler:default_optimization" ]
+ configs += [ "//build/config/compiler:optimize_max" ]
+ }
+
+ if (use_opus_fixed_point) {
+ sources += gypi_values.opus_fixed_sources
+
+ defines += [ "FIXED_POINT" ]
+
+ include_dirs += [ "src/silk/fixed" ]
+ } else {
+ sources += gypi_values.opus_float_sources
+
+ include_dirs += [ "src/silk/float" ]
+ }
+
+ if (use_opus_arm_optimization) {
+ sources += [
+ "src/celt/arm/fixed_armv4.h",
+ "src/celt/arm/fixed_armv5e.h",
+ "src/celt/arm/kiss_fft_armv4.h",
+ "src/celt/arm/kiss_fft_armv5e.h",
+ "src/celt/pitch_arm.h",
+ "src/silk/arm/SigProc_FIX_armv4.h",
+ "src/silk/arm/SigProc_FIX_armv5e.h",
+ "src/silk/arm/macro_armv4.h",
+ "src/silk/arm/macro_armv5e.h",
+ ]
+
+ defines += [
+ "OPUS_ARM_ASM",
+ "OPUS_ARM_INLINE_ASM",
+ "OPUS_ARM_INLINE_EDSP",
+ ]
+
+ if (use_opus_rtcd) {
+ sources += [
+ "$target_gen_dir/celt_pitch_xcorr_arm_gnu.S",
+ "src/celt/arm/arm_celt_map.c",
+ "src/celt/arm/armcpu.c",
+ "src/celt/arm/armcpu.h",
+ ]
+
+ defines += [
+ "OPUS_ARM_MAY_HAVE_EDSP",
+ "OPUS_ARM_MAY_HAVE_MEDIA",
+ "OPUS_ARM_MAY_HAVE_NEON",
+ "OPUS_HAVE_RTCD",
+ ]
+
+ deps = [
+ ":convert_rtcd_assembler",
+ ]
+ }
+ }
+}
+
+executable("opus_compare") {
+ sources = [
+ "src/src/opus_compare.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ "//build/config/sanitizers:deps",
+ ]
+}
+
+executable("opus_demo") {
+ sources = [
+ "src/src/opus_demo.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ "//build/config/sanitizers:deps",
+ ]
+}
+
+test("test_opus_api") {
+ sources = [
+ "src/tests/test_opus_api.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ ]
+}
+
+test("test_opus_encode") {
+ sources = [
+ "src/tests/test_opus_encode.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ ]
+}
+
+# GN orders flags on a target before flags from configs. The default config
+# adds -Wall, and this flag have to be after -Wall -- so they need to
+# come from a config and can't be on the target directly.
+config("test_opus_decode_config") {
+ # test_opus_decode passes a null pointer to opus_decode() for an argument
+ # marked as requiring a non-null value by the nonnull function attribute,
+ # and expects opus_decode() to fail. Disable the -Wnonnull option to avoid
+ # a compilation error if -Werror is specified.
+ if (is_posix) {
+ cflags = [ "-Wno-nonnull" ]
+ }
+}
+
+test("test_opus_decode") {
+ sources = [
+ "src/tests/test_opus_decode.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ":test_opus_decode_config",
+ ]
+
+ deps = [
+ ":opus",
+ ]
+}
+
+test("test_opus_padding") {
+ sources = [
+ "src/tests/test_opus_padding.c",
+ ]
+
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":opus_test_config",
+ ]
+
+ deps = [
+ ":opus",
+ ]
+}

Powered by Google App Engine
This is Rietveld 408576698