| 
									
										
										
										
											2004-10-14 05:15:48 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /******************************************************************
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     iLBC Speech Coder ANSI-C Source Code | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     packing.h               | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Copyright (C) The Internet Society (2004).  | 
					
						
							|  |  |  |     All Rights Reserved. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ******************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef __PACKING_H
 | 
					
						
							|  |  |  | #define __PACKING_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void packsplit( | 
					
						
							|  |  |  |     int *index,                 /* (i) the value to split */ | 
					
						
							|  |  |  |     int *firstpart,             /* (o) the value specified by most 
 | 
					
						
							|  |  |  |                                        significant bits */ | 
					
						
							|  |  |  |     int *rest,                  /* (o) the value specified by least 
 | 
					
						
							|  |  |  |                                        significant bits */ | 
					
						
							|  |  |  |     int bitno_firstpart,    /* (i) number of bits in most 
 | 
					
						
							|  |  |  |                                        significant part */ | 
					
						
							|  |  |  |     int bitno_total             /* (i) number of bits in full range 
 | 
					
						
							|  |  |  |                                        of value */ | 
					
						
							|  |  |  | ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void packcombine(  | 
					
						
							|  |  |  |     int *index,                 /* (i/o) the msb value in the 
 | 
					
						
							|  |  |  |                                        combined value out */ | 
					
						
							|  |  |  |     int rest,                   /* (i) the lsb value */ | 
					
						
							|  |  |  |     int bitno_rest              /* (i) the number of bits in the 
 | 
					
						
							|  |  |  |                                        lsb part */ | 
					
						
							|  |  |  | ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void dopack(  | 
					
						
							|  |  |  |     unsigned char **bitstream,  /* (i/o) on entrance pointer to 
 | 
					
						
							|  |  |  |                                        place in bitstream to pack  | 
					
						
							|  |  |  |                                        new data, on exit pointer  | 
					
						
							|  |  |  |                                        to place in bitstream to  | 
					
						
							|  |  |  |                                        pack future data */ | 
					
						
							|  |  |  |     int index,                  /* (i) the value to pack */ | 
					
						
							|  |  |  |     int bitno,                  /* (i) the number of bits that the 
 | 
					
						
							|  |  |  |                                        value will fit within */ | 
					
						
							|  |  |  |     int *pos                /* (i/o) write position in the 
 | 
					
						
							|  |  |  |                                        current byte */ | 
					
						
							|  |  |  | ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void unpack(  | 
					
						
							|  |  |  |     unsigned char **bitstream,  /* (i/o) on entrance pointer to 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                                        place in bitstream to  | 
					
						
							|  |  |  |                                        unpack new data from, on  | 
					
						
							|  |  |  |                                        exit pointer to place in  | 
					
						
							|  |  |  |                                        bitstream to unpack future  | 
					
						
							|  |  |  |                                        data from */ | 
					
						
							|  |  |  |     int *index,                 /* (o) resulting value */ | 
					
						
							|  |  |  |     int bitno,                  /* (i) number of bits used to 
 | 
					
						
							|  |  |  |                                        represent the value */ | 
					
						
							|  |  |  |     int *pos                /* (i/o) read position in the 
 | 
					
						
							|  |  |  |                                        current byte */ | 
					
						
							|  |  |  | ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 |