comparison motion_est.c @ 2984:fedb0854bd07 libavcodec

10l (segfault fix)
author michael
date Fri, 23 Dec 2005 19:05:48 +0000
parents 9d7d2bb70fd6
children 83934bcab3cc
comparison
equal deleted inserted replaced
2983:9d7d2bb70fd6 2984:fedb0854bd07
1644 0, 16); 1644 0, 16);
1645 1645
1646 if(s->avctx->bidir_refine){ 1646 if(s->avctx->bidir_refine){
1647 int score, end; 1647 int score, end;
1648 #define CHECK_BIDIR(fx,fy,bx,by)\ 1648 #define CHECK_BIDIR(fx,fy,bx,by)\
1649 score= check_bidir_mv(s, motion_fx+fx, motion_fy+fy, motion_bx+bx, motion_by+by, pred_fx, pred_fy, pred_bx, pred_by, 0, 16);\ 1649 if( (fx<=0 || motion_fx+fx<=xmax) && (fy<=0 || motion_fy+fy<=ymax) && (bx<=0 || motion_bx+bx<=xmax) && (by<=0 || motion_by+by<=ymax)\
1650 if(score < fbmin){\ 1650 &&(fx>=0 || motion_fx+fx>=xmin) && (fy>=0 || motion_fy+fy>=ymin) && (bx>=0 || motion_bx+bx>=xmin) && (by>=0 || motion_by+by>=ymin)){\
1651 fbmin= score;\ 1651 score= check_bidir_mv(s, motion_fx+fx, motion_fy+fy, motion_bx+bx, motion_by+by, pred_fx, pred_fy, pred_bx, pred_by, 0, 16);\
1652 motion_fx+=fx;\ 1652 if(score < fbmin){\
1653 motion_fy+=fy;\ 1653 fbmin= score;\
1654 motion_bx+=bx;\ 1654 motion_fx+=fx;\
1655 motion_by+=by;\ 1655 motion_fy+=fy;\
1656 end=0;\ 1656 motion_bx+=bx;\
1657 motion_by+=by;\
1658 end=0;\
1659 }\
1657 } 1660 }
1658 #define CHECK_BIDIR2(a,b,c,d)\ 1661 #define CHECK_BIDIR2(a,b,c,d)\
1659 CHECK_BIDIR(a,b,c,d)\ 1662 CHECK_BIDIR(a,b,c,d)\
1660 CHECK_BIDIR(-a,-b,-c,-d) 1663 CHECK_BIDIR(-a,-b,-c,-d)
1661 1664
1665 CHECK_BIDIR2(c,d,a,b)\ 1668 CHECK_BIDIR2(c,d,a,b)\
1666 CHECK_BIDIR2(d,a,b,c) 1669 CHECK_BIDIR2(d,a,b,c)
1667 1670
1668 do{ 1671 do{
1669 end=1; 1672 end=1;
1670
1671 if( motion_fx >= xmax || motion_bx >= xmax || motion_fx <= xmin || motion_bx <= xmin
1672 || motion_fy >= ymax || motion_by >= ymax || motion_fy <= ymin || motion_by <= ymin)
1673 break;
1674 1673
1675 CHECK_BIDIRR( 0, 0, 0, 1) 1674 CHECK_BIDIRR( 0, 0, 0, 1)
1676 if(s->avctx->bidir_refine > 1){ 1675 if(s->avctx->bidir_refine > 1){
1677 CHECK_BIDIRR( 0, 0, 1, 1) 1676 CHECK_BIDIRR( 0, 0, 1, 1)
1678 CHECK_BIDIR2( 0, 1, 0, 1) 1677 CHECK_BIDIR2( 0, 1, 0, 1)