Lines Matching refs:mb
265 static void dv_decode_ac(GetBitContext *gb, BlockInfo *mb, int16_t *block)
268 const uint8_t *scan_table = mb->scan_table;
269 const uint32_t *factor_table = mb->factor_table;
270 int pos = mb->pos;
271 int partial_bit_count = mb->partial_bit_count;
280 mb->partial_bit_buffer;
282 mb->partial_bit_count = 0;
303 mb->partial_bit_count = last_index - re_index;
304 mb->partial_bit_buffer = re_cache & ~(-1u >> mb->partial_bit_count);
322 mb->pos = pos;
392 BlockInfo mb_data[5 * DV_MAX_BPM], *mb, *mb1;
428 mb = mb1;
440 mb->idct_put = s->idct_put[0];
441 mb->scan_table = s->dv_zigzag[0];
442 mb->factor_table = &s->idct_factor[(j >= 4) * 4 * 16 * 64 +
447 mb->idct_put = s->idct_put[dct_mode && log2_blocksize == 3];
448 mb->scan_table = s->dv_zigzag[dct_mode];
449 mb->factor_table =
460 mb->pos = 0;
461 mb->partial_bit_count = 0;
464 dv_decode_ac(&gb, mb, block);
468 if (mb->pos >= 64)
470 if (mb->pos >= 64 && mb->pos < 127)
474 mb++;
483 mb = mb1;
487 for (j = 0; j < s->sys->bpm; j++, block += 64, mb++) {
488 if (mb->pos < 64 && get_bits_left(&gb) > 0) {
489 dv_decode_ac(&gb, mb, block);
491 if (mb->pos < 64)
493 if (mb->pos < 127)
506 mb = mb_data;
512 if (mb->pos < 64 && get_bits_left(&gb) > 0 && !vs_bit_buffer_damaged) {
514 dv_decode_ac(&gb, mb, block);
517 if (mb->pos >= 64 && mb->pos < 127) {
519 "AC EOB marker is absent pos=%d\n", mb->pos);
523 mb++;
534 mb = mb_data;
553 mb[0].idct_put(y_ptr, linesize, block + 0 * 64);
555 mb[2].idct_put(y_ptr + (1 << log2_blocksize), linesize, block + 2 * 64);
557 mb[1].idct_put(y_ptr + (1 << log2_blocksize), linesize, block + 1 * 64);
558 mb[2].idct_put(y_ptr + y_stride, linesize, block + 2 * 64);
559 mb[3].idct_put(y_ptr + (1 << log2_blocksize) + y_stride, linesize, block + 3 * 64);
562 mb += 4;
575 mb->idct_put(pixels, 8, block);
585 mb++;
591 mb += 2;
595 (mb++)->idct_put(c_ptr, linesize, block);
598 (mb++)->idct_put(c_ptr + y_stride, linesize, block);