00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef _G72X_H
00034 #define _G72X_H
00035
00036 #define AUDIO_ENCODING_ULAW (1)
00037 #define AUDIO_ENCODING_ALAW (2)
00038 #define AUDIO_ENCODING_LINEAR (3)
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049 struct g72x_state {
00050 long yl;
00051 short yu;
00052 short dms;
00053 short dml;
00054 short ap;
00055
00056 short a[2];
00057 short b[6];
00058 short pk[2];
00059
00060
00061
00062 short dq[6];
00063
00064
00065
00066
00067 short sr[2];
00068
00069
00070
00071
00072 char td;
00073 };
00074
00075
00076
00077 extern void g72x_init_state(struct g72x_state *);
00078 extern int g721_encoder(
00079 int sample,
00080 int in_coding,
00081 struct g72x_state *state_ptr);
00082 extern int g721_decoder(
00083 int code,
00084 int out_coding,
00085 struct g72x_state *state_ptr);
00086 extern int g723_24_encoder(
00087 int sample,
00088 int in_coding,
00089 struct g72x_state *state_ptr);
00090 extern int g723_24_decoder(
00091 int code,
00092 int out_coding,
00093 struct g72x_state *state_ptr);
00094 extern int g723_40_encoder(
00095 int sample,
00096 int in_coding,
00097 struct g72x_state *state_ptr);
00098 extern int g723_40_decoder(
00099 int code,
00100 int out_coding,
00101 struct g72x_state *state_ptr);
00102
00103
00104 extern int
00105 quantize(
00106 int d,
00107 int y,
00108 short *table,
00109 int size);
00110 extern int reconstruct(int,int,int);void
00111
00112 extern update(
00113 int code_size,
00114 int y,
00115 int wi,
00116 int fi,
00117 int dq,
00118 int sr,
00119 int dqsez,
00120 struct g72x_state *state_ptr);
00121 extern int
00122 tandem_adjust_alaw(
00123 int sr,
00124 int se,
00125 int y,
00126 int i,
00127 int sign,
00128 short *qtab);
00129
00130 extern int
00131 tandem_adjust_ulaw(
00132 int sr,
00133 int se,
00134 int y,
00135 int i,
00136 int sign,
00137 short *qtab);
00138
00139 extern unsigned char
00140 linear2alaw(
00141 int pcm_val);
00142
00143 extern int
00144 alaw2linear(
00145 unsigned char a_val);
00146
00147 extern unsigned char
00148 linear2ulaw(int pcm_val);
00149
00150 extern int ulaw2linear( unsigned char u_val);
00151
00152 extern int predictor_zero(struct g72x_state *state_ptr);
00153
00154 extern int predictor_pole( struct g72x_state *state_ptr);
00155 extern int step_size( struct g72x_state *state_ptr);
00156 #endif