comparison motion_est.c @ 1764:5f42b809bc04 libavcodec

4mv + b frame encoding segfault fix
author michael
date Wed, 28 Jan 2004 00:36:58 +0000
parents 67949dc3117b
children 95612d423fde
comparison
equal deleted inserted replaced
1763:951403db901f 1764:5f42b809bc04
1575 // s->me.direct_basis_mv[1][i][0]= s->me.co_located_mv[i][0]*(time_pb - time_pp)/time_pp + ((i &1)<<(shift+3); 1575 // s->me.direct_basis_mv[1][i][0]= s->me.co_located_mv[i][0]*(time_pb - time_pp)/time_pp + ((i &1)<<(shift+3);
1576 // s->me.direct_basis_mv[1][i][1]= s->me.co_located_mv[i][1]*(time_pb - time_pp)/time_pp + ((i>>1)<<(shift+3); 1576 // s->me.direct_basis_mv[1][i][1]= s->me.co_located_mv[i][1]*(time_pb - time_pp)/time_pp + ((i>>1)<<(shift+3);
1577 1577
1578 max= FFMAX(s->me.direct_basis_mv[i][0], s->me.direct_basis_mv[i][0] - s->me.co_located_mv[i][0])>>shift; 1578 max= FFMAX(s->me.direct_basis_mv[i][0], s->me.direct_basis_mv[i][0] - s->me.co_located_mv[i][0])>>shift;
1579 min= FFMIN(s->me.direct_basis_mv[i][0], s->me.direct_basis_mv[i][0] - s->me.co_located_mv[i][0])>>shift; 1579 min= FFMIN(s->me.direct_basis_mv[i][0], s->me.direct_basis_mv[i][0] - s->me.co_located_mv[i][0])>>shift;
1580 max+= (2*mb_x + (i& 1))*8 + 1; // +-1 is for the simpler rounding 1580 max+= 16*mb_x + 1; // +-1 is for the simpler rounding
1581 min+= (2*mb_x + (i& 1))*8 - 1; 1581 min+= 16*mb_x - 1;
1582 xmax= FFMIN(xmax, s->width - max); 1582 xmax= FFMIN(xmax, s->width - max);
1583 xmin= FFMAX(xmin, - 16 - min); 1583 xmin= FFMAX(xmin, - 16 - min);
1584 1584
1585 max= FFMAX(s->me.direct_basis_mv[i][1], s->me.direct_basis_mv[i][1] - s->me.co_located_mv[i][1])>>shift; 1585 max= FFMAX(s->me.direct_basis_mv[i][1], s->me.direct_basis_mv[i][1] - s->me.co_located_mv[i][1])>>shift;
1586 min= FFMIN(s->me.direct_basis_mv[i][1], s->me.direct_basis_mv[i][1] - s->me.co_located_mv[i][1])>>shift; 1586 min= FFMIN(s->me.direct_basis_mv[i][1], s->me.direct_basis_mv[i][1] - s->me.co_located_mv[i][1])>>shift;
1587 max+= (2*mb_y + (i>>1))*8 + 1; // +-1 is for the simpler rounding 1587 max+= 16*mb_y + 1; // +-1 is for the simpler rounding
1588 min+= (2*mb_y + (i>>1))*8 - 1; 1588 min+= 16*mb_y - 1;
1589 ymax= FFMIN(ymax, s->height - max); 1589 ymax= FFMIN(ymax, s->height - max);
1590 ymin= FFMAX(ymin, - 16 - min); 1590 ymin= FFMAX(ymin, - 16 - min);
1591 1591
1592 if(s->mv_type == MV_TYPE_16X16) break; 1592 if(s->mv_type == MV_TYPE_16X16) break;
1593 } 1593 }