Index: celt/x86/celt_lpc_sse.h |
diff --git a/celt/celt_lpc.h b/celt/x86/celt_lpc_sse.h |
similarity index 68% |
copy from celt/celt_lpc.h |
copy to celt/x86/celt_lpc_sse.h |
index dc2a0a3d26ca8357e4c9892a930b861416785b38..f11142023efd41932b1b50411021f933fe69f6d3 100644 |
--- a/celt/celt_lpc.h |
+++ b/celt/x86/celt_lpc_sse.h |
@@ -1,6 +1,6 @@ |
-/* Copyright (c) 2009-2010 Xiph.Org Foundation |
- Written by Jean-Marc Valin */ |
-/* |
+/* Copyright (c) 2014, Cisco Systems, INC |
+ Written by XiangMingZhu WeiZhou MinPeng YanWang |
+ |
Redistribution and use in source and binary forms, with or without |
modification, are permitted provided that the following conditions |
are met: |
@@ -25,30 +25,34 @@ |
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
-#ifndef PLC_H |
-#define PLC_H |
- |
-#include "arch.h" |
- |
-#define LPC_ORDER 24 |
+#ifndef CELT_LPC_SSE_H |
+#define CELT_LPC_SSE_H |
-void _celt_lpc(opus_val16 *_lpc, const opus_val32 *ac, int p); |
+#ifdef HAVE_CONFIG_H |
+#include "config.h" |
+#endif |
-void celt_fir(const opus_val16 *x, |
+#if defined(OPUS_X86_MAY_HAVE_SSE4_1) |
+void celt_fir_sse4_1( |
+ const opus_val16 *x, |
const opus_val16 *num, |
opus_val16 *y, |
int N, |
int ord, |
- opus_val16 *mem); |
+ opus_val16 *mem, |
+ int arch); |
-void celt_iir(const opus_val32 *x, |
- const opus_val16 *den, |
- opus_val32 *y, |
+extern void (*const CELT_FIR_IMPL[OPUS_ARCHMASK + 1])( |
+ const opus_val16 *x, |
+ const opus_val16 *num, |
+ opus_val16 *y, |
int N, |
int ord, |
- opus_val16 *mem); |
+ opus_val16 *mem, |
+ int arch); |
-int _celt_autocorr(const opus_val16 *x, opus_val32 *ac, |
- const opus_val16 *window, int overlap, int lag, int n, int arch); |
+# define celt_fir(x, num, y, N, ord, mem, arch) \ |
+ ((*CELT_FIR_IMPL[(arch) & OPUS_ARCHMASK])(x, num, y, N, ord, mem, arch)) |
-#endif /* PLC_H */ |
+#endif |
+#endif |