diff --git a/libavcodec/dct-test.c b/libavcodec/dct-test.c index bc7b34ba6a..69195e497d 100644 --- a/libavcodec/dct-test.c +++ b/libavcodec/dct-test.c @@ -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];