27 #ifndef AVCODEC_RANGECODER_H
28 #define AVCODEC_RANGECODER_H
53 while(c->
range < 0x100){
56 }
else if(c->
low <= 0xFF00){
61 }
else if(c->
low >= 0x10000){
70 c->
low = (c->
low & 0xFF)<<8;
79 return 8*x - av_log2(c->
range);
83 int range1= (c->
range * (*state)) >> 8;
86 assert(range1 < c->range);
101 if(c->
range < 0x100){
111 int range1= (c->
range * (*state)) >> 8;
128 one_mask= (c->
range - c->
low-1)>>31;
133 *state= c->
zero_state[(*state) + (256&one_mask)];
struct RangeCoder RangeCoder
static int get_rac(RangeCoder *c, uint8_t *const state)
void ff_init_range_encoder(RangeCoder *c, uint8_t *buf, int buf_size)
void ff_build_rac_states(RangeCoder *c, int factor, int max_p)
static void put_rac(RangeCoder *c, uint8_t *const state, int bit)
static void renorm_encoder(RangeCoder *c)
static void refill(RangeCoder *c)
void ff_init_range_decoder(RangeCoder *c, const uint8_t *buf, int buf_size)
int ff_rac_terminate(RangeCoder *c)
static int get_rac_count(RangeCoder *c)
common internal and external API header
uint8_t * bytestream_start