Mercurial > libavcodec.hg
comparison h263.c @ 1053:f07fd48c23d4 libavcodec
direct blocksize in bframes fix (might fix qpel+bframe bug)
author | michaelni |
---|---|
date | Sat, 08 Feb 2003 18:23:39 +0000 |
parents | a78f6f72d54e |
children | bb5de8a59da8 |
comparison
equal
deleted
inserted
replaced
1052:f529b09e64b7 | 1053:f07fd48c23d4 |
---|---|
401 const int mb_index= s->mb_x + s->mb_y*s->mb_width; | 401 const int mb_index= s->mb_x + s->mb_y*s->mb_width; |
402 int xy= s->block_index[0]; | 402 int xy= s->block_index[0]; |
403 uint16_t time_pp= s->pp_time; | 403 uint16_t time_pp= s->pp_time; |
404 uint16_t time_pb= s->pb_time; | 404 uint16_t time_pb= s->pb_time; |
405 int i; | 405 int i; |
406 | 406 |
407 //FIXME avoid divides | 407 //FIXME avoid divides |
408 switch(s->co_located_type_table[mb_index]){ | 408 switch(s->co_located_type_table[mb_index]){ |
409 case 0: | 409 case 0: |
410 s->mv_type= MV_TYPE_16X16; | 410 s->mv[0][0][0] = s->mv[0][1][0] = s->mv[0][2][0] = s->mv[0][3][0] = s->motion_val[xy][0]*time_pb/time_pp + mx; |
411 s->mv[0][0][0] = s->motion_val[xy][0]*time_pb/time_pp + mx; | 411 s->mv[0][0][1] = s->mv[0][1][1] = s->mv[0][2][1] = s->mv[0][3][1] = s->motion_val[xy][1]*time_pb/time_pp + my; |
412 s->mv[0][0][1] = s->motion_val[xy][1]*time_pb/time_pp + my; | 412 s->mv[1][0][0] = s->mv[1][1][0] = s->mv[1][2][0] = s->mv[1][3][0] = mx ? s->mv[0][0][0] - s->motion_val[xy][0] |
413 s->mv[1][0][0] = mx ? s->mv[0][0][0] - s->motion_val[xy][0] | |
414 : s->motion_val[xy][0]*(time_pb - time_pp)/time_pp; | 413 : s->motion_val[xy][0]*(time_pb - time_pp)/time_pp; |
415 s->mv[1][0][1] = my ? s->mv[0][0][1] - s->motion_val[xy][1] | 414 s->mv[1][0][1] = s->mv[1][1][1] = s->mv[1][2][1] = s->mv[1][3][1] = my ? s->mv[0][0][1] - s->motion_val[xy][1] |
416 : s->motion_val[xy][1]*(time_pb - time_pp)/time_pp; | 415 : s->motion_val[xy][1]*(time_pb - time_pp)/time_pp; |
416 if((s->avctx->workaround_bugs & FF_BUG_DIRECT_BLOCKSIZE) || !s->quarter_sample) | |
417 s->mv_type= MV_TYPE_16X16; | |
418 else | |
419 s->mv_type= MV_TYPE_8X8; | |
417 break; | 420 break; |
418 case CO_LOCATED_TYPE_4MV: | 421 case CO_LOCATED_TYPE_4MV: |
419 s->mv_type = MV_TYPE_8X8; | 422 s->mv_type = MV_TYPE_8X8; |
420 for(i=0; i<4; i++){ | 423 for(i=0; i<4; i++){ |
421 xy= s->block_index[i]; | 424 xy= s->block_index[i]; |