}
av_cold void ff_init_scantable_permutation(uint8_t *idct_permutation,
- int idct_permutation_type)
+ enum idct_permutation_type perm_type)
{
int i;
if (ARCH_X86)
if (ff_init_scantable_permutation_x86(idct_permutation,
- idct_permutation_type))
+ perm_type))
return;
- switch (idct_permutation_type) {
- case FF_NO_IDCT_PERM:
+ switch (perm_type) {
+ case FF_IDCT_PERM_NONE:
for (i = 0; i < 64; i++)
idct_permutation[i] = i;
break;
- case FF_LIBMPEG2_IDCT_PERM:
+ case FF_IDCT_PERM_LIBMPEG2:
for (i = 0; i < 64; i++)
idct_permutation[i] = (i & 0x38) | ((i & 6) >> 1) | ((i & 1) << 2);
break;
- case FF_TRANSPOSE_IDCT_PERM:
+ case FF_IDCT_PERM_TRANSPOSE:
for (i = 0; i < 64; i++)
idct_permutation[i] = ((i & 7) << 3) | (i >> 3);
break;
- case FF_PARTTRANS_IDCT_PERM:
+ case FF_IDCT_PERM_PARTTRANS:
for (i = 0; i < 64; i++)
idct_permutation[i] = (i & 0x24) | ((i & 3) << 3) | ((i >> 3) & 3);
break;
const unsigned high_bit_depth = avctx->bits_per_raw_sample > 8;
if (avctx->lowres==1) {
- c->idct_put = ff_jref_idct4_put;
- c->idct_add = ff_jref_idct4_add;
- c->idct = ff_j_rev_dct4;
- c->idct_permutation_type = FF_NO_IDCT_PERM;
+ c->idct_put = ff_jref_idct4_put;
+ c->idct_add = ff_jref_idct4_add;
+ c->idct = ff_j_rev_dct4;
+ c->perm_type = FF_IDCT_PERM_NONE;
} else if (avctx->lowres==2) {
- c->idct_put = ff_jref_idct2_put;
- c->idct_add = ff_jref_idct2_add;
- c->idct = ff_j_rev_dct2;
- c->idct_permutation_type = FF_NO_IDCT_PERM;
+ c->idct_put = ff_jref_idct2_put;
+ c->idct_add = ff_jref_idct2_add;
+ c->idct = ff_j_rev_dct2;
+ c->perm_type = FF_IDCT_PERM_NONE;
} else if (avctx->lowres==3) {
- c->idct_put = ff_jref_idct1_put;
- c->idct_add = ff_jref_idct1_add;
- c->idct = ff_j_rev_dct1;
- c->idct_permutation_type = FF_NO_IDCT_PERM;
+ c->idct_put = ff_jref_idct1_put;
+ c->idct_add = ff_jref_idct1_add;
+ c->idct = ff_j_rev_dct1;
+ c->perm_type = FF_IDCT_PERM_NONE;
} else {
if (avctx->bits_per_raw_sample == 10) {
c->idct_put = ff_simple_idct_put_10;
c->idct_add = ff_simple_idct_add_10;
c->idct = ff_simple_idct_10;
- c->idct_permutation_type = FF_NO_IDCT_PERM;
+ c->perm_type = FF_IDCT_PERM_NONE;
} else if (avctx->bits_per_raw_sample == 12) {
c->idct_put = ff_simple_idct_put_12;
c->idct_add = ff_simple_idct_add_12;
c->idct = ff_simple_idct_12;
- c->idct_permutation_type = FF_NO_IDCT_PERM;
+ c->perm_type = FF_IDCT_PERM_NONE;
} else {
if (avctx->idct_algo == FF_IDCT_INT) {
- c->idct_put = jref_idct_put;
- c->idct_add = jref_idct_add;
- c->idct = ff_j_rev_dct;
- c->idct_permutation_type = FF_LIBMPEG2_IDCT_PERM;
+ c->idct_put = jref_idct_put;
+ c->idct_add = jref_idct_add;
+ c->idct = ff_j_rev_dct;
+ c->perm_type = FF_IDCT_PERM_LIBMPEG2;
} else if (avctx->idct_algo == FF_IDCT_FAAN) {
- c->idct_put = ff_faanidct_put;
- c->idct_add = ff_faanidct_add;
- c->idct = ff_faanidct;
- c->idct_permutation_type = FF_NO_IDCT_PERM;
+ c->idct_put = ff_faanidct_put;
+ c->idct_add = ff_faanidct_add;
+ c->idct = ff_faanidct;
+ c->perm_type = FF_IDCT_PERM_NONE;
} else { // accurate/default
- c->idct_put = ff_simple_idct_put_8;
- c->idct_add = ff_simple_idct_add_8;
- c->idct = ff_simple_idct_8;
- c->idct_permutation_type = FF_NO_IDCT_PERM;
+ c->idct_put = ff_simple_idct_put_8;
+ c->idct_add = ff_simple_idct_add_8;
+ c->idct = ff_simple_idct_8;
+ c->perm_type = FF_IDCT_PERM_NONE;
}
}
}
ff_idctdsp_init_x86(c, avctx, high_bit_depth);
ff_init_scantable_permutation(c->idct_permutation,
- c->idct_permutation_type);
+ c->perm_type);
}