Since motion vectors for intra blocks are always zero, do not try to retrieve them.
authorKostya Shishkov <kostya.shishkov@gmail.com>
Wed, 25 Feb 2009 08:35:37 +0000 (08:35 +0000)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Wed, 25 Feb 2009 08:35:37 +0000 (08:35 +0000)
Originally committed as revision 17584 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/rv34.c

index 607a928..915d1e3 100644 (file)
@@ -787,6 +787,9 @@ static int rv34_decode_mv(RV34DecContext *r, int block_type)
     case RV34_MB_B_DIRECT:
         //surprisingly, it uses motion scheme from next reference frame
         next_bt = s->next_picture_ptr->mb_type[s->mb_x + s->mb_y * s->mb_stride];
     case RV34_MB_B_DIRECT:
         //surprisingly, it uses motion scheme from next reference frame
         next_bt = s->next_picture_ptr->mb_type[s->mb_x + s->mb_y * s->mb_stride];
+        if(IS_INTRA(next_bt))
+            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);
+        else
         for(j = 0; j < 2; j++)
             for(i = 0; i < 2; i++)
                 for(k = 0; k < 2; k++)
         for(j = 0; j < 2; j++)
             for(i = 0; i < 2; i++)
                 for(k = 0; k < 2; k++)