g72x.h
上传用户:haomin008
上传日期:2007-01-06
资源大小:12k
文件大小:3k
- /*
- * This source code is a product of Sun Microsystems, Inc. and is provided
- * for unrestricted use. Users may copy or modify this source code without
- * charge.
- *
- * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
- * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun source code is provided with no support and without any obligation on
- * the part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
- /*
- * g72x.h
- *
- * Header file for CCITT conversion routines.
- *
- */
- #ifndef _G72X_H
- #define _G72X_H
- #define AUDIO_ENCODING_ULAW (1) /* ISDN u-law */
- #define AUDIO_ENCODING_ALAW (2) /* ISDN A-law */
- #define AUDIO_ENCODING_LINEAR (3) /* PCM 2's-complement (0-center) */
- /*
- * The following is the definition of the state structure
- * used by the G.721/G.723 encoder and decoder to preserve their internal
- * state between successive calls. The meanings of the majority
- * of the state structure fields are explained in detail in the
- * CCITT Recommendation G.721. The field names are essentially indentical
- * to variable names in the bit level description of the coding algorithm
- * included in this Recommendation.
- */
- struct g72x_state {
- long yl; /* Locked or steady state step size multiplier. */
- short yu; /* Unlocked or non-steady state step size multiplier. */
- short dms; /* Short term energy estimate. */
- short dml; /* Long term energy estimate. */
- short ap; /* Linear weighting coefficient of 'yl' and 'yu'. */
- short a[2]; /* Coefficients of pole portion of prediction filter. */
- short b[6]; /* Coefficients of zero portion of prediction filter. */
- short pk[2]; /*
- * Signs of previous two samples of a partially
- * reconstructed signal.
- */
- short dq[6]; /*
- * Previous 6 samples of the quantized difference
- * signal represented in an internal floating point
- * format.
- */
- short sr[2]; /*
- * Previous 2 samples of the quantized difference
- * signal represented in an internal floating point
- * format.
- */
- char td; /* delayed tone detect, new in 1988 version */
- };
- /* External function definitions. */
- extern void g72x_init_stat(struct g72x_state *);
- extern int g721_encoder(
- int sample,
- int in_coding,
- struct g72x_state *state_ptr);
- extern int g721_decoder(
- int code,
- int out_coding,
- struct g72x_state *state_ptr);
- extern int g723_24_encoder(
- int sample,
- int in_coding,
- struct g72x_state *state_ptr);
- extern int g723_24_decoder(
- int code,
- int out_coding,
- struct g72x_state *state_ptr);
- extern int g723_40_encoder(
- int sample,
- int in_coding,
- struct g72x_state *state_ptr);
- extern int g723_40_decoder(
- int code,
- int out_coding,
- struct g72x_state *state_ptr);
- #endif /* !_G72X_H */