annotate src/opus-1.3/celt/arm/fft_arm.h @ 168:ceec0dd9ec9c

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam <cannam@all-day-breakfast.com>
date Fri, 07 Feb 2020 11:51:13 +0000
parents 4664ac0c1032
children
rev   line source
cannam@154 1 /* Copyright (c) 2015 Xiph.Org Foundation
cannam@154 2 Written by Viswanath Puttagunta */
cannam@154 3 /**
cannam@154 4 @file fft_arm.h
cannam@154 5 @brief ARM Neon Intrinsic optimizations for fft using NE10 library
cannam@154 6 */
cannam@154 7
cannam@154 8 /*
cannam@154 9 Redistribution and use in source and binary forms, with or without
cannam@154 10 modification, are permitted provided that the following conditions
cannam@154 11 are met:
cannam@154 12
cannam@154 13 - Redistributions of source code must retain the above copyright
cannam@154 14 notice, this list of conditions and the following disclaimer.
cannam@154 15
cannam@154 16 - Redistributions in binary form must reproduce the above copyright
cannam@154 17 notice, this list of conditions and the following disclaimer in the
cannam@154 18 documentation and/or other materials provided with the distribution.
cannam@154 19
cannam@154 20 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
cannam@154 21 ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
cannam@154 22 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
cannam@154 23 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
cannam@154 24 OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
cannam@154 25 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
cannam@154 26 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
cannam@154 27 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
cannam@154 28 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
cannam@154 29 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
cannam@154 30 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
cannam@154 31 */
cannam@154 32
cannam@154 33
cannam@154 34 #if !defined(FFT_ARM_H)
cannam@154 35 #define FFT_ARM_H
cannam@154 36
cannam@154 37 #include "kiss_fft.h"
cannam@154 38
cannam@154 39 #if defined(HAVE_ARM_NE10)
cannam@154 40
cannam@154 41 int opus_fft_alloc_arm_neon(kiss_fft_state *st);
cannam@154 42 void opus_fft_free_arm_neon(kiss_fft_state *st);
cannam@154 43
cannam@154 44 void opus_fft_neon(const kiss_fft_state *st,
cannam@154 45 const kiss_fft_cpx *fin,
cannam@154 46 kiss_fft_cpx *fout);
cannam@154 47
cannam@154 48 void opus_ifft_neon(const kiss_fft_state *st,
cannam@154 49 const kiss_fft_cpx *fin,
cannam@154 50 kiss_fft_cpx *fout);
cannam@154 51
cannam@154 52 #if !defined(OPUS_HAVE_RTCD)
cannam@154 53 #define OVERRIDE_OPUS_FFT (1)
cannam@154 54
cannam@154 55 #define opus_fft_alloc_arch(_st, arch) \
cannam@154 56 ((void)(arch), opus_fft_alloc_arm_neon(_st))
cannam@154 57
cannam@154 58 #define opus_fft_free_arch(_st, arch) \
cannam@154 59 ((void)(arch), opus_fft_free_arm_neon(_st))
cannam@154 60
cannam@154 61 #define opus_fft(_st, _fin, _fout, arch) \
cannam@154 62 ((void)(arch), opus_fft_neon(_st, _fin, _fout))
cannam@154 63
cannam@154 64 #define opus_ifft(_st, _fin, _fout, arch) \
cannam@154 65 ((void)(arch), opus_ifft_neon(_st, _fin, _fout))
cannam@154 66
cannam@154 67 #endif /* OPUS_HAVE_RTCD */
cannam@154 68
cannam@154 69 #endif /* HAVE_ARM_NE10 */
cannam@154 70
cannam@154 71 #endif