Merge commit 'e0a2e60c0a6cbcceef08e94af5081d2aa8e6a52f'
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 19 Jul 2014 02:15:38 +0000 (04:15 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 19 Jul 2014 02:15:38 +0000 (04:15 +0200)
* commit 'e0a2e60c0a6cbcceef08e94af5081d2aa8e6a52f':
  dct-test: Reuse enum idct_permutation_type instead of duplicating it

Conflicts:
libavcodec/dct-test.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/dct-test.c

@@@ -89,58 -89,21 +89,58 @@@ static const struct algo fdct_tab[] = 
      { 0 }
  };
  
 +static void ff_prores_idct_wrap(int16_t *dst){
 +    DECLARE_ALIGNED(16, static int16_t, qmat)[64];
 +    int i;
 +
 +    for(i=0; i<64; i++){
 +        qmat[i]=4;
 +    }
 +    ff_prores_idct(dst, qmat);
 +    for(i=0; i<64; i++) {
 +         dst[i] -= 512;
 +    }
 +}
 +#if ARCH_X86_64 && HAVE_MMX && HAVE_YASM
 +void ff_prores_idct_put_10_sse2(uint16_t *dst, int linesize,
 +                                int16_t *block, int16_t *qmat);
 +
 +static void ff_prores_idct_put_10_sse2_wrap(int16_t *dst){
 +    DECLARE_ALIGNED(16, static int16_t, qmat)[64];
 +    DECLARE_ALIGNED(16, static int16_t, tmp)[64];
 +    int i;
 +
 +    for(i=0; i<64; i++){
 +        qmat[i]=4;
 +        tmp[i]= dst[i];
 +    }
 +    ff_prores_idct_put_10_sse2(dst, 16, tmp, qmat);
 +
 +    for(i=0; i<64; i++) {
 +         dst[i] -= 512;
 +    }
 +}
 +#endif
 +
  static const struct algo idct_tab[] = {
-     { "FAANI",          ff_faanidct,           NO_PERM  },
-     { "REF-DBL",        ff_ref_idct,           NO_PERM  },
-     { "INT",            ff_j_rev_dct,          MMX_PERM },
-     { "SIMPLE-C",       ff_simple_idct_8,      NO_PERM  },
-     { "PR-C",           ff_prores_idct_wrap,   NO_PERM, 0, 1 },
+     { "FAANI",       ff_faanidct,          FF_IDCT_PERM_NONE },
+     { "REF-DBL",     ff_ref_idct,          FF_IDCT_PERM_NONE },
+     { "INT",         ff_j_rev_dct,         FF_IDCT_PERM_LIBMPEG2 },
+     { "SIMPLE-C",    ff_simple_idct_8,     FF_IDCT_PERM_NONE },
++    { "PR-C",        ff_prores_idct_wrap,  FF_IDCT_PERM_NONE, 0, 1 },
  
  #if HAVE_MMX_INLINE
-     { "SIMPLE-MMX",     ff_simple_idct_mmx,  MMX_SIMPLE_PERM, AV_CPU_FLAG_MMX },
-     { "XVID-MMX",       ff_idct_xvid_mmx,      NO_PERM,   AV_CPU_FLAG_MMX,  1 },
+     { "SIMPLE-MMX",     ff_simple_idct_mmx,     FF_IDCT_PERM_SIMPLE,    AV_CPU_FLAG_MMX },
+     { "XVID-MMX",       ff_idct_xvid_mmx,       FF_IDCT_PERM_NONE,      AV_CPU_FLAG_MMX,    1 },
  #endif
  #if HAVE_MMXEXT_INLINE
-     { "XVID-MMXEXT",    ff_idct_xvid_mmxext,   NO_PERM,   AV_CPU_FLAG_MMXEXT, 1 },
+     { "XVID-MMXEXT",    ff_idct_xvid_mmxext,    FF_IDCT_PERM_NONE,      AV_CPU_FLAG_MMXEXT, 1 },
  #endif
  #if HAVE_SSE2_INLINE
-     { "XVID-SSE2",      ff_idct_xvid_sse2,     SSE2_PERM, AV_CPU_FLAG_SSE2, 1 },
+     { "XVID-SSE2",      ff_idct_xvid_sse2,      FF_IDCT_PERM_SSE2,      AV_CPU_FLAG_SSE2,   1 },
 +#if ARCH_X86_64 && HAVE_YASM
-     { "PR-SSE2",        ff_prores_idct_put_10_sse2_wrap,     TRANSPOSE_PERM, AV_CPU_FLAG_SSE2, 1 },
++    { "PR-SSE2",        ff_prores_idct_put_10_sse2_wrap, FF_IDCT_PERM_TRANSPOSE, AV_CPU_FLAG_SSE2, 1 },
 +#endif
  #endif
  
  #if ARCH_ARM
@@@ -215,24 -177,27 +216,31 @@@ static void permute(int16_t dst[64], co
  {
      int i;
  
-     if (perm == MMX_PERM) {
+     switch (perm_type) {
+     case FF_IDCT_PERM_LIBMPEG2:
          for (i = 0; i < 64; i++)
              dst[(i & 0x38) | ((i & 6) >> 1) | ((i & 1) << 2)] = src[i];
-     } else if (perm == MMX_SIMPLE_PERM) {
+         break;
+     case FF_IDCT_PERM_SIMPLE:
          for (i = 0; i < 64; i++)
              dst[idct_simple_mmx_perm[i]] = src[i];
-     } else if (perm == SSE2_PERM) {
+         break;
+     case FF_IDCT_PERM_SSE2:
          for (i = 0; i < 64; i++)
              dst[(i & 0x38) | idct_sse2_row_perm[i & 7]] = src[i];
-     } else if (perm == PARTTRANS_PERM) {
+         break;
+     case FF_IDCT_PERM_PARTTRANS:
          for (i = 0; i < 64; i++)
              dst[(i & 0x24) | ((i & 3) << 3) | ((i >> 3) & 3)] = src[i];
-     } else if (perm == TRANSPOSE_PERM) {
+         break;
++    case FF_IDCT_PERM_TRANSPOSE:
 +        for (i = 0; i < 64; i++)
 +            dst[(i>>3) | ((i<<3)&0x38)] = src[i];
-     } else {
++        break;
+     default:
          for (i = 0; i < 64; i++)
              dst[i] = src[i];
+         break;
      }
  }
  
@@@ -257,8 -221,8 +265,8 @@@ static int dct_error(const struct algo 
      for (i = 0; i < 64; i++)
          sysErr[i] = 0;
      for (it = 0; it < NB_ITS; it++) {
 -        init_block(block1, test, is_idct, &prng);
 +        init_block(block1, test, is_idct, &prng, vals);
-         permute(block, block1, dct->format);
+         permute(block, block1, dct->perm_type);
  
          dct->func(block);
          emms_c();
          return 0;
  
      /* speed test */
 -    init_block(block, test, is_idct, &prng);
 +
 +    init_block(block, test, is_idct, &prng, vals);
-     permute(block1, block, dct->format);
+     permute(block1, block, dct->perm_type);
  
 -    ti = av_gettime();
 +    ti = av_gettime_relative();
      it1 = 0;
      do {
          for (it = 0; it < NB_ITS_SPEED; it++) {