g72x.h
上传用户:wstnjxml
上传日期:2014-04-03
资源大小:7248k
文件大小:3k
源码类别:

Windows CE

开发平台:

C/C++

  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.  * g72x.h
  28.  *
  29.  * Header file for CCITT conversion routines.
  30.  *
  31.  */
  32. #ifndef _G72X_H
  33. #define _G72X_H
  34. /*
  35.  * The following is the definition of the state structure
  36.  * used by the G.721/G.723 encoder and decoder to preserve their internal
  37.  * state between successive calls.  The meanings of the majority
  38.  * of the state structure fields are explained in detail in the
  39.  * CCITT Recommendation G.721.  The field names are essentially indentical
  40.  * to variable names in the bit level description of the coding algorithm
  41.  * included in this Recommendation.
  42.  */
  43. typedef struct g726_state_s {
  44. long yl; /* Locked or steady state step size multiplier. */
  45. int yu; /* Unlocked or non-steady state step size multiplier. */
  46. int dms; /* Short term energy estimate. */
  47. int dml; /* Long term energy estimate. */
  48. int ap; /* Linear weighting coefficient of 'yl' and 'yu'. */
  49. int a[2]; /* Coefficients of pole portion of prediction filter. */
  50. int b[6]; /* Coefficients of zero portion of prediction filter. */
  51. int pk[2]; /* Signs of previous two samples of a partially
  52.  * reconstructed signal. */
  53. short dq[6];/* int here fails in newupdate on encode!
  54.  * Previous 6 samples of the quantized difference
  55.  * signal represented in an internal floating point
  56.  * format.
  57.  */
  58. int sr[2]; /* Previous 2 samples of the quantized difference
  59.  * signal represented in an internal floating point
  60.  * format. */
  61. int td; /* delayed tone detect, new in 1988 version */
  62. } g726_state;
  63. /* External function definitions. */
  64. void g726_init_state( g726_state *);
  65. int g726_32_decoder(
  66. int code,
  67.  g726_state *state_ptr);
  68. int g726_16_decoder(
  69.         int code,
  70.          g726_state *state_ptr);
  71. int g726_24_decoder(
  72. int code,
  73.  g726_state *state_ptr);
  74. int g726_40_decoder(
  75. int code,
  76.  g726_state *state_ptr);
  77. #endif /* !_G72X_H */