Browse code

4mv + b frame encoding segfault fix

Originally committed as revision 2728 to svn://svn.ffmpeg.org/ffmpeg/trunk

Michael Niedermayer authored on 2004/01/28 09:36:58
Showing 1 changed files
... ...
@@ -1577,15 +1577,15 @@ static inline int direct_search(MpegEncContext * s, uint8_t *src_data[3], uint8_
1577 1577
 
1578 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 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
1581
-        min+= (2*mb_x + (i& 1))*8 - 1;
1580
+        max+= 16*mb_x + 1; // +-1 is for the simpler rounding
1581
+        min+= 16*mb_x - 1;
1582 1582
         xmax= FFMIN(xmax, s->width - max);
1583 1583
         xmin= FFMAX(xmin, - 16     - min);
1584 1584
 
1585 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 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
1588
-        min+= (2*mb_y + (i>>1))*8 - 1;
1587
+        max+= 16*mb_y + 1; // +-1 is for the simpler rounding
1588
+        min+= 16*mb_y - 1;
1589 1589
         ymax= FFMIN(ymax, s->height - max);
1590 1590
         ymin= FFMAX(ymin, - 16      - min);
1591 1591