Add support for ICE/STUN/TURN in res_rtp_asterisk and chan_sip.
[asterisk/asterisk.git] / res / pjproject / pjmedia / src / pjmedia-codec / g722 / g722_dec.h
1 /* $Id$ */
2 /* 
3  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
4  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
19  */
20 /*
21  * Based on implementation found in Carnegie Mellon Speech Group Software
22  * depository (ftp://ftp.cs.cmu.edu/project/fgdata/index.html). No copyright
23  * was claimed in the original source codes.
24  */
25 #ifndef __PJMEDIA_CODEC_G722_DEC_H__
26 #define __PJMEDIA_CODEC_G722_DEC_H__
27
28 #include <pjmedia-codec/types.h>
29
30 /* Decoder state */
31 typedef struct g722_dec_t {
32     /* PCM low band */
33     int slow;
34     int detlow;
35     int spl;
36     int szl;
37     int rlt  [3];
38     int al   [3];
39     int apl  [3];
40     int plt  [3];
41     int dlt  [7];
42     int bl   [7];
43     int bpl  [7];
44     int sgl  [7];
45     int nbl;
46
47     /* PCM high band*/
48     int shigh;
49     int dethigh;
50     int sph;
51     int szh;
52     int rh   [3];
53     int ah   [3];
54     int aph  [3];
55     int ph   [3];
56     int dh   [7];
57     int bh   [7];
58     int bph  [7];
59     int sgh  [7];
60     int nbh;
61
62     /* QMF signal history */
63     int xd[12];
64     int xs[12];
65 } g722_dec_t;
66
67
68 PJ_DECL(pj_status_t) g722_dec_init(g722_dec_t *dec);
69
70 PJ_DECL(pj_status_t) g722_dec_decode(g722_dec_t *dec, 
71                                      void *in, 
72                                      pj_size_t in_size,
73                                      pj_int16_t out[],
74                                      pj_size_t *nsamples);
75
76 PJ_DECL(pj_status_t) g722_dec_deinit(g722_dec_t *dec);
77
78 #endif /* __PJMEDIA_CODEC_G722_DEC_H__ */
79