aboutsummaryrefslogtreecommitdiff
path: root/celt
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2020-11-30 18:16:58 -0800
committerHaibo Huang <hhb@google.com>2020-11-30 18:16:58 -0800
commit6a07d584942e2aa60c752126f145d08218914e74 (patch)
treef5558d2b9f6b59cffe7d3fdba103fe1d88a7d1e4 /celt
parent3281c0eb15bd1bbfb05938469a2f61a21d8d333a (diff)
parentd2f6805c3f36718a742c33c56eb945c2e10646ef (diff)
downloadlibopus-6a07d584942e2aa60c752126f145d08218914e74.tar.gz
Upgrade libopus to d2f6805c3f36718a742c33c56eb945c2e10646ef
Test: make Change-Id: I995f04a04951ca22916a7b418afdd8ba59bcd130
Diffstat (limited to 'celt')
-rw-r--r--celt/meson.build63
-rw-r--r--celt/stack_alloc.h4
-rw-r--r--celt/tests/meson.build19
-rw-r--r--celt/tests/test_unit_mathops.c6
-rw-r--r--celt/x86/pitch_sse.h2
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,