79 #include "jasper/jas_types.h" 80 #include "jasper/jas_stream.h" 91 #define JPC_BITSTREAM_READ 0x01 93 #define JPC_BITSTREAM_WRITE 0x02 100 #define JPC_BITSTREAM_NOCLOSE 0x01 102 #define JPC_BITSTREAM_EOF 0x02 104 #define JPC_BITSTREAM_ERR 0x04 124 jas_stream_t *stream_;
136 jpc_bitstream_t *jpc_bitstream_sopen(jas_stream_t *stream,
char *mode);
139 int jpc_bitstream_close(jpc_bitstream_t *bitstream);
147 #define jpc_bitstream_getbit(bitstream) \ 148 jpc_bitstream_getbit_func(bitstream) 150 #define jpc_bitstream_getbit(bitstream) \ 151 jpc_bitstream_getbit_macro(bitstream) 156 #define jpc_bitstream_putbit(bitstream, v) \ 157 jpc_bitstream_putbit_func(bitstream, v) 159 #define jpc_bitstream_putbit(bitstream, v) \ 160 jpc_bitstream_putbit_macro(bitstream, v) 164 long jpc_bitstream_getbits(jpc_bitstream_t *bitstream,
int n);
167 int jpc_bitstream_putbits(jpc_bitstream_t *bitstream,
int n,
long v);
175 int jpc_bitstream_align(jpc_bitstream_t *bitstream);
180 int jpc_bitstream_inalign(jpc_bitstream_t *bitstream,
int fillmask,
185 int jpc_bitstream_outalign(jpc_bitstream_t *bitstream,
int filldata);
188 int jpc_bitstream_needalign(jpc_bitstream_t *bitstream);
191 int jpc_bitstream_pending(jpc_bitstream_t *bitstream);
198 #define jpc_bitstream_eof(bitstream) \ 199 ((bitstream)->flags_ & JPC_BITSTREAM_EOF) 208 int jpc_bitstream_getbit_func(jpc_bitstream_t *bitstream);
210 int jpc_bitstream_putbit_func(jpc_bitstream_t *bitstream,
int v);
212 int jpc_bitstream_fillbuf(jpc_bitstream_t *bitstream);
214 #define jpc_bitstream_getbit_macro(bitstream) \ 215 (assert((bitstream)->openmode_ & JPC_BITSTREAM_READ), \ 216 (--(bitstream)->cnt_ >= 0) ? \ 217 ((int)(((bitstream)->buf_ >> (bitstream)->cnt_) & 1)) : \ 218 jpc_bitstream_fillbuf(bitstream)) 220 #define jpc_bitstream_putbit_macro(bitstream, bit) \ 221 (assert((bitstream)->openmode_ & JPC_BITSTREAM_WRITE), \ 222 (--(bitstream)->cnt_ < 0) ? \ 223 ((bitstream)->buf_ = ((bitstream)->buf_ << 8) & 0xffff, \ 224 (bitstream)->cnt_ = ((bitstream)->buf_ == 0xff00) ? 6 : 7, \ 225 (bitstream)->buf_ |= ((bit) & 1) << (bitstream)->cnt_, \ 226 (jas_stream_putc((bitstream)->stream_, (bitstream)->buf_ >> 8) == EOF) \ 227 ? (EOF) : ((bit) & 1)) : \ 228 ((bitstream)->buf_ |= ((bit) & 1) << (bitstream)->cnt_, \