|
|
|
@@ -1133,8 +1133,12 @@ static av_always_inline void get_mvdata_interlaced(VC1Context *v, int *dmv_x, |
|
|
|
*dmv_x = get_bits(gb, v->k_x); |
|
|
|
*dmv_y = get_bits(gb, v->k_y); |
|
|
|
if (v->numref) { |
|
|
|
*pred_flag = *dmv_y & 1; |
|
|
|
*dmv_y = (*dmv_y + *pred_flag) >> 1; |
|
|
|
if (pred_flag) { |
|
|
|
*pred_flag = *dmv_y & 1; |
|
|
|
*dmv_y = (*dmv_y + *pred_flag) >> 1; |
|
|
|
} else { |
|
|
|
*dmv_y = (*dmv_y + (*dmv_y & 1)) >> 1; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
@@ -1160,7 +1164,7 @@ static av_always_inline void get_mvdata_interlaced(VC1Context *v, int *dmv_x, |
|
|
|
*dmv_y = (sign ^ ((val >> 1) + offs_tab[index1 >> v->numref])) - sign; |
|
|
|
} else |
|
|
|
*dmv_y = 0; |
|
|
|
if (v->numref) |
|
|
|
if (v->numref && pred_flag) |
|
|
|
*pred_flag = index1 & 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|