OSDN Git Service

dct-test: add PARTTRANS permutation
authorMåns Rullgård <mans@mansr.com>
Tue, 16 Dec 2008 19:59:50 +0000 (19:59 +0000)
committerMåns Rullgård <mans@mansr.com>
Tue, 16 Dec 2008 19:59:50 +0000 (19:59 +0000)
Originally committed as revision 16169 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/dct-test.c

index bc7b34b..69195e4 100644 (file)
@@ -69,7 +69,7 @@ struct algo {
   enum { FDCT, IDCT } is_idct;
   void (* func) (DCTELEM *block);
   void (* ref)  (DCTELEM *block);
-  enum formattag { NO_PERM,MMX_PERM, MMX_SIMPLE_PERM, SCALE_PERM, SSE2_PERM } format;
+  enum formattag { NO_PERM,MMX_PERM, MMX_SIMPLE_PERM, SCALE_PERM, SSE2_PERM, PARTTRANS_PERM } format;
   int  mm_support;
 };
 
@@ -235,6 +235,9 @@ void dct_error(const char *name, int is_idct,
         } else if (form == SSE2_PERM) {
             for(i=0; i<64; i++)
                 block[(i&0x38) | idct_sse2_row_perm[i&7]] = block1[i];
+        } else if (form == PARTTRANS_PERM) {
+            for(i=0; i<64; i++)
+                block[(i&0x24) | ((i&3)<<3) | ((i>>3)&3)] = block1[i];
         } else {
             for(i=0; i<64; i++)
                 block[i]= block1[i];