blob: 7dfbd076d1695f2fb300b418bcdeb3a5434c01b7 [file] [log] [blame]
Jean-Marc Valin8b2ff0d2009-10-17 21:40:10 -04001/* Copyright (c) 2007-2008 CSIRO
2 Copyright (c) 2007-2009 Xiph.Org Foundation
3 Copyright (c) 2007-2009 Timothy B. Terriberry
4 Written by Timothy B. Terriberry and Jean-Marc Valin */
Timothy B. Terriberryc4541ae2007-12-03 11:51:29 +11005/*
6 Redistribution and use in source and binary forms, with or without
7 modification, are permitted provided that the following conditions
8 are met:
Gregory Maxwell71d39ad2011-07-30 00:00:29 -04009
Timothy B. Terriberryc4541ae2007-12-03 11:51:29 +110010 - Redistributions of source code must retain the above copyright
11 notice, this list of conditions and the following disclaimer.
Gregory Maxwell71d39ad2011-07-30 00:00:29 -040012
Timothy B. Terriberryc4541ae2007-12-03 11:51:29 +110013 - Redistributions in binary form must reproduce the above copyright
14 notice, this list of conditions and the following disclaimer in the
15 documentation and/or other materials provided with the distribution.
Gregory Maxwell71d39ad2011-07-30 00:00:29 -040016
Timothy B. Terriberryc4541ae2007-12-03 11:51:29 +110017 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
Jean-Marc Valincb05e7c2012-04-20 16:40:24 -040020 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
21 OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
Timothy B. Terriberryc4541ae2007-12-03 11:51:29 +110022 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28*/
29
30#ifndef CWRS_H
31#define CWRS_H
32
Jean-Marc Valinf8db8002007-12-11 14:52:56 +110033#include "arch.h"
Jean-Marc Valinc7e0b762008-03-16 07:55:29 +110034#include "stack_alloc.h"
Jean-Marc Valin5fa59952008-02-14 13:50:44 +110035#include "entenc.h"
36#include "entdec.h"
Timothy B. Terriberryc4541ae2007-12-03 11:51:29 +110037
Jean-Marc Valinf334c822011-08-11 16:21:58 -040038#ifdef CUSTOM_MODES
Jean-Marc Valind77d6a52011-07-29 17:33:06 -040039int log2_frac(opus_uint32 val, int frac);
Jean-Marc Valinf334c822011-08-11 16:21:58 -040040#endif
Jean-Marc Valin9a6c4962009-02-09 00:45:48 -050041
Jean-Marc Valind77d6a52011-07-29 17:33:06 -040042void get_required_bits(opus_int16 *bits, int N, int K, int frac);
Jean-Marc Valin679083f2008-06-10 17:23:03 +100043
Jean-Marc Valin2fcb2392010-05-24 09:02:35 -040044void encode_pulses(const int *_y, int N, int K, ec_enc *enc);
Jean-Marc Valin5fa59952008-02-14 13:50:44 +110045
46void decode_pulses(int *_y, int N, int K, ec_dec *dec);
47
Timothy B. Terriberryc4541ae2007-12-03 11:51:29 +110048#endif /* CWRS_H */