1885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org/* Copyright (c) 2009-2010 Xiph.Org Foundation
2885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   Written by Jean-Marc Valin */
3885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org/*
4885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   Redistribution and use in source and binary forms, with or without
5885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   modification, are permitted provided that the following conditions
6885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   are met:
7885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
8885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   - Redistributions of source code must retain the above copyright
9885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   notice, this list of conditions and the following disclaimer.
10885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
11885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   - Redistributions in binary form must reproduce the above copyright
12885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   notice, this list of conditions and the following disclaimer in the
13885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   documentation and/or other materials provided with the distribution.
14885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
15885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
19885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org*/
27885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
28885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org#ifndef PLC_H
29885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org#define PLC_H
30885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
31885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org#include "arch.h"
32885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
33885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org#define LPC_ORDER 24
34885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
35885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgvoid _celt_lpc(opus_val16 *_lpc, const opus_val32 *ac, int p);
36885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
37885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgvoid celt_fir(const opus_val16 *x,
38885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org         const opus_val16 *num,
39885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org         opus_val16 *y,
40885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org         int N,
41885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org         int ord,
42885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org         opus_val16 *mem);
43885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
44885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.orgvoid celt_iir(const opus_val32 *x,
45885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org         const opus_val16 *den,
46885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org         opus_val32 *y,
47885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org         int N,
48885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org         int ord,
49885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org         opus_val16 *mem);
50885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
513c3902f0ac13428394f14f78f0fab05ef3468d69tlegrand@google.comint _celt_autocorr(const opus_val16 *x, opus_val32 *ac,
523c3902f0ac13428394f14f78f0fab05ef3468d69tlegrand@google.com         const opus_val16 *window, int overlap, int lag, int n, int arch);
53885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org
54885f2ff5a7a7d6a73432d26a6c0ae9147e6b452sergeyu@chromium.org#endif /* PLC_H */
55