Revision 350fc614

View differences:

libavcodec/h264_mvpred.h
47 47
        *(uint32_t*)h->mv_cache[list][scan8[0]-2] = 0;
48 48
        *C = h->mv_cache[list][scan8[0]-2];
49 49

  
50
        if(!MB_FIELD
51
           && (s->mb_y&1) && i < scan8[0]+8 && topright_ref != PART_NOT_AVAILABLE){
52
            int topright_xy = s->mb_x + (s->mb_y-1)*s->mb_stride + (i == scan8[0]+3);
53
            if(IS_INTERLACED(mb_types[topright_xy])){
54 50
#define SET_DIAG_MV(MV_OP, REF_OP, X4, Y4)\
55 51
                const int x4 = X4, y4 = Y4;\
56 52
                const int mb_type = mb_types[(x4>>2)+(y4>>2)*s->mb_stride];\
......
61 57
                h->mv_cache[list][scan8[0]-2][1] = mv[1] MV_OP;\
62 58
                return s->current_picture_ptr->ref_index[list][(x4>>1) + (y4>>1)*h->b8_stride] REF_OP;
63 59

  
64
                SET_DIAG_MV(*2, >>1, s->mb_x*4+(i&7)-4+part_width, s->mb_y*4-1);
65
            }
66
        }
67 60
        if(topright_ref == PART_NOT_AVAILABLE
68 61
           && ((s->mb_y&1) || i >= scan8[0]+8) && (i&7)==4
69 62
           && h->ref_cache[list][scan8[0]-1] != PART_NOT_AVAILABLE){

Also available in: Unified diff