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 */ 49 struct 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 77 extern void g72x_init_stat(); 78 extern int g721_encoder(); 79 extern int g721_decoder(); 80 extern int g723_24_encoder(); 81 extern int g723_24_decoder(); 82 extern int g723_40_encoder(); 83 extern int g723_40_decoder(); 84 85 #endif /* !_G72X_H */ 86