Ejemplo n.º 1
0
void skip_bits(bitreader* br, int n)
{
  if (br->nextbits_cnt < n) {
    bitreader_refill(br);
  }

  br->nextbits <<= n;
  br->nextbits_cnt -= n;
}
Ejemplo n.º 2
0
void bitreader_init(bitreader* br, rbsp_buffer* buffer)
{
  br->data = buffer->data;
  br->bytes_remaining = buffer->size;

  br->nextbits=0;
  br->nextbits_cnt=0;

  bitreader_refill(br);
}
Ejemplo n.º 3
0
int  peek_bits(bitreader* br, int n)
{
  if (br->nextbits_cnt < n) {
    bitreader_refill(br);
  }

  uint64_t val = br->nextbits;
  val >>= 64-n;

  return val;
}
Ejemplo n.º 4
0
Archivo: vld.c Proyecto: Masshat/MJPEG
static uint32_t bitreader_get(bitreader_context *cont, size_t number)
{
    uint32_t ret = 0;
    ssize_t diff = number - cont->available;

    if ( diff >= 0 ) {
        ret = cont->current << diff;
        bitreader_refill(cont);
        cont->available = 32 - diff;

        if ( diff )
            ret |= cont->current >> (32 - diff);

    } else {