Revision 1be49ce5 libavcodec/h264_direct.c
libavcodec/h264_direct.c | ||
---|---|---|
270 | 270 |
} |
271 | 271 |
|
272 | 272 |
if(IS_INTERLACED(*mb_type) != IS_INTERLACED(mb_type_col[0])){ |
273 |
int n=0; |
|
273 | 274 |
for(i8=0; i8<4; i8++){ |
274 | 275 |
int x8 = i8&1; |
275 | 276 |
int y8 = i8>>1; |
... | ... | |
291 | 292 |
a= pack16to32(mv[0][0],mv[0][1]); |
292 | 293 |
if(ref[1] > 0) |
293 | 294 |
b= pack16to32(mv[1][0],mv[1][1]); |
295 |
n++; |
|
294 | 296 |
}else{ |
295 | 297 |
a= pack16to32(mv[0][0],mv[0][1]); |
296 | 298 |
b= pack16to32(mv[1][0],mv[1][1]); |
... | ... | |
298 | 300 |
fill_rectangle(&h->mv_cache[0][scan8[i8*4]], 2, 2, 8, a, 4); |
299 | 301 |
fill_rectangle(&h->mv_cache[1][scan8[i8*4]], 2, 2, 8, b, 4); |
300 | 302 |
} |
303 |
if(!is_b8x8 && !(n&3)) |
|
304 |
*mb_type= (*mb_type & ~(MB_TYPE_8x8|MB_TYPE_16x8|MB_TYPE_8x16|MB_TYPE_P1L0|MB_TYPE_P1L1))|MB_TYPE_16x16|MB_TYPE_DIRECT2; |
|
301 | 305 |
}else if(IS_16X16(*mb_type)){ |
302 | 306 |
int a,b; |
303 | 307 |
|
Also available in: Unified diff