[FFmpeg-soc] [soc]: r3935 - dirac/libavcodec/dirac.c
conrad
subversion at mplayerhq.hu
Thu Jan 1 21:32:26 CET 2009
Author: conrad
Date: Thu Jan 1 21:32:25 2009
New Revision: 3935
Log:
Fix for non-qpel MC
Modified:
dirac/libavcodec/dirac.c (contents, props changed)
Modified: dirac/libavcodec/dirac.c
==============================================================================
--- dirac/libavcodec/dirac.c Thu Jan 1 21:32:23 2009 (r3934)
+++ dirac/libavcodec/dirac.c Thu Jan 1 21:32:25 2009 (r3935)
@@ -657,13 +657,16 @@ static void motion_comp_block2refs(Dirac
val1 += w1[1] * refline1[hx1 + 1];
val1 += w1[2] * refline1[hx1 + s->refwidth ];
val1 += w1[3] * refline1[hx1 + s->refwidth + 1];
- val1 >>= s->mv_precision;
val2 += w2[0] * refline2[hx2 ];
val2 += w2[1] * refline2[hx2 + 1];
val2 += w2[2] * refline2[hx2 + s->refwidth ];
val2 += w2[3] * refline2[hx2 + s->refwidth + 1];
- val2 >>= s->mv_precision;
+
+ if (s->mv_precision) {
+ val1 >>= (s->mv_precision-1)<<1;
+ val2 >>= (s->mv_precision-1)<<1;
+ }
}
val1 *= s->picture_weight_ref1;
@@ -810,7 +813,8 @@ static void motion_comp_block1ref(DiracC
val += w[1] * refline[hx + 1];
val += w[2] * refline[hx + s->refwidth ];
val += w[3] * refline[hx + s->refwidth + 1];
- val >>= s->mv_precision;
+ if (s->mv_precision)
+ val >>= (s->mv_precision-1)<<1;
}
val *= s->picture_weight_ref1
More information about the FFmpeg-soc
mailing list