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;
418 const uint8_t *is_intra, int16_t (*
mv)[2],
const uint8_t *mv_f,
419 const int *ttblk, uint32_t
flags,
int block_num)
423 uint32_t top_cbp = cbp[0] >> (block_num * 4), bottom_cbp;
424 uint8_t top_is_intra, bottom_is_intra;
426 int idx, linesize = block_num > 3 ?
s->uvlinesize :
s->linesize;
432 dst = dest + (block_num & 2) * 4 *
s->linesize + (block_num & 1) * 8;
435 top_is_intra = is_intra[0] & (1 << block_num);
438 bottom_is_intra = is_intra[
s->mb_stride] & (1 << block_num);
439 bottom_cbp = cbp[
s->mb_stride] >> (block_num * 4);
440 }
else if (block_num < 2) {
441 bottom_is_intra = is_intra[0] & (1 << block_num + 2);
442 bottom_cbp = cbp[0] >> ((block_num + 2) * 4);
444 bottom_is_intra = is_intra[
s->mb_stride] & (1 << block_num - 2);
445 bottom_cbp = cbp[
s->mb_stride] >> ((block_num - 2) * 4);
448 if (top_is_intra || bottom_is_intra ||
449 mv[0][0] !=
mv[block_num > 3 ?
s->mb_stride :
s->b8_stride][0] ||
450 mv[0][1] !=
mv[block_num > 3 ?
s->mb_stride :
s->b8_stride][1] ||
451 (v->
fcm ==
ILACE_FIELD && mv_f[0] != mv_f[block_num > 3 ?
s->mb_stride :
s->b8_stride]))
454 idx = (top_cbp | (bottom_cbp >> 2)) & 3;
462 tt = ttblk[0] >> (block_num * 4) & 0
xf;
490 if (
s->mb_y >=
s->start_mb_y + 2) {
492 dest =
s->dest[0] - 32 *
s->linesize - 16;
493 cbp = &v->
cbp[
s->mb_x - 2 *
s->mb_stride - 1];
494 is_intra = &v->
is_intra[
s->mb_x - 2 *
s->mb_stride - 1];
495 uvmv = &v->
luma_mv[
s->mb_x - 2 *
s->mb_stride - 1];
496 ttblk = &v->
ttblk[
s->mb_x - 2 *
s->mb_stride - 1];
498 for (
i = 0;
i < block_count;
i++)
500 i > 3 ?
s->dest[
i - 3] - 16 *
s->uvlinesize - 8 : dest,
504 &
s->cur_pic.motion_val[0][
s->block_index[
i] - 4 *
s->b8_stride - 2 + v->
blocks_off],
505 i > 3 ? &v->
mv_f[0][
s->block_index[
i] - 2 *
s->mb_stride - 1 + v->
mb_off] :
511 if (
s->mb_x ==
s->mb_width - 1) {
512 dest =
s->dest[0] - 32 *
s->linesize;
513 cbp = &v->
cbp[
s->mb_x - 2 *
s->mb_stride];
514 is_intra = &v->
is_intra[
s->mb_x - 2 *
s->mb_stride];
515 uvmv = &v->
luma_mv[
s->mb_x - 2 *
s->mb_stride];
516 ttblk = &v->
ttblk[
s->mb_x - 2 *
s->mb_stride];
518 for (
i = 0;
i < block_count;
i++)
520 i > 3 ?
s->dest[
i - 3] - 16 *
s->uvlinesize : dest,
524 &
s->cur_pic.motion_val[0][
s->block_index[
i] - 4 *
s->b8_stride + v->
blocks_off],
525 i > 3 ? &v->
mv_f[0][
s->block_index[
i] - 2 *
s->mb_stride + v->
mb_off] :
532 if (
s->mb_y ==
s->end_mb_y - 1) {
534 if (
s->mb_y >=
s->start_mb_y + 1) {
535 dest =
s->dest[0] - 16 *
s->linesize - 16;
536 cbp = &v->
cbp[
s->mb_x -
s->mb_stride - 1];
537 is_intra = &v->
is_intra[
s->mb_x -
s->mb_stride - 1];
538 uvmv = &v->
luma_mv[
s->mb_x -
s->mb_stride - 1];
539 ttblk = &v->
ttblk[
s->mb_x -
s->mb_stride - 1];
541 for (
i = 0;
i < block_count;
i++)
543 i > 3 ?
s->dest[
i - 3] - 8 *
s->uvlinesize - 8 : dest,
547 &
s->cur_pic.motion_val[0][
s->block_index[
i] - 2 *
s->b8_stride - 2 + v->
blocks_off],
548 i > 3 ? &v->
mv_f[0][
s->block_index[
i] -
s->mb_stride - 1 + v->
mb_off] :
554 dest =
s->dest[0] - 16;
555 cbp = &v->
cbp[
s->mb_x - 1];
558 ttblk = &v->
ttblk[
s->mb_x - 1];
560 for (
i = 0;
i < block_count;
i++)
562 i > 3 ?
s->dest[
i - 3] - 8 : dest,
566 &
s->cur_pic.motion_val[0][
s->block_index[
i] - 2 + v->
blocks_off],
573 if (
s->mb_x ==
s->mb_width - 1) {
574 if (
s->mb_y >=
s->start_mb_y + 1) {
575 dest =
s->dest[0] - 16 *
s->linesize;
576 cbp = &v->
cbp[
s->mb_x -
s->mb_stride];
577 is_intra = &v->
is_intra[
s->mb_x -
s->mb_stride];
578 uvmv = &v->
luma_mv[
s->mb_x -
s->mb_stride];
579 ttblk = &v->
ttblk[
s->mb_x -
s->mb_stride];
581 for (
i = 0;
i < block_count;
i++)
583 i > 3 ?
s->dest[
i - 3] - 8 *
s->uvlinesize : dest,
587 &
s->cur_pic.motion_val[0][
s->block_index[
i] - 2 *
s->b8_stride + v->
blocks_off],
588 i > 3 ? &v->
mv_f[0][
s->block_index[
i] -
s->mb_stride + v->
mb_off] :
595 cbp = &v->
cbp[
s->mb_x];
598 ttblk = &v->
ttblk[
s->mb_x];
600 for (
i = 0;
i < block_count;
i++)
602 i > 3 ?
s->dest[
i - 3] : dest,
606 &
s->cur_pic.motion_val[0][
s->block_index[
i] + v->
blocks_off],
615 if (
s->mb_y >=
s->start_mb_y + 2) {
617 dest =
s->dest[0] - 32 *
s->linesize - 32;
618 cbp = &v->
cbp[
s->mb_x - 2 *
s->mb_stride - 2];
619 is_intra = &v->
is_intra[
s->mb_x - 2 *
s->mb_stride - 2];
620 uvmv = &v->
luma_mv[
s->mb_x - 2 *
s->mb_stride - 2];
621 ttblk = &v->
ttblk[
s->mb_x - 2 *
s->mb_stride - 2];
623 for (
i = 0;
i < block_count;
i++)
625 i > 3 ?
s->dest[
i - 3] - 16 *
s->uvlinesize - 16 : dest,
629 &
s->cur_pic.motion_val[0][
s->block_index[
i] - 4 *
s->b8_stride - 4 + v->
blocks_off],
630 i > 3 ? &v->
mv_f[0][
s->block_index[
i] - 2 *
s->mb_stride - 2 + v->
mb_off] :
636 if (
s->mb_x ==
s->mb_width - 1) {
638 dest =
s->dest[0] - 32 *
s->linesize - 16;
639 cbp = &v->
cbp[
s->mb_x - 2 *
s->mb_stride - 1];
640 is_intra = &v->
is_intra[
s->mb_x - 2 *
s->mb_stride - 1];
641 uvmv = &v->
luma_mv[
s->mb_x - 2 *
s->mb_stride - 1];
642 ttblk = &v->
ttblk[
s->mb_x - 2 *
s->mb_stride - 1];
644 for (
i = 0;
i < block_count;
i++)
646 i > 3 ?
s->dest[
i - 3] - 16 *
s->uvlinesize - 8 : dest,
650 &
s->cur_pic.motion_val[0][
s->block_index[
i] - 4 *
s->b8_stride - 2 + v->
blocks_off],
651 i > 3 ? &v->
mv_f[0][
s->block_index[
i] - 2 *
s->mb_stride - 1 + v->
mb_off] :
657 dest =
s->dest[0] - 32 *
s->linesize;
658 cbp = &v->
cbp[
s->mb_x - 2 *
s->mb_stride];
659 is_intra = &v->
is_intra[
s->mb_x - 2 *
s->mb_stride];
660 uvmv = &v->
luma_mv[
s->mb_x - 2 *
s->mb_stride];
661 ttblk = &v->
ttblk[
s->mb_x - 2 *
s->mb_stride];
663 for (
i = 0;
i < block_count;
i++)
665 i > 3 ?
s->dest[
i - 3] - 16 *
s->uvlinesize : dest,
669 &
s->cur_pic.motion_val[0][
s->block_index[
i] - 4 *
s->b8_stride + v->
blocks_off],
670 i > 3 ? &v->
mv_f[0][
s->block_index[
i] - 2 *
s->mb_stride + v->
mb_off] :
677 if (
s->mb_y ==
s->end_mb_y - 1) {
678 if (
s->mb_y >=
s->start_mb_y + 1) {
680 dest =
s->dest[0] - 16 *
s->linesize - 32;
681 cbp = &v->
cbp[
s->mb_x -
s->mb_stride - 2];
682 is_intra = &v->
is_intra[
s->mb_x -
s->mb_stride - 2];
683 uvmv = &v->
luma_mv[
s->mb_x -
s->mb_stride - 2];
684 ttblk = &v->
ttblk[
s->mb_x -
s->mb_stride - 2];
686 for (
i = 0;
i < block_count;
i++)
688 i > 3 ?
s->dest[
i - 3] - 8 *
s->uvlinesize - 16 : dest,
692 &
s->cur_pic.motion_val[0][
s->block_index[
i] - 2 *
s->b8_stride - 4 + v->
blocks_off],
693 i > 3 ? &v->
mv_f[0][
s->block_index[
i] -
s->mb_stride - 2 + v->
mb_off] :
699 if (
s->mb_x ==
s->mb_width - 1) {
701 dest =
s->dest[0] - 16 *
s->linesize - 16;
702 cbp = &v->
cbp[
s->mb_x -
s->mb_stride - 1];
703 is_intra = &v->
is_intra[
s->mb_x -
s->mb_stride - 1];
704 uvmv = &v->
luma_mv[
s->mb_x -
s->mb_stride - 1];
705 ttblk = &v->
ttblk[
s->mb_x -
s->mb_stride - 1];
707 for (
i = 0;
i < block_count;
i++)
709 i > 3 ?
s->dest[
i - 3] - 8 *
s->uvlinesize - 8 : dest,
713 &
s->cur_pic.motion_val[0][
s->block_index[
i] - 2 *
s->b8_stride - 2 + v->
blocks_off],
714 i > 3 ? &v->
mv_f[0][
s->block_index[
i] -
s->mb_stride - 1 + v->
mb_off] :
720 dest =
s->dest[0] - 16 *
s->linesize;
721 cbp = &v->
cbp[
s->mb_x -
s->mb_stride];
722 is_intra = &v->
is_intra[
s->mb_x -
s->mb_stride];
723 uvmv = &v->
luma_mv[
s->mb_x -
s->mb_stride];
724 ttblk = &v->
ttblk[
s->mb_x -
s->mb_stride];
726 for (
i = 0;
i < block_count;
i++)
728 i > 3 ?
s->dest[
i - 3] - 8 *
s->uvlinesize : dest,
732 &
s->cur_pic.motion_val[0][
s->block_index[
i] - 2 *
s->b8_stride + v->
blocks_off],
733 i > 3 ? &v->
mv_f[0][
s->block_index[
i] -
s->mb_stride + v->
mb_off] :
741 dest =
s->dest[0] - 32;
742 cbp = &v->
cbp[
s->mb_x - 2];
745 ttblk = &v->
ttblk[
s->mb_x - 2];
747 for (
i = 0;
i < block_count;
i++)
749 i > 3 ?
s->dest[
i - 3] - 16 : dest,
753 &
s->cur_pic.motion_val[0][
s->block_index[
i] - 4 + v->
blocks_off],
760 if (
s->mb_x ==
s->mb_width - 1) {
762 dest =
s->dest[0] - 16;
763 cbp = &v->
cbp[
s->mb_x - 1];
766 ttblk = &v->
ttblk[
s->mb_x - 1];
768 for (
i = 0;
i < block_count;
i++)
770 i > 3 ?
s->dest[
i - 3] - 8 : dest,
774 &
s->cur_pic.motion_val[0][
s->block_index[
i] - 2 + v->
blocks_off],
782 cbp = &v->
cbp[
s->mb_x];
785 ttblk = &v->
ttblk[
s->mb_x];
787 for (
i = 0;
i < block_count;
i++)
789 i > 3 ?
s->dest[
i - 3] : dest,
793 &
s->cur_pic.motion_val[0][
s->block_index[
i] + v->
blocks_off],
804 uint32_t
flags, uint8_t fieldtx,
int block_num)
809 int linesize = block_num > 3 ?
s->uvlinesize :
s->linesize;
815 dst = dest + (block_num & 2) * 4 *
s->linesize + (block_num & 1) * 8;
817 tt = ttblk[0] >> (block_num * 4) & 0
xf;
855 uint32_t
flags, uint8_t fieldtx,
int block_num)
860 int linesize = block_num > 3 ?
s->uvlinesize :
s->linesize;
866 dst = dest + (block_num & 2) * 4 *
s->linesize + (block_num & 1) * 8;
868 tt = ttblk[0] >> (block_num * 4) & 0
xf;
915 int mb_pos =
s->mb_x +
s->mb_y *
s->mb_stride;
931 if (
s->mb_y >=
s->start_mb_y + 1) {
932 dest =
s->dest[0] - 16 *
s->linesize - 16;
933 ttblk = &v->
ttblk[
s->mb_x -
s->mb_stride - 1];
936 for (
i = 0;
i < block_count;
i++)
938 i > 3 ?
s->dest[
i - 3] - 8 *
s->uvlinesize - 8 : dest,
945 if (
s->mb_x ==
s->mb_width - 1) {
946 if (
s->mb_y >=
s->start_mb_y + 1) {
947 dest =
s->dest[0] - 16 *
s->linesize;
948 ttblk = &v->
ttblk[
s->mb_x -
s->mb_stride];
951 for (
i = 0;
i < block_count;
i++)
953 i > 3 ?
s->dest[
i - 3] - 8 *
s->uvlinesize : dest,
960 if (
s->mb_y ==
s->end_mb_y - 1) {
962 dest =
s->dest[0] - 16;
963 ttblk = &v->
ttblk[
s->mb_x - 1];
966 for (
i = 0;
i < block_count;
i++)
968 i > 3 ?
s->dest[
i - 3] - 8 : dest,
974 if (
s->mb_x ==
s->mb_width - 1) {
976 ttblk = &v->
ttblk[
s->mb_x];
979 for (
i = 0;
i < block_count;
i++)
981 i > 3 ?
s->dest[
i - 3] : dest,
989 if (
s->mb_y >=
s->start_mb_y + 2) {
991 dest =
s->dest[0] - 32 *
s->linesize - 32;
992 ttblk = &v->
ttblk[
s->mb_x - 2 *
s->mb_stride - 2];
995 for (
i = 0;
i < block_count;
i++)
997 i > 3 ?
s->dest[
i - 3] - 16 *
s->uvlinesize - 16 : dest,
1003 if (
s->mb_x ==
s->mb_width - 1) {
1005 dest =
s->dest[0] - 32 *
s->linesize - 16;
1006 ttblk = &v->
ttblk[
s->mb_x - 2 *
s->mb_stride - 1];
1009 for (
i = 0;
i < block_count;
i++)
1011 i > 3 ?
s->dest[
i - 3] - 16 *
s->uvlinesize - 8 : dest,
1017 dest =
s->dest[0] - 32 *
s->linesize;
1018 ttblk = &v->
ttblk[
s->mb_x - 2 *
s->mb_stride];
1021 for (
i = 0;
i < block_count;
i++)
1023 i > 3 ?
s->dest[
i - 3] - 16 *
s->uvlinesize : dest,
1030 if (
s->mb_y ==
s->end_mb_y - 1) {
1031 if (
s->mb_y >=
s->start_mb_y + 1) {
1033 dest =
s->dest[0] - 16 *
s->linesize - 32;
1034 ttblk = &v->
ttblk[
s->mb_x -
s->mb_stride - 2];
1037 for (
i = 0;
i < block_count;
i++)
1039 i > 3 ?
s->dest[
i - 3] - 8 *
s->uvlinesize - 16 : dest,
1045 if (
s->mb_x ==
s->mb_width - 1) {
1047 dest =
s->dest[0] - 16 *
s->linesize - 16;
1048 ttblk = &v->
ttblk[
s->mb_x -
s->mb_stride - 1];
1051 for (
i = 0;
i < block_count;
i++)
1053 i > 3 ?
s->dest[
i - 3] - 8 *
s->uvlinesize - 8 : dest,
1059 dest =
s->dest[0] - 16 *
s->linesize;
1060 ttblk = &v->
ttblk[
s->mb_x -
s->mb_stride];
1063 for (
i = 0;
i < block_count;
i++)
1065 i > 3 ?
s->dest[
i - 3] - 8 *
s->uvlinesize : dest,
1073 dest =
s->dest[0] - 32;
1074 ttblk = &v->
ttblk[
s->mb_x - 2];
1077 for (
i = 0;
i < block_count;
i++)
1079 i > 3 ?
s->dest[
i - 3] - 16 : dest,
1085 if (
s->mb_x ==
s->mb_width - 1) {
1087 dest =
s->dest[0] - 16;
1088 ttblk = &v->
ttblk[
s->mb_x - 1];
1091 for (
i = 0;
i < block_count;
i++)
1093 i > 3 ?
s->dest[
i - 3] - 8 : dest,
1100 ttblk = &v->
ttblk[
s->mb_x];
1103 for (
i = 0;
i < block_count;
i++)
1105 i > 3 ?
s->dest[
i - 3] : dest,
1116 const int *ttblk, uint32_t
flags,
int block_num)
1121 uint32_t block_cbp = cbp[0] >> (block_num * 4);
1123 int idx, linesize = block_num > 3 ?
s->uvlinesize :
s->linesize;
1128 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;
1146 const int *ttblk, uint32_t
flags,
int block_num)
1151 uint32_t block_cbp = cbp[0] >> (block_num * 4);
1153 int idx, linesize = block_num > 3 ?
s->uvlinesize :
s->linesize;
1158 dst = dest + (block_num & 2) * 4 *
s->linesize + (block_num & 1) * 8;
1163 tt = ttblk[0] >> (block_num * 4) & 0
xf;
1165 idx = (block_cbp | (block_cbp >> 2)) & 3;
1178 const uint32_t *cbp;
1189 if (!
s->first_slice_line) {
1190 dest =
s->dest[0] - 16 *
s->linesize;
1191 cbp = &v->
cbp[
s->mb_x -
s->mb_stride];
1192 ttblk = &v->
ttblk[
s->mb_x -
s->mb_stride];
1194 for (
i = 0;
i < block_count;
i++)
1197 if (
s->mb_y ==
s->end_mb_y - 1) {
1199 cbp = &v->
cbp[
s->mb_x];
1200 ttblk = &v->
ttblk[
s->mb_x];
1202 for (
i = 0;
i < block_count;
i++)
1206 if (!
s->first_slice_line) {
1207 dest =
s->dest[0] - 16 *
s->linesize - 16;
1208 cbp = &v->
cbp[
s->mb_x -
s->mb_stride - 1];
1209 ttblk = &v->
ttblk[
s->mb_x -
s->mb_stride - 1];
1212 for (
i = 0;
i < block_count;
i++)
1215 if (
s->mb_x ==
s->mb_width - 1) {
1220 for (
i = 0;
i < block_count;
i++)
1224 if (
s->mb_y ==
s->end_mb_y - 1) {
1225 dest =
s->dest[0] - 16;
1226 cbp = &v->
cbp[
s->mb_x - 1];
1227 ttblk = &v->
ttblk[
s->mb_x - 1];
1230 for (
i = 0;
i < block_count;
i++)
1233 if (
s->mb_x ==
s->mb_width - 1) {
1238 for (
i = 0;
i < block_count;
i++)