spandsp 3.0.0
private/g722.h
Go to the documentation of this file.
1/*
2 * SpanDSP - a series of DSP components for telephony
3 *
4 * private/g722.h - The ITU G.722 codec.
5 *
6 * Written by Steve Underwood <steveu@coppice.org>
7 *
8 * Copyright (C) 2005 Steve Underwood
9 *
10 * All rights reserved.
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License version 2.1,
14 * as published by the Free Software Foundation.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License for more details.
20 *
21 * You should have received a copy of the GNU Lesser General Public
22 * License along with this program; if not, write to the Free Software
23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 */
25
26/*! \file */
27
28#if !defined(_SPANDSP_PRIVATE_G722_H_)
29#define _SPANDSP_PRIVATE_G722_H_
30
31/*! The per band parameters for both encoding and decoding G.722 */
32typedef struct
33{
34 int16_t nb;
35 int16_t det;
36 int16_t s;
37 int16_t sz;
38 int16_t r;
39 int16_t p[2];
40 int16_t a[2];
41 int16_t b[6];
42 int16_t d[7];
44
45/*!
46 G.722 encode state
47 */
49{
50 /*! True if operating in the special ITU test mode, with the band split filters
51 disabled. */
53 /*! True if the G.722 data is packed */
54 bool packed;
55 /*! True if encoding from 8k samples/second */
56 bool eight_k;
57 /*! 6 for 48000kbps, 7 for 56000kbps, or 8 for 64000kbps. */
59
60 /*! Signal history for the QMF */
61 int16_t x[12];
62 int16_t y[12];
63 int ptr;
64
65 g722_band_t band[2];
66
67 uint32_t out_buffer;
68 int out_bits;
69};
70
71/*!
72 G.722 decode state
73 */
75{
76 /*! True if operating in the special ITU test mode, with the band split filters
77 disabled. */
79 /*! True if the G.722 data is packed */
80 bool packed;
81 /*! True if decoding to 8k samples/second */
82 bool eight_k;
83 /*! 6 for 48000kbps, 7 for 56000kbps, or 8 for 64000kbps. */
85
86 /*! Signal history for the QMF */
87 int16_t x[12];
88 int16_t y[12];
89 int ptr;
90
91 g722_band_t band[2];
92
93 uint32_t in_buffer;
94 int in_bits;
95};
96
97#endif
98/*- End of file ------------------------------------------------------------*/
Definition: private/g722.h:33
Definition: private/g722.h:75
int16_t x[12]
Definition: private/g722.h:87
bool eight_k
Definition: private/g722.h:82
bool packed
Definition: private/g722.h:80
bool itu_test_mode
Definition: private/g722.h:78
int bits_per_sample
Definition: private/g722.h:84
Definition: private/g722.h:49
int bits_per_sample
Definition: private/g722.h:58
int16_t x[12]
Definition: private/g722.h:61
bool eight_k
Definition: private/g722.h:56
bool itu_test_mode
Definition: private/g722.h:52
bool packed
Definition: private/g722.h:54