use sse16_sse2() in nsse
authorLoren Merritt <lorenm@u.washington.edu>
Sat, 12 Nov 2005 05:23:25 +0000 (05:23 +0000)
committerLoren Merritt <lorenm@u.washington.edu>
Sat, 12 Nov 2005 05:23:25 +0000 (05:23 +0000)
Originally committed as revision 4688 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/i386/dsputil_mmx.c

index 26b699f6b3559d576aa6eb39245696fa11e6dd7d..d8e655269bc0519a085e13f0e32b2c01f1d747e4 100644 (file)
@@ -1165,8 +1165,11 @@ static int hf_noise16_mmx(uint8_t * pix1, int line_size, int h) {
 
 static int nsse16_mmx(void *p, uint8_t * pix1, uint8_t * pix2, int line_size, int h) {
     MpegEncContext *c = p;
-    int score1= sse16_mmx(c, pix1, pix2, line_size, h);
-    int score2= hf_noise16_mmx(pix1, line_size, h) - hf_noise16_mmx(pix2, line_size, h);
+    int score1, score2;
+
+    if(c) score1 = c->dsp.sse[0](c, pix1, pix2, line_size, h);
+    else  score1 = sse16_mmx(c, pix1, pix2, line_size, h);
+    score2= hf_noise16_mmx(pix1, line_size, h) - hf_noise16_mmx(pix2, line_size, h);
 
     if(c) return score1 + ABS(score2)*c->avctx->nsse_weight;
     else  return score1 + ABS(score2)*8;