diff options
author | Haibo Huang <hhb@google.com> | 2020-11-30 18:16:58 -0800 |
---|---|---|
committer | Haibo Huang <hhb@google.com> | 2020-11-30 18:16:58 -0800 |
commit | 6a07d584942e2aa60c752126f145d08218914e74 (patch) | |
tree | f5558d2b9f6b59cffe7d3fdba103fe1d88a7d1e4 /celt | |
parent | 3281c0eb15bd1bbfb05938469a2f61a21d8d333a (diff) | |
parent | d2f6805c3f36718a742c33c56eb945c2e10646ef (diff) | |
download | libopus-6a07d584942e2aa60c752126f145d08218914e74.tar.gz |
Upgrade libopus to d2f6805c3f36718a742c33c56eb945c2e10646ef
Test: make
Change-Id: I995f04a04951ca22916a7b418afdd8ba59bcd130
Diffstat (limited to 'celt')
-rw-r--r-- | celt/meson.build | 63 | ||||
-rw-r--r-- | celt/stack_alloc.h | 4 | ||||
-rw-r--r-- | celt/tests/meson.build | 19 | ||||
-rw-r--r-- | celt/tests/test_unit_mathops.c | 6 | ||||
-rw-r--r-- | celt/x86/pitch_sse.h | 2 |
5 files changed, 88 insertions, 6 deletions
diff --git a/celt/meson.build b/celt/meson.build new file mode 100644 index 00000000..370ea1fe --- /dev/null +++ b/celt/meson.build @@ -0,0 +1,63 @@ +celt_sources = sources['CELT_SOURCES'] + +celt_sse_sources = sources['CELT_SOURCES_SSE'] + +celt_sse2_sources = sources['CELT_SOURCES_SSE2'] + +celt_sse4_1_sources = sources['CELT_SOURCES_SSE4_1'] + +celt_neon_intr_sources = sources['CELT_SOURCES_ARM_NEON_INTR'] + +celt_static_libs = [] + +foreach intr_name : ['sse', 'sse2', 'sse4_1', 'neon_intr'] + have_intr = get_variable('have_' + intr_name) + if not have_intr + continue + endif + + intr_sources = get_variable('celt_@0@_sources'.format(intr_name)) + intr_args = get_variable('opus_@0@_args'.format(intr_name), []) + celt_static_libs += static_library('celt_' + intr_name, intr_sources, + c_args: intr_args, + include_directories: opus_includes, + install: false) +endforeach + +have_arm_intrinsics_or_asm = have_arm_ne10 +if (intrinsics_support.length() + asm_optimization.length() + inline_optimization.length()) > 0 + have_arm_intrinsics_or_asm = true +endif + +if host_cpu_family in ['arm', 'aarch64'] and have_arm_intrinsics_or_asm + celt_sources += sources['CELT_SOURCES_ARM'] + if have_arm_ne10 + celt_sources += sources['CELT_SOURCES_ARM_NE10'] + endif + if opus_arm_external_asm + arm2gnu = [find_program('arm/arm2gnu.pl')] + arm2gnu_args + celt_sources_arm_asm = configure_file(input: 'arm/celt_pitch_xcorr_arm.s', + output: '@BASENAME@-gnu.S', + command: arm2gnu + ['@INPUT@'], + capture: true) + celt_arm_armopts_s = configure_file(input: 'arm/armopts.s.in', + output: 'arm/armopts.s', + configuration: opus_conf) + celt_static_libs += static_library('celt-armasm', + celt_arm_armopts_s, celt_sources_arm_asm, + install: false) + endif +endif + +celt_c_args = [] +if host_system == 'windows' + celt_c_args += ['-DDLL_EXPORT'] +endif + +celt_lib = static_library('opus-celt', + celt_sources, + c_args: celt_c_args, + include_directories: opus_includes, + link_whole: celt_static_libs, + dependencies: libm, + install: false) diff --git a/celt/stack_alloc.h b/celt/stack_alloc.h index 2b51c8d8..ae40e2a1 100644 --- a/celt/stack_alloc.h +++ b/celt/stack_alloc.h @@ -40,7 +40,7 @@ #endif #ifdef USE_ALLOCA -# ifdef WIN32 +# ifdef _WIN32 # include <malloc.h> # else # ifdef HAVE_ALLOCA_H @@ -102,7 +102,7 @@ #define VARDECL(type, var) type *var -# ifdef WIN32 +# ifdef _WIN32 # define ALLOC(var, size, type) var = ((type*)_alloca(sizeof(type)*(size))) # else # define ALLOC(var, size, type) var = ((type*)alloca(sizeof(type)*(size))) diff --git a/celt/tests/meson.build b/celt/tests/meson.build new file mode 100644 index 00000000..0e6d2e62 --- /dev/null +++ b/celt/tests/meson.build @@ -0,0 +1,19 @@ +tests = [ + 'test_unit_types', + 'test_unit_mathops', + 'test_unit_entropy', + 'test_unit_laplace', + 'test_unit_dft', + 'test_unit_mdct', + 'test_unit_rotation', + 'test_unit_cwrs32', +] + +foreach test_name : tests + exe = executable(test_name, '@0@.c'.format(test_name), + include_directories : opus_includes, + link_with : [celt_lib, celt_static_libs], + dependencies : libm, + install : false) + test(test_name, exe) +endforeach diff --git a/celt/tests/test_unit_mathops.c b/celt/tests/test_unit_mathops.c index 874e9adf..0615448d 100644 --- a/celt/tests/test_unit_mathops.c +++ b/celt/tests/test_unit_mathops.c @@ -143,7 +143,7 @@ void testbitexactlog2tan(void) void testlog2(void) { float x; - for (x=0.001;x<1677700.0;x+=(x/8.0)) + for (x=0.001f;x<1677700.0;x+=(x/8.0)) { float error = fabs((1.442695040888963387*log(x))-celt_log2(x)); if (error>0.0009) @@ -157,7 +157,7 @@ void testlog2(void) void testexp2(void) { float x; - for (x=-11.0;x<24.0;x+=0.0007) + for (x=-11.0;x<24.0;x+=0.0007f) { float error = fabs(x-(1.442695040888963387*log(celt_exp2(x)))); if (error>0.0002) @@ -171,7 +171,7 @@ void testexp2(void) void testexp2log2(void) { float x; - for (x=-11.0;x<24.0;x+=0.0007) + for (x=-11.0;x<24.0;x+=0.0007f) { float error = fabs(x-(celt_log2(celt_exp2(x)))); if (error>0.001) diff --git a/celt/x86/pitch_sse.h b/celt/x86/pitch_sse.h index e5f87ab5..f7a014b6 100644 --- a/celt/x86/pitch_sse.h +++ b/celt/x86/pitch_sse.h @@ -91,7 +91,7 @@ opus_val32 celt_inner_prod_sse2( int N); #endif -#if defined(OPUS_X86_MAY_HAVE_SSE2) && !defined(FIXED_POINT) +#if defined(OPUS_X86_MAY_HAVE_SSE) && !defined(FIXED_POINT) opus_val32 celt_inner_prod_sse( const opus_val16 *x, const opus_val16 *y, |