r663: This commit was generated by cvs2svn to compensate for changes in r662,
[cinelerra_cv.git] / mplexhi / bits.h
blobd7c72248db934c607ff5fd299050313b866ad6af
1 /* bitstream stuff */
2 #define BUFFER_SIZE 4096
3 #define TRUE 1
4 #define FALSE 0
6 typedef long long bitcount_t;
8 struct _bitstream {
9 unsigned char *bfr;
10 unsigned char outbyte;
11 int byteidx;
12 int bitidx;
13 int bufcount;
14 fpos_t actpos;
15 bitcount_t totbits;
16 FILE *bitfile;
17 int eobs;
18 int fileOutError;
21 typedef struct _bitstream bitstream;
22 typedef struct _bitstream Bit_stream_struc;
24 /* bits */
25 int init_putbits(bitstream *bs, char *bs_filename);
26 void finish_putbits(bitstream *bs);
27 int init_getbits(bitstream *bs, char *bs_filename);
28 void finish_getbits(bitstream *bs);
29 unsigned int get1bit(bitstream *bs);
30 unsigned int getbits(bitstream *bs, int N);
31 void putbits(bitstream *bs, int val, int n);
32 void put1bit(bitstream *bs, int val);
33 void alignbits(bitstream *bs);
34 void prepareundo(bitstream *bs, bitstream *undo);
35 void undochanges(bitstream *bs, bitstream *old);
36 bitcount_t bitcount(bitstream *bs);
37 int end_bs(bitstream *bs);
38 int seek_sync(bitstream *bs, unsigned int sync, int N);