35                                                   int16_t (*right_block)[64], 
int left_fieldtx,
 
   36                                                   int right_fieldtx, 
int block_num)
 
   42                                   left_fieldtx ^ right_fieldtx ? 16 - 8 * left_fieldtx : 8,
 
   43                                   left_fieldtx ^ right_fieldtx ? 16 - 8 * right_fieldtx : 8,
 
   44                                   left_fieldtx || right_fieldtx ? 0 : 1);
 
   52                                   right_fieldtx ? 0 : 1);
 
   57                                   left_fieldtx && !right_fieldtx ? right_block[0] + 8 : right_block[1],
 
   58                                   left_fieldtx ^ right_fieldtx ? 16 - 8 * left_fieldtx : 8,
 
   59                                   left_fieldtx ^ right_fieldtx ? 16 - 8 * right_fieldtx : 8,
 
   60                                   left_fieldtx || right_fieldtx ? 2 : 1);
 
   68                                   right_fieldtx ? 2 : 1);
 
   79                                                   int16_t (*bottom_block)[64], 
int block_num)
 
  108     int16_t (*topleft_blk)[64], (*top_blk)[64], (*left_blk)[64], (*cur_blk)[64];
 
  110     int mb_pos = 
s->mb_x + 
s->mb_y * 
s->mb_stride;
 
  126     for (
i = 0; 
i < block_count; 
i++) {
 
  127         if (
s->mb_x == 0 && (
i & 5) != 1)
 
  135                                  s->mb_x ? left_blk : cur_blk, cur_blk,
 
  142         for (
i = 0; 
i < block_count; 
i++) {
 
  143             if (
s->first_slice_line && !(
i & 2))
 
  152             if (
s->mb_x == 
s->mb_width - 1 &&
 
  164     int16_t (*topleft_blk)[64], (*top_blk)[64], (*left_blk)[64], (*cur_blk)[64];
 
  166     int mb_pos = 
s->mb_x + 
s->mb_y * 
s->mb_stride;
 
  174     for (
i = 0; 
i < block_count; 
i++) {
 
  175         if (
s->mb_x == 0 && (
i & 5) != 1)
 
  180                                  s->mb_x ? left_blk : cur_blk, cur_blk,
 
  187         for (
i = 0; 
i < block_count; 
i++) {
 
  188             if (
s->first_slice_line && !(
i & 2))
 
  191             if (
s->mb_x && v->
mb_type[0][
s->block_index[
i] - 2 + (
i > 3)] &&
 
  192                 v->
mb_type[0][
s->block_index[
i] - 
s->block_wrap[
i] - 2 + (
i > 3)])
 
  194             if (
s->mb_x == 
s->mb_width - 1)
 
  196                     v->
mb_type[0][
s->block_index[
i] - 
s->block_wrap[
i]])
 
  201 #define LEFT_EDGE   (1 << 0) 
  202 #define RIGHT_EDGE  (1 << 1) 
  203 #define TOP_EDGE    (1 << 2) 
  204 #define BOTTOM_EDGE (1 << 3) 
  207                                                  uint32_t 
flags, 
int block_num)
 
  220             dst = dest + (block_num & 2) * 4 * 
s->linesize + (block_num & 1) * 8;
 
  246     if ((block_num & 5) == 1)
 
  253             dst = dest + (block_num & 2) * 4 * 
s->linesize + (block_num & 1) * 8;
 
  259             } 
else if (block_num < 2 || !fieldtx) {
 
  275     int mb_pos = 
s->mb_x + 
s->mb_y * 
s->mb_stride;
 
  288     if (!
s->first_slice_line) {
 
  289         dest = 
s->dest[0] - 16 * 
s->linesize - 16;
 
  293             for (
i = 0; 
i < block_count; 
i++)
 
  299             for (
i = 0; 
i < block_count; 
i++)
 
  303     if (
s->mb_y == 
s->end_mb_y - 1) {
 
  304         dest = 
s->dest[0] - 16;
 
  308             for (
i = 0; 
i < block_count; 
i++)
 
  314             for (
i = 0; 
i < block_count; 
i++)
 
  319     if (
s->mb_y >= 
s->start_mb_y + 2) {
 
  320         dest = 
s->dest[0] - 32 * 
s->linesize - 16;
 
  323             for (
i = 0; 
i < block_count; 
i++)
 
  329             for (
i = 0; 
i < block_count; 
i++)
 
  333     if (
s->mb_y == 
s->end_mb_y - 1) {
 
  334         if (
s->mb_y >= 
s->start_mb_y + 1) {
 
  335             dest = 
s->dest[0] - 16 * 
s->linesize - 16;
 
  338                 for (
i = 0; 
i < block_count; 
i++)
 
  344                 for (
i = 0; 
i < block_count; 
i++)
 
  348         dest = 
s->dest[0] - 16;
 
  351             for (
i = 0; 
i < block_count; 
i++)
 
  357             for (
i = 0; 
i < block_count; 
i++)
 
  365                                                  int *ttblk, uint32_t 
flags, 
int block_num)
 
  369     uint32_t left_cbp = cbp[0] >> (block_num * 4), right_cbp;
 
  370     uint8_t left_is_intra, right_is_intra;
 
  372     int idx, linesize  = block_num > 3 ? 
s->uvlinesize : 
s->linesize;
 
  378         dst = dest + (block_num & 2) * 4 * 
s->linesize + (block_num & 1) * 8;
 
  381         left_is_intra = is_intra[0] & (1 << block_num);
 
  384             right_is_intra = is_intra[1] & (1 << block_num);
 
  385             right_cbp = cbp[1] >> (block_num * 4);
 
  386         } 
else if (block_num & 1) {
 
  387             right_is_intra = is_intra[1] & (1 << block_num - 1);
 
  388             right_cbp = cbp[1] >> ((block_num - 1) * 4);
 
  390             right_is_intra = is_intra[0] & (1 << block_num + 1);
 
  391             right_cbp = cbp[0] >> ((block_num + 1) * 4);
 
  394         if (left_is_intra || right_is_intra ||
 
  395             mv[0][0] != 
mv[1][0] || 
mv[0][1] != 
mv[1][1] ||
 
  399             idx = (left_cbp | (right_cbp >> 1)) & 5;
 
  407     tt = ttblk[0] >> (block_num * 4) & 0
xf;
 
  418                                                  int *ttblk, uint32_t 
flags, 
int block_num)
 
  422     uint32_t top_cbp = cbp[0] >> (block_num * 4), bottom_cbp;
 
  423     uint8_t top_is_intra, bottom_is_intra;
 
  425     int idx, linesize  = block_num > 3 ? 
s->uvlinesize : 
s->linesize;
 
  431         dst = dest + (block_num & 2) * 4 * 
s->linesize + (block_num & 1) * 8;
 
  434         top_is_intra = is_intra[0] & (1 << block_num);
 
  437             bottom_is_intra = is_intra[
s->mb_stride] & (1 << block_num);
 
  438             bottom_cbp = cbp[
s->mb_stride] >> (block_num * 4);
 
  439         } 
else if (block_num < 2) {
 
  440             bottom_is_intra = is_intra[0] & (1 << block_num + 2);
 
  441             bottom_cbp = cbp[0] >> ((block_num + 2) * 4);
 
  443             bottom_is_intra = is_intra[
s->mb_stride] & (1 << block_num - 2);
 
  444             bottom_cbp = cbp[
s->mb_stride] >> ((block_num - 2) * 4);
 
  447         if (top_is_intra || bottom_is_intra ||
 
  448             mv[0][0] != 
mv[block_num > 3 ? 
s->mb_stride : 
s->b8_stride][0] ||
 
  449             mv[0][1] != 
mv[block_num > 3 ? 
s->mb_stride : 
s->b8_stride][1] ||
 
  450             (v->
fcm == 
ILACE_FIELD && mv_f[0] != mv_f[block_num > 3 ? 
s->mb_stride : 
s->b8_stride]))
 
  453             idx = (top_cbp | (bottom_cbp >> 2)) & 3;
 
  461     tt = ttblk[0] >> (block_num * 4) & 0
xf;
 
  489     if (
s->mb_y >= 
s->start_mb_y + 2) {
 
  491             dest = 
s->dest[0] - 32 * 
s->linesize - 16;
 
  492             cbp = &v->
cbp[
s->mb_x - 2 * 
s->mb_stride - 1];
 
  493             is_intra = &v->
is_intra[
s->mb_x - 2 * 
s->mb_stride - 1];
 
  494             uvmv = &v->
luma_mv[
s->mb_x - 2 * 
s->mb_stride - 1];
 
  495             ttblk = &v->
ttblk[
s->mb_x - 2 * 
s->mb_stride - 1];
 
  497             for (
i = 0; 
i < block_count; 
i++)
 
  499                                     i > 3 ? 
s->dest[
i - 3] - 16 * 
s->uvlinesize - 8 : dest,
 
  503                                             &
s->current_picture.motion_val[0][
s->block_index[
i] - 4 * 
s->b8_stride - 2 + v->
blocks_off],
 
  504                                     i > 3 ? &v->
mv_f[0][
s->block_index[
i] - 2 * 
s->mb_stride - 1 + v->
mb_off] :
 
  510         if (
s->mb_x == 
s->mb_width - 1) {
 
  511             dest = 
s->dest[0] - 32 * 
s->linesize;
 
  512             cbp = &v->
cbp[
s->mb_x - 2 * 
s->mb_stride];
 
  513             is_intra = &v->
is_intra[
s->mb_x - 2 * 
s->mb_stride];
 
  514             uvmv = &v->
luma_mv[
s->mb_x - 2 * 
s->mb_stride];
 
  515             ttblk = &v->
ttblk[
s->mb_x - 2 * 
s->mb_stride];
 
  517             for (
i = 0; 
i < block_count; 
i++)
 
  519                                     i > 3 ? 
s->dest[
i - 3] - 16 * 
s->uvlinesize : dest,
 
  523                                             &
s->current_picture.motion_val[0][
s->block_index[
i] - 4 * 
s->b8_stride + v->
blocks_off],
 
  524                                     i > 3 ? &v->
mv_f[0][
s->block_index[
i] - 2 * 
s->mb_stride + v->
mb_off] :
 
  531     if (
s->mb_y == 
s->end_mb_y - 1) {
 
  533             if (
s->mb_y >= 
s->start_mb_y + 1) {
 
  534                 dest = 
s->dest[0] - 16 * 
s->linesize - 16;
 
  535                 cbp = &v->
cbp[
s->mb_x - 
s->mb_stride - 1];
 
  536                 is_intra = &v->
is_intra[
s->mb_x - 
s->mb_stride - 1];
 
  537                 uvmv = &v->
luma_mv[
s->mb_x - 
s->mb_stride - 1];
 
  538                 ttblk = &v->
ttblk[
s->mb_x - 
s->mb_stride - 1];
 
  540                 for (
i = 0; 
i < block_count; 
i++)
 
  542                                         i > 3 ? 
s->dest[
i - 3] - 8 * 
s->uvlinesize - 8 : dest,
 
  546                                                 &
s->current_picture.motion_val[0][
s->block_index[
i] - 2 * 
s->b8_stride - 2 + v->
blocks_off],
 
  547                                         i > 3 ? &v->
mv_f[0][
s->block_index[
i] - 
s->mb_stride - 1 + v->
mb_off] :
 
  553             dest = 
s->dest[0] - 16;
 
  554             cbp = &v->
cbp[
s->mb_x - 1];
 
  557             ttblk = &v->
ttblk[
s->mb_x - 1];
 
  559             for (
i = 0; 
i < block_count; 
i++)
 
  561                                     i > 3 ? 
s->dest[
i - 3] - 8 : dest,
 
  565                                             &
s->current_picture.motion_val[0][
s->block_index[
i] - 2 + v->
blocks_off],
 
  572         if (
s->mb_x == 
s->mb_width - 1) {
 
  573             if (
s->mb_y >= 
s->start_mb_y + 1) {
 
  574                 dest = 
s->dest[0] - 16 * 
s->linesize;
 
  575                 cbp = &v->
cbp[
s->mb_x - 
s->mb_stride];
 
  576                 is_intra = &v->
is_intra[
s->mb_x - 
s->mb_stride];
 
  577                 uvmv = &v->
luma_mv[
s->mb_x - 
s->mb_stride];
 
  578                 ttblk = &v->
ttblk[
s->mb_x - 
s->mb_stride];
 
  580                 for (
i = 0; 
i < block_count; 
i++)
 
  582                                         i > 3 ? 
s->dest[
i - 3] - 8 * 
s->uvlinesize : dest,
 
  586                                                 &
s->current_picture.motion_val[0][
s->block_index[
i] - 2 * 
s->b8_stride + v->
blocks_off],
 
  587                                         i > 3 ? &v->
mv_f[0][
s->block_index[
i] - 
s->mb_stride + v->
mb_off] :
 
  594             cbp = &v->
cbp[
s->mb_x];
 
  597             ttblk = &v->
ttblk[
s->mb_x];
 
  599             for (
i = 0; 
i < block_count; 
i++)
 
  601                                     i > 3 ? 
s->dest[
i - 3] : dest,
 
  605                                             &
s->current_picture.motion_val[0][
s->block_index[
i] + v->
blocks_off],
 
  614     if (
s->mb_y >= 
s->start_mb_y + 2) {
 
  616             dest = 
s->dest[0] - 32 * 
s->linesize - 32;
 
  617             cbp = &v->
cbp[
s->mb_x - 2 * 
s->mb_stride - 2];
 
  618             is_intra = &v->
is_intra[
s->mb_x - 2 * 
s->mb_stride - 2];
 
  619             uvmv = &v->
luma_mv[
s->mb_x - 2 * 
s->mb_stride - 2];
 
  620             ttblk = &v->
ttblk[
s->mb_x - 2 * 
s->mb_stride - 2];
 
  622             for (
i = 0; 
i < block_count; 
i++)
 
  624                                     i > 3 ? 
s->dest[
i - 3] - 16 * 
s->uvlinesize - 16 : dest,
 
  628                                             &
s->current_picture.motion_val[0][
s->block_index[
i] - 4 * 
s->b8_stride - 4 + v->
blocks_off],
 
  629                                     i > 3 ? &v->
mv_f[0][
s->block_index[
i] - 2 * 
s->mb_stride - 2 + v->
mb_off] :
 
  635         if (
s->mb_x == 
s->mb_width - 1) {
 
  637                 dest = 
s->dest[0] - 32 * 
s->linesize - 16;
 
  638                 cbp = &v->
cbp[
s->mb_x - 2 * 
s->mb_stride - 1];
 
  639                 is_intra = &v->
is_intra[
s->mb_x - 2 * 
s->mb_stride - 1];
 
  640                 uvmv = &v->
luma_mv[
s->mb_x - 2 * 
s->mb_stride - 1];
 
  641                 ttblk = &v->
ttblk[
s->mb_x - 2 * 
s->mb_stride - 1];
 
  643                 for (
i = 0; 
i < block_count; 
i++)
 
  645                                             i > 3 ? 
s->dest[
i - 3] - 16 * 
s->uvlinesize - 8 : dest,
 
  649                                                     &
s->current_picture.motion_val[0][
s->block_index[
i] - 4 * 
s->b8_stride - 2 + v->
blocks_off],
 
  650                                             i > 3 ? &v->
mv_f[0][
s->block_index[
i] - 2 * 
s->mb_stride - 1 + v->
mb_off] :
 
  656             dest = 
s->dest[0] - 32 * 
s->linesize;
 
  657             cbp = &v->
cbp[
s->mb_x - 2 * 
s->mb_stride];
 
  658             is_intra = &v->
is_intra[
s->mb_x - 2 * 
s->mb_stride];
 
  659             uvmv = &v->
luma_mv[
s->mb_x - 2 * 
s->mb_stride];
 
  660             ttblk = &v->
ttblk[
s->mb_x - 2 * 
s->mb_stride];
 
  662             for (
i = 0; 
i < block_count; 
i++)
 
  664                                     i > 3 ? 
s->dest[
i - 3] - 16 * 
s->uvlinesize : dest,
 
  668                                             &
s->current_picture.motion_val[0][
s->block_index[
i] - 4 * 
s->b8_stride + v->
blocks_off],
 
  669                                     i > 3 ? &v->
mv_f[0][
s->block_index[
i] - 2 * 
s->mb_stride + v->
mb_off] :
 
  676     if (
s->mb_y == 
s->end_mb_y - 1) {
 
  677         if (
s->mb_y >= 
s->start_mb_y + 1) {
 
  679                 dest = 
s->dest[0] - 16 * 
s->linesize - 32;
 
  680                 cbp = &v->
cbp[
s->mb_x - 
s->mb_stride - 2];
 
  681                 is_intra = &v->
is_intra[
s->mb_x - 
s->mb_stride - 2];
 
  682                 uvmv = &v->
luma_mv[
s->mb_x - 
s->mb_stride - 2];
 
  683                 ttblk = &v->
ttblk[
s->mb_x - 
s->mb_stride - 2];
 
  685                 for (
i = 0; 
i < block_count; 
i++)
 
  687                                         i > 3 ? 
s->dest[
i - 3] - 8 * 
s->uvlinesize - 16 : dest,
 
  691                                                 &
s->current_picture.motion_val[0][
s->block_index[
i] - 2 * 
s->b8_stride - 4 + v->
blocks_off],
 
  692                                         i > 3 ? &v->
mv_f[0][
s->block_index[
i] - 
s->mb_stride - 2 + v->
mb_off] :
 
  698             if (
s->mb_x == 
s->mb_width - 1) {
 
  700                     dest = 
s->dest[0] - 16 * 
s->linesize - 16;
 
  701                     cbp = &v->
cbp[
s->mb_x - 
s->mb_stride - 1];
 
  702                     is_intra = &v->
is_intra[
s->mb_x - 
s->mb_stride - 1];
 
  703                     uvmv = &v->
luma_mv[
s->mb_x - 
s->mb_stride - 1];
 
  704                     ttblk = &v->
ttblk[
s->mb_x - 
s->mb_stride - 1];
 
  706                     for (
i = 0; 
i < block_count; 
i++)
 
  708                                                 i > 3 ? 
s->dest[
i - 3] - 8 * 
s->uvlinesize - 8 : dest,
 
  712                                                         &
s->current_picture.motion_val[0][
s->block_index[
i] - 2 * 
s->b8_stride - 2 + v->
blocks_off],
 
  713                                                 i > 3 ? &v->
mv_f[0][
s->block_index[
i] - 
s->mb_stride - 1 + v->
mb_off] :
 
  719                 dest = 
s->dest[0] - 16 * 
s->linesize;
 
  720                 cbp = &v->
cbp[
s->mb_x - 
s->mb_stride];
 
  721                 is_intra = &v->
is_intra[
s->mb_x - 
s->mb_stride];
 
  722                 uvmv = &v->
luma_mv[
s->mb_x - 
s->mb_stride];
 
  723                 ttblk = &v->
ttblk[
s->mb_x - 
s->mb_stride];
 
  725                 for (
i = 0; 
i < block_count; 
i++)
 
  727                                         i > 3 ? 
s->dest[
i - 3] - 8 * 
s->uvlinesize : dest,
 
  731                                                 &
s->current_picture.motion_val[0][
s->block_index[
i] - 2 * 
s->b8_stride + v->
blocks_off],
 
  732                                         i > 3 ? &v->
mv_f[0][
s->block_index[
i] - 
s->mb_stride + v->
mb_off] :
 
  740             dest = 
s->dest[0] - 32;
 
  741             cbp = &v->
cbp[
s->mb_x - 2];
 
  744             ttblk = &v->
ttblk[
s->mb_x - 2];
 
  746             for (
i = 0; 
i < block_count; 
i++)
 
  748                                     i > 3 ? 
s->dest[
i - 3] - 16 : dest,
 
  752                                             &
s->current_picture.motion_val[0][
s->block_index[
i] - 4 + v->
blocks_off],
 
  759         if (
s->mb_x == 
s->mb_width - 1) {
 
  761                 dest = 
s->dest[0] - 16;
 
  762                 cbp = &v->
cbp[
s->mb_x - 1];
 
  765                 ttblk = &v->
ttblk[
s->mb_x - 1];
 
  767                 for (
i = 0; 
i < block_count; 
i++)
 
  769                                         i > 3 ? 
s->dest[
i - 3] - 8 : dest,
 
  773                                                 &
s->current_picture.motion_val[0][
s->block_index[
i] - 2 + v->
blocks_off],
 
  781             cbp = &v->
cbp[
s->mb_x];
 
  784             ttblk = &v->
ttblk[
s->mb_x];
 
  786             for (
i = 0; 
i < block_count; 
i++)
 
  788                                     i > 3 ? 
s->dest[
i - 3] : dest,
 
  792                                             &
s->current_picture.motion_val[0][
s->block_index[
i] + v->
blocks_off],
 
  808     int linesize  = block_num > 3 ? 
s->uvlinesize : 
s->linesize;
 
  814         dst = dest + (block_num & 2) * 4 * 
s->linesize + (block_num & 1) * 8;
 
  816     tt = ttblk[0] >> (block_num * 4) & 0
xf;
 
  858     int linesize  = block_num > 3 ? 
s->uvlinesize : 
s->linesize;
 
  864         dst = dest + (block_num & 2) * 4 * 
s->linesize + (block_num & 1) * 8;
 
  866     tt = ttblk[0] >> (block_num * 4) & 0
xf;
 
  913     int mb_pos = 
s->mb_x + 
s->mb_y * 
s->mb_stride;
 
  929         if (
s->mb_y >= 
s->start_mb_y + 1) {
 
  930             dest = 
s->dest[0] - 16 * 
s->linesize - 16;
 
  931             ttblk = &v->
ttblk[
s->mb_x - 
s->mb_stride - 1];
 
  934             for (
i = 0; 
i < block_count; 
i++)
 
  936                                           i > 3 ? 
s->dest[
i - 3] - 8 * 
s->uvlinesize - 8 : dest,
 
  943     if (
s->mb_x == 
s->mb_width - 1) {
 
  944         if (
s->mb_y >= 
s->start_mb_y + 1) {
 
  945             dest = 
s->dest[0] - 16 * 
s->linesize;
 
  946             ttblk = &v->
ttblk[
s->mb_x - 
s->mb_stride];
 
  949             for (
i = 0; 
i < block_count; 
i++)
 
  951                                           i > 3 ? 
s->dest[
i - 3] - 8 * 
s->uvlinesize : dest,
 
  958     if (
s->mb_y == 
s->end_mb_y - 1) {
 
  960             dest = 
s->dest[0] - 16;
 
  961             ttblk = &v->
ttblk[
s->mb_x - 1];
 
  964             for (
i = 0; 
i < block_count; 
i++)
 
  966                                           i > 3 ? 
s->dest[
i - 3] - 8 : dest,
 
  972         if (
s->mb_x == 
s->mb_width - 1) {
 
  974             ttblk = &v->
ttblk[
s->mb_x];
 
  977             for (
i = 0; 
i < block_count; 
i++)
 
  979                                           i > 3 ? 
s->dest[
i - 3] : dest,
 
  987     if (
s->mb_y >= 
s->start_mb_y + 2) {
 
  989             dest = 
s->dest[0] - 32 * 
s->linesize - 32;
 
  990             ttblk = &v->
ttblk[
s->mb_x - 2 * 
s->mb_stride - 2];
 
  993             for (
i = 0; 
i < block_count; 
i++)
 
  995                                           i > 3 ? 
s->dest[
i - 3] - 16 * 
s->uvlinesize - 16 : dest,
 
 1001         if (
s->mb_x == 
s->mb_width - 1) {
 
 1003                 dest = 
s->dest[0] - 32 * 
s->linesize - 16;
 
 1004                 ttblk = &v->
ttblk[
s->mb_x - 2 * 
s->mb_stride - 1];
 
 1007                 for (
i = 0; 
i < block_count; 
i++)
 
 1009                                               i > 3 ? 
s->dest[
i - 3] - 16 * 
s->uvlinesize - 8 : dest,
 
 1015             dest = 
s->dest[0] - 32 * 
s->linesize;
 
 1016             ttblk = &v->
ttblk[
s->mb_x - 2 * 
s->mb_stride];
 
 1019             for (
i = 0; 
i < block_count; 
i++)
 
 1021                                           i > 3 ? 
s->dest[
i - 3] - 16 * 
s->uvlinesize : dest,
 
 1028     if (
s->mb_y == 
s->end_mb_y - 1) {
 
 1029         if (
s->mb_y >= 
s->start_mb_y + 1) {
 
 1031                 dest = 
s->dest[0] - 16 * 
s->linesize - 32;
 
 1032                 ttblk = &v->
ttblk[
s->mb_x - 
s->mb_stride - 2];
 
 1035                 for (
i = 0; 
i < block_count; 
i++)
 
 1037                                               i > 3 ? 
s->dest[
i - 3] - 8 * 
s->uvlinesize - 16 : dest,
 
 1043             if (
s->mb_x == 
s->mb_width - 1) {
 
 1045                     dest = 
s->dest[0] - 16 * 
s->linesize - 16;
 
 1046                     ttblk = &v->
ttblk[
s->mb_x - 
s->mb_stride - 1];
 
 1049                     for (
i = 0; 
i < block_count; 
i++)
 
 1051                                                   i > 3 ? 
s->dest[
i - 3] - 8 * 
s->uvlinesize - 8 : dest,
 
 1057                 dest = 
s->dest[0] - 16 * 
s->linesize;
 
 1058                 ttblk = &v->
ttblk[
s->mb_x - 
s->mb_stride];
 
 1061                 for (
i = 0; 
i < block_count; 
i++)
 
 1063                                               i > 3 ? 
s->dest[
i - 3] - 8 * 
s->uvlinesize : dest,
 
 1071             dest = 
s->dest[0] - 32;
 
 1072             ttblk = &v->
ttblk[
s->mb_x - 2];
 
 1075             for (
i = 0; 
i < block_count; 
i++)
 
 1077                                           i > 3 ? 
s->dest[
i - 3] - 16 : dest,
 
 1083         if (
s->mb_x == 
s->mb_width - 1) {
 
 1085                 dest = 
s->dest[0] - 16;
 
 1086                 ttblk = &v->
ttblk[
s->mb_x - 1];
 
 1089                 for (
i = 0; 
i < block_count; 
i++)
 
 1091                                               i > 3 ? 
s->dest[
i - 3] - 8 : dest,
 
 1098             ttblk = &v->
ttblk[
s->mb_x];
 
 1101             for (
i = 0; 
i < block_count; 
i++)
 
 1103                                           i > 3 ? 
s->dest[
i - 3] : dest,
 
 1113                                                        int *ttblk, uint32_t 
flags, 
int block_num)
 
 1118     uint32_t block_cbp = cbp[0] >> (block_num * 4);
 
 1120     int idx, linesize  = block_num > 3 ? 
s->uvlinesize : 
s->linesize;
 
 1125         dst = dest + (block_num & 2) * 4 * 
s->linesize + (block_num & 1) * 8;
 
 1134     tt = ttblk[0] >> (block_num * 4) & 0
xf;
 
 1136         idx = (block_cbp | (block_cbp >> 1)) & 5;
 
 1145                                                        int *ttblk, uint32_t 
flags, 
int block_num)
 
 1150     uint32_t block_cbp = cbp[0] >> (block_num * 4);
 
 1152     int idx, linesize  = block_num > 3 ? 
s->uvlinesize : 
s->linesize;
 
 1157         dst = dest + (block_num & 2) * 4 * 
s->linesize + (block_num & 1) * 8;
 
 1162     tt = ttblk[0] >> (block_num * 4) & 0
xf;
 
 1164         idx = (block_cbp | (block_cbp >> 2)) & 3;
 
 1188     if (!
s->first_slice_line) {
 
 1189         dest = 
s->dest[0] - 16 * 
s->linesize;
 
 1190         cbp = &v->
cbp[
s->mb_x - 
s->mb_stride];
 
 1191         ttblk = &v->
ttblk[
s->mb_x - 
s->mb_stride];
 
 1193         for (
i = 0; 
i < block_count; 
i++)
 
 1196     if (
s->mb_y == 
s->end_mb_y - 1) {
 
 1198         cbp = &v->
cbp[
s->mb_x];
 
 1199         ttblk = &v->
ttblk[
s->mb_x];
 
 1201         for (
i = 0; 
i < block_count; 
i++)
 
 1205     if (!
s->first_slice_line) {
 
 1206         dest = 
s->dest[0] - 16 * 
s->linesize - 16;
 
 1207         cbp = &v->
cbp[
s->mb_x - 
s->mb_stride - 1];
 
 1208         ttblk = &v->
ttblk[
s->mb_x - 
s->mb_stride - 1];
 
 1211             for (
i = 0; 
i < block_count; 
i++)
 
 1214         if (
s->mb_x == 
s->mb_width - 1) {
 
 1219             for (
i = 0; 
i < block_count; 
i++)
 
 1223     if (
s->mb_y == 
s->end_mb_y - 1) {
 
 1224         dest = 
s->dest[0] - 16;
 
 1225         cbp = &v->
cbp[
s->mb_x - 1];
 
 1226         ttblk = &v->
ttblk[
s->mb_x - 1];
 
 1229             for (
i = 0; 
i < block_count; 
i++)
 
 1232         if (
s->mb_x == 
s->mb_width - 1) {
 
 1237             for (
i = 0; 
i < block_count; 
i++)