| 
									
										
										
										
											2015-10-02 14:20:50 -03:00
										 |  |  | /* Copyright (c) 2009-2010 Xiph.Org Foundation
 | 
					
						
							|  |  |  |    Written by Jean-Marc Valin */ | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |    Redistribution and use in source and binary forms, with or without | 
					
						
							|  |  |  |    modification, are permitted provided that the following conditions | 
					
						
							|  |  |  |    are met: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    - Redistributions of source code must retain the above copyright | 
					
						
							|  |  |  |    notice, this list of conditions and the following disclaimer. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    - Redistributions in binary form must reproduce the above copyright | 
					
						
							|  |  |  |    notice, this list of conditions and the following disclaimer in the | 
					
						
							|  |  |  |    documentation and/or other materials provided with the distribution. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 
					
						
							|  |  |  |    ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 
					
						
							|  |  |  |    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 
					
						
							|  |  |  |    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER | 
					
						
							|  |  |  |    OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | 
					
						
							|  |  |  |    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | 
					
						
							|  |  |  |    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | 
					
						
							|  |  |  |    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | 
					
						
							|  |  |  |    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | 
					
						
							|  |  |  |    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 
					
						
							|  |  |  |    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef PLC_H
 | 
					
						
							|  |  |  | #define PLC_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-12 20:37:38 +02:00
										 |  |  | #include "arch.h"
 | 
					
						
							|  |  |  | #include "cpu_support.h"
 | 
					
						
							| 
									
										
										
										
											2016-05-01 12:48:46 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | #if defined(OPUS_X86_MAY_HAVE_SSE4_1)
 | 
					
						
							| 
									
										
										
										
											2016-10-12 20:37:38 +02:00
										 |  |  | #include "x86/celt_lpc_sse.h"
 | 
					
						
							| 
									
										
										
										
											2016-05-01 12:48:46 -03:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2015-10-02 14:20:50 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | #define LPC_ORDER 24
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void _celt_lpc(opus_val16 *_lpc, const opus_val32 *ac, int p); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-01 12:48:46 -03:00
										 |  |  | void celt_fir_c( | 
					
						
							|  |  |  |          const opus_val16 *x, | 
					
						
							| 
									
										
										
										
											2015-10-02 14:20:50 -03:00
										 |  |  |          const opus_val16 *num, | 
					
						
							|  |  |  |          opus_val16 *y, | 
					
						
							|  |  |  |          int N, | 
					
						
							|  |  |  |          int ord, | 
					
						
							| 
									
										
										
										
											2019-11-18 09:56:18 +01:00
										 |  |  |          opus_val16 *mem, | 
					
						
							| 
									
										
										
										
											2016-05-01 12:48:46 -03:00
										 |  |  |          int arch); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if !defined(OVERRIDE_CELT_FIR)
 | 
					
						
							| 
									
										
										
										
											2019-11-18 09:56:18 +01:00
										 |  |  | #define celt_fir(x, num, y, N, ord, mem, arch) \
 | 
					
						
							|  |  |  |     (celt_fir_c(x, num, y, N, ord, mem, arch)) | 
					
						
							| 
									
										
										
										
											2016-05-01 12:48:46 -03:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2015-10-02 14:20:50 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | void celt_iir(const opus_val32 *x, | 
					
						
							|  |  |  |          const opus_val16 *den, | 
					
						
							|  |  |  |          opus_val32 *y, | 
					
						
							|  |  |  |          int N, | 
					
						
							|  |  |  |          int ord, | 
					
						
							| 
									
										
										
										
											2016-05-01 12:48:46 -03:00
										 |  |  |          opus_val16 *mem, | 
					
						
							|  |  |  |          int arch); | 
					
						
							| 
									
										
										
										
											2015-10-02 14:20:50 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | int _celt_autocorr(const opus_val16 *x, opus_val32 *ac, | 
					
						
							|  |  |  |          const opus_val16 *window, int overlap, int lag, int n, int arch); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* PLC_H */
 |