OLD | NEW |
1 /* Copyright (c) 2010 Xiph.Org Foundation | 1 /* Copyright (c) 2010 Xiph.Org Foundation |
2 * Copyright (c) 2013 Parrot */ | 2 * Copyright (c) 2013 Parrot */ |
3 /* | 3 /* |
4 Redistribution and use in source and binary forms, with or without | 4 Redistribution and use in source and binary forms, with or without |
5 modification, are permitted provided that the following conditions | 5 modification, are permitted provided that the following conditions |
6 are met: | 6 are met: |
7 | 7 |
8 - Redistributions of source code must retain the above copyright | 8 - Redistributions of source code must retain the above copyright |
9 notice, this list of conditions and the following disclaimer. | 9 notice, this list of conditions and the following disclaimer. |
10 | 10 |
(...skipping 17 matching lines...) Expand all Loading... |
28 #ifdef HAVE_CONFIG_H | 28 #ifdef HAVE_CONFIG_H |
29 #include "config.h" | 29 #include "config.h" |
30 #endif | 30 #endif |
31 | 31 |
32 #include "pitch.h" | 32 #include "pitch.h" |
33 #include "kiss_fft.h" | 33 #include "kiss_fft.h" |
34 #include "mdct.h" | 34 #include "mdct.h" |
35 | 35 |
36 #if defined(OPUS_HAVE_RTCD) | 36 #if defined(OPUS_HAVE_RTCD) |
37 | 37 |
| 38 # if defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INTR
) |
| 39 opus_val32 (*const CELT_INNER_PROD_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *x, c
onst opus_val16 *y, int N) = { |
| 40 celt_inner_prod_c, /* ARMv4 */ |
| 41 celt_inner_prod_c, /* EDSP */ |
| 42 celt_inner_prod_c, /* Media */ |
| 43 celt_inner_prod_neon /* NEON */ |
| 44 }; |
| 45 |
| 46 void (*const DUAL_INNER_PROD_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *x, const o
pus_val16 *y01, const opus_val16 *y02, |
| 47 int N, opus_val32 *xy1, opus_val32 *xy2) = { |
| 48 dual_inner_prod_c, /* ARMv4 */ |
| 49 dual_inner_prod_c, /* EDSP */ |
| 50 dual_inner_prod_c, /* Media */ |
| 51 dual_inner_prod_neon /* NEON */ |
| 52 }; |
| 53 # endif |
| 54 |
38 # if defined(FIXED_POINT) | 55 # if defined(FIXED_POINT) |
39 # if ((defined(OPUS_ARM_MAY_HAVE_NEON) && !defined(OPUS_ARM_PRESUME_NEON)) || \ | 56 # if ((defined(OPUS_ARM_MAY_HAVE_NEON) && !defined(OPUS_ARM_PRESUME_NEON)) || \ |
40 (defined(OPUS_ARM_MAY_HAVE_MEDIA) && !defined(OPUS_ARM_PRESUME_MEDIA)) || \ | 57 (defined(OPUS_ARM_MAY_HAVE_MEDIA) && !defined(OPUS_ARM_PRESUME_MEDIA)) || \ |
41 (defined(OPUS_ARM_MAY_HAVE_EDSP) && !defined(OPUS_ARM_PRESUME_EDSP))) | 58 (defined(OPUS_ARM_MAY_HAVE_EDSP) && !defined(OPUS_ARM_PRESUME_EDSP))) |
42 opus_val32 (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *, | 59 opus_val32 (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *, |
43 const opus_val16 *, opus_val32 *, int , int) = { | 60 const opus_val16 *, opus_val32 *, int, int, int) = { |
44 celt_pitch_xcorr_c, /* ARMv4 */ | 61 celt_pitch_xcorr_c, /* ARMv4 */ |
45 MAY_HAVE_EDSP(celt_pitch_xcorr), /* EDSP */ | 62 MAY_HAVE_EDSP(celt_pitch_xcorr), /* EDSP */ |
46 MAY_HAVE_MEDIA(celt_pitch_xcorr), /* Media */ | 63 MAY_HAVE_MEDIA(celt_pitch_xcorr), /* Media */ |
47 MAY_HAVE_NEON(celt_pitch_xcorr) /* NEON */ | 64 MAY_HAVE_NEON(celt_pitch_xcorr) /* NEON */ |
48 }; | 65 }; |
49 | 66 |
50 # endif | 67 # endif |
51 # else /* !FIXED_POINT */ | 68 # else /* !FIXED_POINT */ |
52 # if defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INT
R) | 69 # if defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INT
R) |
53 void (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *, | 70 void (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *, |
54 const opus_val16 *, opus_val32 *, int, int) = { | 71 const opus_val16 *, opus_val32 *, int, int, int) = { |
55 celt_pitch_xcorr_c, /* ARMv4 */ | 72 celt_pitch_xcorr_c, /* ARMv4 */ |
56 celt_pitch_xcorr_c, /* EDSP */ | 73 celt_pitch_xcorr_c, /* EDSP */ |
57 celt_pitch_xcorr_c, /* Media */ | 74 celt_pitch_xcorr_c, /* Media */ |
58 celt_pitch_xcorr_float_neon /* Neon */ | 75 celt_pitch_xcorr_float_neon /* Neon */ |
59 }; | 76 }; |
60 # endif | 77 # endif |
61 # endif /* FIXED_POINT */ | 78 # endif /* FIXED_POINT */ |
62 | 79 |
63 #if defined(FIXED_POINT) && defined(OPUS_HAVE_RTCD) && \ | 80 #if defined(FIXED_POINT) && defined(OPUS_HAVE_RTCD) && \ |
64 defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INTR) | 81 defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INTR) |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 clt_mdct_backward_c, /* ARMv4 */ | 151 clt_mdct_backward_c, /* ARMv4 */ |
135 clt_mdct_backward_c, /* EDSP */ | 152 clt_mdct_backward_c, /* EDSP */ |
136 clt_mdct_backward_c, /* Media */ | 153 clt_mdct_backward_c, /* Media */ |
137 clt_mdct_backward_neon /* Neon with NE10 */ | 154 clt_mdct_backward_neon /* Neon with NE10 */ |
138 }; | 155 }; |
139 | 156 |
140 # endif /* HAVE_ARM_NE10 */ | 157 # endif /* HAVE_ARM_NE10 */ |
141 # endif /* OPUS_ARM_MAY_HAVE_NEON_INTR */ | 158 # endif /* OPUS_ARM_MAY_HAVE_NEON_INTR */ |
142 | 159 |
143 #endif /* OPUS_HAVE_RTCD */ | 160 #endif /* OPUS_HAVE_RTCD */ |
OLD | NEW |