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;
239 uint32_t
flags, uint8_t fieldtx,
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;
276 uint8_t *dest, fieldtx;
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++)
364 uint8_t *is_intra, int16_t (*
mv)[2], uint8_t *mv_f,
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;
417 uint8_t *is_intra, int16_t (*
mv)[2], uint8_t *mv_f,
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],
803 uint32_t
flags, uint8_t fieldtx,
int block_num)
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;
853 uint32_t
flags, uint8_t fieldtx,
int block_num)
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;
1131 tt = ttblk[0] >> (block_num * 4) & 0
xf;
1133 idx = (block_cbp | (block_cbp >> 1)) & 5;
1142 int *ttblk, uint32_t
flags,
int block_num)
1147 uint32_t block_cbp = cbp[0] >> (block_num * 4);
1149 int idx, linesize = block_num > 3 ?
s->uvlinesize :
s->linesize;
1154 dst = dest + (block_num & 2) * 4 *
s->linesize + (block_num & 1) * 8;
1159 tt = ttblk[0] >> (block_num * 4) & 0
xf;
1161 idx = (block_cbp | (block_cbp >> 2)) & 3;
1185 if (!
s->first_slice_line) {
1186 dest =
s->dest[0] - 16 *
s->linesize;
1187 cbp = &v->
cbp[
s->mb_x -
s->mb_stride];
1188 ttblk = &v->
ttblk[
s->mb_x -
s->mb_stride];
1190 for (
i = 0;
i < block_count;
i++)
1193 if (
s->mb_y ==
s->end_mb_y - 1) {
1195 cbp = &v->
cbp[
s->mb_x];
1196 ttblk = &v->
ttblk[
s->mb_x];
1198 for (
i = 0;
i < block_count;
i++)
1202 if (!
s->first_slice_line) {
1203 dest =
s->dest[0] - 16 *
s->linesize - 16;
1204 cbp = &v->
cbp[
s->mb_x -
s->mb_stride - 1];
1205 ttblk = &v->
ttblk[
s->mb_x -
s->mb_stride - 1];
1208 for (
i = 0;
i < block_count;
i++)
1211 if (
s->mb_x ==
s->mb_width - 1) {
1216 for (
i = 0;
i < block_count;
i++)
1220 if (
s->mb_y ==
s->end_mb_y - 1) {
1221 dest =
s->dest[0] - 16;
1222 cbp = &v->
cbp[
s->mb_x - 1];
1223 ttblk = &v->
ttblk[
s->mb_x - 1];
1226 for (
i = 0;
i < block_count;
i++)
1229 if (
s->mb_x ==
s->mb_width - 1) {
1234 for (
i = 0;
i < block_count;
i++)