summaryrefslogtreecommitdiff
path: root/common_audio
diff options
context:
space:
mode:
authorAndroid Chromium Automerger <chromium-automerger@android>2014-09-08 18:54:49 +0000
committerAndroid Chromium Automerger <chromium-automerger@android>2014-09-08 18:54:49 +0000
commitf1234f3b2a2d141572c99ff1b83227ebd38de29e (patch)
treed6f6ebd4bb28c35cad99ca970b8ca0006642e4ae /common_audio
parent285c0a3feb1252fca4aaaccf28eacddd08ab679a (diff)
parent69370488385c14d73e6ae8a3d5001c42884f9275 (diff)
downloadwebrtc-f1234f3b2a2d141572c99ff1b83227ebd38de29e.tar.gz
Merge third_party/webrtc from https://chromium.googlesource.com/external/webrtc/trunk/webrtc.git at 69370488385c14d73e6ae8a3d5001c42884f9275
This commit was generated by merge_from_chromium.py. Change-Id: Icd984259a9896fb874700b1e7a2e42bbabfb204b
Diffstat (limited to 'common_audio')
-rw-r--r--common_audio/BUILD.gn197
-rw-r--r--common_audio/common_audio.gyp8
-rw-r--r--common_audio/wav_writer.h2
3 files changed, 196 insertions, 11 deletions
diff --git a/common_audio/BUILD.gn b/common_audio/BUILD.gn
index 4dcc3226..6b5fe9de 100644
--- a/common_audio/BUILD.gn
+++ b/common_audio/BUILD.gn
@@ -9,18 +9,207 @@
import("//build/config/arm.gni")
import("../build/webrtc.gni")
+config("common_audio_config") {
+ include_dirs = [
+ "resampler/include",
+ "signal_processing/include",
+ "vad/include",
+ ]
+}
+
source_set("common_audio") {
- # TODO(andrew): Implement.
+ sources = [
+ "audio_util.cc",
+ "fir_filter.cc",
+ "fir_filter.h",
+ "fir_filter_neon.h",
+ "fir_filter_sse.h",
+ "include/audio_util.h",
+ "resampler/include/push_resampler.h",
+ "resampler/include/resampler.h",
+ "resampler/push_resampler.cc",
+ "resampler/push_sinc_resampler.cc",
+ "resampler/push_sinc_resampler.h",
+ "resampler/resampler.cc",
+ "resampler/sinc_resampler.cc",
+ "resampler/sinc_resampler.h",
+ "signal_processing/include/real_fft.h",
+ "signal_processing/include/signal_processing_library.h",
+ "signal_processing/include/spl_inl.h",
+ "signal_processing/auto_corr_to_refl_coef.c",
+ "signal_processing/auto_correlation.c",
+ "signal_processing/complex_fft_tables.h",
+ "signal_processing/copy_set_operations.c",
+ "signal_processing/cross_correlation.c",
+ "signal_processing/division_operations.c",
+ "signal_processing/dot_product_with_scale.c",
+ "signal_processing/downsample_fast.c",
+ "signal_processing/energy.c",
+ "signal_processing/filter_ar.c",
+ "signal_processing/filter_ma_fast_q12.c",
+ "signal_processing/get_hanning_window.c",
+ "signal_processing/get_scaling_square.c",
+ "signal_processing/ilbc_specific_functions.c",
+ "signal_processing/levinson_durbin.c",
+ "signal_processing/lpc_to_refl_coef.c",
+ "signal_processing/min_max_operations.c",
+ "signal_processing/randomization_functions.c",
+ "signal_processing/refl_coef_to_lpc.c",
+ "signal_processing/real_fft.c",
+ "signal_processing/resample.c",
+ "signal_processing/resample_48khz.c",
+ "signal_processing/resample_by_2.c",
+ "signal_processing/resample_by_2_internal.c",
+ "signal_processing/resample_by_2_internal.h",
+ "signal_processing/resample_fractional.c",
+ "signal_processing/spl_init.c",
+ "signal_processing/spl_sqrt.c",
+ "signal_processing/spl_version.c",
+ "signal_processing/splitting_filter.c",
+ "signal_processing/sqrt_of_one_minus_x_squared.c",
+ "signal_processing/vector_scaling_operations.c",
+ "vad/include/webrtc_vad.h",
+ "vad/webrtc_vad.c",
+ "vad/vad_core.c",
+ "vad/vad_core.h",
+ "vad/vad_filterbank.c",
+ "vad/vad_filterbank.h",
+ "vad/vad_gmm.c",
+ "vad/vad_gmm.h",
+ "vad/vad_sp.c",
+ "vad/vad_sp.h",
+ "wav_header.cc",
+ "wav_header.h",
+ "wav_writer.cc",
+ "wav_writer.h",
+ ]
+
+ deps = [ "../system_wrappers" ]
+
+ if (cpu_arch == "arm") {
+ sources += [
+ "signal_processing/complex_bit_reverse_arm.S",
+ "signal_processing/spl_sqrt_floor_arm.S",
+ ]
+
+ if (arm_version == 7) {
+ deps += [ ":common_audio_neon" ]
+ sources += [ "signal_processing/filter_ar_fast_q12_armv7.S" ]
+ } else {
+ sources += [ "signal_processing/filter_ar_fast_q12.c" ]
+ }
+ }
+
+ if (cpu_arch == "mipsel") {
+ sources += [
+ "signal_processing/include/spl_inl_mips.h",
+ "signal_processing/complex_bit_reverse_mips.c",
+ "signal_processing/complex_fft_mips.c",
+ "signal_processing/cross_correlation_mips.c",
+ "signal_processing/downsample_fast_mips.c",
+ "signal_processing/filter_ar_fast_q12_mips.c",
+ "signal_processing/min_max_operations_mips.c",
+ "signal_processing/resample_by_2_mips.c",
+ "signal_processing/spl_sqrt_floor_mips.c",
+ ]
+ if (mips_dsp_rev > 0) {
+ sources += [ "signal_processing/vector_scaling_operations_mips.c" ]
+ }
+ } else {
+ sources += [
+ "signal_processing/complex_fft.c",
+ "signal_processing/filter_ar_fast_q12.c",
+ ]
+ }
+
+ if (cpu_arch != "arm" && cpu_arch != "mipsel") {
+ sources += [
+ "signal_processing/complex_bit_reverse.c",
+ "signal_processing/spl_sqrt_floor.c",
+ ]
+ }
+
+ if (is_win) {
+ cflags += [
+ "/wd4334", # Ignore warning on shift operator promotion.
+ ]
+ }
+
+ direct_dependent_configs = [
+ "..:common_inherited_config",
+ ":common_audio_config",
+ ]
+
+ if (is_clang) {
+ # Suppress warnings from Chrome's Clang plugins.
+ # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
+ configs -= [ "//build/config/clang:find_bad_constructs" ]
+ }
+
+ if (cpu_arch == "x86" || cpu_arch == "x64") {
+ deps += [ ":common_audio_sse2" ]
+ }
}
if (cpu_arch == "x86" || cpu_arch == "x64") {
source_set("common_audio_sse2") {
- # TODO(andrew): Implement.
+ sources = [
+ "fir_filter_sse.cc",
+ "resampler/sinc_resampler_sse.cc",
+ ]
+
+ cflags = [ "-msse2" ]
+
+ configs += [ "..:common_inherited_config" ]
+
+ if (is_clang) {
+ # Suppress warnings from Chrome's Clang plugins.
+ # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
+ configs -= [ "//build/config/clang:find_bad_constructs" ]
+ }
}
}
-if (cpu_arch == "arm" && arm_version == 7) {
+if (build_armv7_neon) {
source_set("common_audio_neon") {
- # TODO(andrew): Implement.
+ sources = [
+ "fir_filter_neon.cc",
+ "resampler/sinc_resampler_neon.cc",
+ "signal_processing/cross_correlation_neon.S",
+ "signal_processing/downsample_fast_neon.S",
+ "signal_processing/min_max_operations_neon.S",
+ "signal_processing/vector_scaling_operations_neon.S",
+ ]
+
+ configs += [
+ "..:common_config",
+ "..:common_inherited_config",
+ ]
+
+ # Enable compilation for the ARM v7 Neon instruction set. This is needed
+ # since //build/config/arm.gni only enables Neon for iOS, not Android.
+ # This provides the same functionality as webrtc/build/arm_neon.gypi.
+ # TODO(kjellander): Investigate if this can be moved into webrtc.gni or
+ # //build/config/arm.gni instead, to reduce code duplication.
+ # Remove the -mfpu=vfpv3-d16 cflag.
+ configs -= [ "//build/config/compiler:compiler_arm_fpu" ]
+ cflags = [
+ "-flax-vector-conversions",
+ "-mfpu=neon",
+ ]
+
+ # Disable LTO in audio_processing_neon target due to compiler bug.
+ if (use_lto) {
+ cflags -= [
+ "-flto",
+ "-ffat-lto-objects",
+ ]
+ }
+
+ if (is_clang) {
+ # Suppress warnings from Chrome's Clang plugins.
+ # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
+ configs -= [ "//build/config/clang:find_bad_constructs" ]
+ }
}
}
diff --git a/common_audio/common_audio.gyp b/common_audio/common_audio.gyp
index ae3bacb7..e9abf822 100644
--- a/common_audio/common_audio.gyp
+++ b/common_audio/common_audio.gyp
@@ -228,9 +228,7 @@
'wav_writer_unittest.cc',
],
'conditions': [
- # TODO(henrike): remove build_with_chromium==1 when the bots are
- # using Chromium's buildbots.
- ['build_with_chromium==1 and OS=="android"', {
+ ['OS=="android"', {
'dependencies': [
'<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
],
@@ -239,9 +237,7 @@
},
], # targets
'conditions': [
- # TODO(henrike): remove build_with_chromium==1 when the bots are using
- # Chromium's buildbots.
- ['build_with_chromium==1 and OS=="android"', {
+ ['OS=="android"', {
'targets': [
{
'target_name': 'common_audio_unittests_apk_target',
diff --git a/common_audio/wav_writer.h b/common_audio/wav_writer.h
index 45bcbac5..09667279 100644
--- a/common_audio/wav_writer.h
+++ b/common_audio/wav_writer.h
@@ -33,13 +33,13 @@ class WavFile {
// [-32768,32767], and there must be the previously specified number of
// interleaved channels.
void WriteSamples(const float* samples, size_t num_samples);
+ void WriteSamples(const int16_t* samples, size_t num_samples);
int sample_rate() const { return sample_rate_; }
int num_channels() const { return num_channels_; }
uint32_t num_samples() const { return num_samples_; }
private:
- void WriteSamples(const int16_t* samples, size_t num_samples);
void Close();
const int sample_rate_;
const int num_channels_;