Mercurial > libavcodec.hg
comparison motion_est.c @ 1745:fe5e2c14a04c libavcodec
fixing twice added offset bug, was triggered by 4mv + sub_cmp != mb_cmp
bug was introduced in version 1.75 (2003-12-30)
this may have lead to a small drop in quality of the 4mv mode, but should have only affected the mbd=0 case
author | michael |
---|---|
date | Wed, 14 Jan 2004 02:21:39 +0000 |
parents | 07a484280a82 |
children | 67949dc3117b |
comparison
equal
deleted
inserted
replaced
1744:d01772d1bf55 | 1745:fe5e2c14a04c |
---|---|
844 int dxy; | 844 int dxy; |
845 const int offset= ((block&1) + (block>>1)*stride)*8; | 845 const int offset= ((block&1) + (block>>1)*stride)*8; |
846 uint8_t *dest_y = s->me.scratchpad + offset; | 846 uint8_t *dest_y = s->me.scratchpad + offset; |
847 | 847 |
848 if(s->quarter_sample){ | 848 if(s->quarter_sample){ |
849 uint8_t *ref= ref_data[0] + (mx4>>2) + (my4>>2)*stride + offset; | 849 uint8_t *ref= ref_data[0] + (mx4>>2) + (my4>>2)*stride; |
850 dxy = ((my4 & 3) << 2) | (mx4 & 3); | 850 dxy = ((my4 & 3) << 2) | (mx4 & 3); |
851 | 851 |
852 if(s->no_rounding) | 852 if(s->no_rounding) |
853 s->dsp.put_no_rnd_qpel_pixels_tab[1][dxy](dest_y , ref , s->linesize); | 853 s->dsp.put_no_rnd_qpel_pixels_tab[1][dxy](dest_y , ref , s->linesize); |
854 else | 854 else |
855 s->dsp.put_qpel_pixels_tab [1][dxy](dest_y , ref , stride); | 855 s->dsp.put_qpel_pixels_tab [1][dxy](dest_y , ref , stride); |
856 }else{ | 856 }else{ |
857 uint8_t *ref= ref_data[0] + (mx4>>1) + (my4>>1)*stride + offset; | 857 uint8_t *ref= ref_data[0] + (mx4>>1) + (my4>>1)*stride; |
858 dxy = ((my4 & 1) << 1) | (mx4 & 1); | 858 dxy = ((my4 & 1) << 1) | (mx4 & 1); |
859 | 859 |
860 if(s->no_rounding) | 860 if(s->no_rounding) |
861 s->dsp.put_no_rnd_pixels_tab[1][dxy](dest_y , ref , stride, h); | 861 s->dsp.put_no_rnd_pixels_tab[1][dxy](dest_y , ref , stride, h); |
862 else | 862 else |