summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/libspc/cpu/spc_dsp_armv5.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbcodec/codecs/libspc/cpu/spc_dsp_armv5.h')
-rw-r--r--lib/rbcodec/codecs/libspc/cpu/spc_dsp_armv5.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/rbcodec/codecs/libspc/cpu/spc_dsp_armv5.h b/lib/rbcodec/codecs/libspc/cpu/spc_dsp_armv5.h
new file mode 100644
index 0000000000..7056928856
--- /dev/null
+++ b/lib/rbcodec/codecs/libspc/cpu/spc_dsp_armv5.h
@@ -0,0 +1,30 @@
1#if !SPC_NOINTERP
2/* Want scale optimized for smulw(y) */
3#define GAUSS_TABLE_SCALE 4
4#endif
5
6#if !SPC_NOECHO
7
8#define SPC_DSP_ECHO_APPLY
9
10enum
11{
12 FIR_BUF_CNT = FIR_BUF_HALF * 2,
13 FIR_BUF_SIZE = FIR_BUF_CNT * sizeof ( int32_t ),
14 FIR_BUF_ALIGN = FIR_BUF_SIZE,
15 FIR_BUF_MASK = ~((FIR_BUF_ALIGN / 2) | (sizeof ( int32_t ) - 1))
16};
17
18/* Echo filter structure embedded in struct Spc_Dsp */
19struct echo_filter
20{
21 /* fir_buf [i + 8] == fir_buf [i], to avoid wrap checking in FIR code */
22 int32_t* ptr;
23 /* FIR history is interleaved with guard to eliminate wrap checking
24 * when convolving.
25 * |LR|LR|LR|LR|LR|LR|LR|LR|--|--|--|--|--|--|--|--| */
26 /* copy of echo FIR constants as int16_t, loaded as int32 for
27 * halfword, packed multiples */
28 int16_t coeff [VOICE_COUNT];
29};
30#endif /* SPC_NOECHO */