Mercurial > libavcodec.hg
comparison rv34.c @ 9040:71620eeff338 libavcodec
Since motion vectors for intra blocks are always zero, do not try to retrieve them.
author | kostya |
---|---|
date | Wed, 25 Feb 2009 08:35:37 +0000 |
parents | 03ea23e85f42 |
children | 05e82eb11983 |
comparison
equal
deleted
inserted
replaced
9039:d4002371b3d2 | 9040:71620eeff338 |
---|---|
785 break; | 785 break; |
786 } | 786 } |
787 case RV34_MB_B_DIRECT: | 787 case RV34_MB_B_DIRECT: |
788 //surprisingly, it uses motion scheme from next reference frame | 788 //surprisingly, it uses motion scheme from next reference frame |
789 next_bt = s->next_picture_ptr->mb_type[s->mb_x + s->mb_y * s->mb_stride]; | 789 next_bt = s->next_picture_ptr->mb_type[s->mb_x + s->mb_y * s->mb_stride]; |
790 if(IS_INTRA(next_bt)) | |
791 fill_rectangle(s->current_picture_ptr->motion_val[0][s->mb_x * 2 + s->mb_y * 2 * s->b8_stride], 2, 2, s->b8_stride, 0, 4); | |
792 else | |
790 for(j = 0; j < 2; j++) | 793 for(j = 0; j < 2; j++) |
791 for(i = 0; i < 2; i++) | 794 for(i = 0; i < 2; i++) |
792 for(k = 0; k < 2; k++) | 795 for(k = 0; k < 2; k++) |
793 for(l = 0; l < 2; l++) | 796 for(l = 0; l < 2; l++) |
794 s->current_picture_ptr->motion_val[l][mv_pos + i + j*s->b8_stride][k] = calc_add_mv(r, l, s->next_picture_ptr->motion_val[0][mv_pos + i + j*s->b8_stride][k]); | 797 s->current_picture_ptr->motion_val[l][mv_pos + i + j*s->b8_stride][k] = calc_add_mv(r, l, s->next_picture_ptr->motion_val[0][mv_pos + i + j*s->b8_stride][k]); |