00001
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
00034
00035
00036 #ifndef BITS_H
00037 #define BITS_H
00038
00044 #ifdef __cplusplus
00045 extern "C" {
00046 #endif
00047
00049 typedef struct SpeexBits {
00050 char *chars;
00051 int nbBits;
00052 int charPtr;
00053 int bitPtr;
00054 int owner;
00055 int overflow;
00056 int buf_size;
00057 int reserved1;
00058 void *reserved2;
00059 } SpeexBits;
00060
00062 void speex_bits_init(SpeexBits *bits);
00063
00065 void speex_bits_init_buffer(SpeexBits *bits, void *buff, int buf_size);
00066
00068 void speex_bits_set_bit_buffer(SpeexBits *bits, void *buff, int buf_size);
00069
00071 void speex_bits_destroy(SpeexBits *bits);
00072
00074 void speex_bits_reset(SpeexBits *bits);
00075
00077 void speex_bits_rewind(SpeexBits *bits);
00078
00080 void speex_bits_read_from(SpeexBits *bits, char *bytes, int len);
00081
00088 void speex_bits_read_whole_bytes(SpeexBits *bits, char *bytes, int len);
00089
00097 int speex_bits_write(SpeexBits *bits, char *bytes, int max_len);
00098
00100 int speex_bits_write_whole_bytes(SpeexBits *bits, char *bytes, int max_len);
00101
00107 void speex_bits_pack(SpeexBits *bits, int data, int nbBits);
00108
00115 int speex_bits_unpack_signed(SpeexBits *bits, int nbBits);
00116
00123 unsigned int speex_bits_unpack_unsigned(SpeexBits *bits, int nbBits);
00124
00130 int speex_bits_nbytes(SpeexBits *bits);
00131
00138 unsigned int speex_bits_peek_unsigned(SpeexBits *bits, int nbBits);
00139
00146 int speex_bits_peek(SpeexBits *bits);
00147
00153 void speex_bits_advance(SpeexBits *bits, int n);
00154
00160 int speex_bits_remaining(SpeexBits *bits);
00161
00167 void speex_bits_insert_terminator(SpeexBits *bits);
00168
00169 #ifdef __cplusplus
00170 }
00171 #endif
00172
00173
00174 #endif