aboutsummaryrefslogtreecommitdiffstats
path: root/codecs/ilbc/packing.h
blob: 21261e82d39c5f328fc5b35df3084b9639352b98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 
/****************************************************************** 
 
    iLBC Speech Coder ANSI-C Source Code 
 
    packing.h               
 
    Copyright (c) 2001, 
    Global IP Sound AB. 
    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