• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/amule/wxWidgets-2.8.12/contrib/include/wx/mmedia/internal/
1/*
2 * This source code is a product of Sun Microsystems, Inc. and is provided
3 * for unrestricted use.  Users may copy or modify this source code without
4 * charge.
5 *
6 * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
7 * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
8 * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
9 *
10 * Sun source code is provided with no support and without any obligation on
11 * the part of Sun Microsystems, Inc. to assist in its use, correction,
12 * modification or enhancement.
13 *
14 * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
15 * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE
16 * OR ANY PART THEREOF.
17 *
18 * In no event will Sun Microsystems, Inc. be liable for any lost revenue
19 * or profits or other special, indirect and consequential damages, even if
20 * Sun has been advised of the possibility of such damages.
21 *
22 * Sun Microsystems, Inc.
23 * 2550 Garcia Avenue
24 * Mountain View, California  94043
25 */
26
27/*
28 * g72x.h
29 *
30 * Header file for CCITT conversion routines.
31 *
32 */
33#ifndef _G72X_H
34#define	_G72X_H
35
36#define	AUDIO_ENCODING_ULAW	(1)	/* ISDN u-law */
37#define	AUDIO_ENCODING_ALAW	(2)	/* ISDN A-law */
38#define	AUDIO_ENCODING_LINEAR	(3)	/* PCM 2's-complement (0-center) */
39
40/*
41 * The following is the definition of the state structure
42 * used by the G.721/G.723 encoder and decoder to preserve their internal
43 * state between successive calls.  The meanings of the majority
44 * of the state structure fields are explained in detail in the
45 * CCITT Recommendation G.721.  The field names are essentially indentical
46 * to variable names in the bit level description of the coding algorithm
47 * included in this Recommendation.
48 */
49struct g72x_state {
50	long yl;	/* Locked or steady state step size multiplier. */
51	short yu;	/* Unlocked or non-steady state step size multiplier. */
52	short dms;	/* Short term energy estimate. */
53	short dml;	/* Long term energy estimate. */
54	short ap;	/* Linear weighting coefficient of 'yl' and 'yu'. */
55
56	short a[2];	/* Coefficients of pole portion of prediction filter. */
57	short b[6];	/* Coefficients of zero portion of prediction filter. */
58	short pk[2];	/*
59			 * Signs of previous two samples of a partially
60			 * reconstructed signal.
61			 */
62	short dq[6];	/*
63			 * Previous 6 samples of the quantized difference
64			 * signal represented in an internal floating point
65			 * format.
66			 */
67	short sr[2];	/*
68			 * Previous 2 samples of the quantized difference
69			 * signal represented in an internal floating point
70			 * format.
71			 */
72	char td;	/* delayed tone detect, new in 1988 version */
73};
74
75/* External function definitions. */
76
77extern unsigned char linear2alaw (int pcm_val);	/* 2's complement (16-bit range) */
78extern int alaw2linear (unsigned char a_val);
79extern unsigned char linear2ulaw (int pcm_val);	/* 2's complement (16-bit range) */
80extern int ulaw2linear (unsigned char u_val);
81extern int predictor_zero (struct g72x_state *state_ptr);
82extern int predictor_pole (struct g72x_state *state_ptr);
83extern int step_size (struct g72x_state *state_ptr);
84extern int quantize (int d, int y, short *table, int size);
85extern int reconstruct (int sign, int dqln, int y);
86
87extern void update
88    ( int code_size, int y, int wi, int fi, int dq
89	, int sr, int dqsez, struct g72x_state *state_ptr);
90
91int tandem_adjust_alaw
92    (int sr, int se, int y, int i, int sign, short *qtab);
93
94int tandem_adjust_ulaw
95    (int sr, int se, int y, int i, int sign, short *qtab);
96
97extern void g72x_init_state (struct g72x_state *);
98extern int g721_encoder(
99		int sample,
100		int in_coding,
101		struct g72x_state *state_ptr);
102extern int g721_decoder(
103		int code,
104		int out_coding,
105		struct g72x_state *state_ptr);
106extern int g723_24_encoder(
107		int sample,
108		int in_coding,
109		struct g72x_state *state_ptr);
110extern int g723_24_decoder(
111		int code,
112		int out_coding,
113		struct g72x_state *state_ptr);
114extern int g723_40_encoder(
115		int sample,
116		int in_coding,
117		struct g72x_state *state_ptr);
118extern int g723_40_decoder(
119		int code,
120		int out_coding,
121		struct g72x_state *state_ptr);
122
123#endif /* !_G72X_H */
124