The size-32 DCT_II has a special implementation which doesn't use
the normal tables. Skipping allocation of these in this case saves
some memory.
Signed-off-by: Mans Rullgard <mans@mansr.com>
int n = 1 << nbits;
int i;
+ memset(s, 0, sizeof(*s));
+
s->nbits = nbits;
s->inverse = inverse;
+ if (inverse == DCT_II && nbits == 5) {
+ s->dct_calc = dct32_func;
+ } else {
ff_init_ff_cos_tabs(nbits+2);
s->costab = ff_cos_tabs[nbits+2];
case DCT_III: s->dct_calc = ff_dct_calc_III_c; break;
case DST_I : s->dct_calc = ff_dst_calc_I_c; break;
}
-
- if (inverse == DCT_II && nbits == 5)
- s->dct_calc = dct32_func;
+ }
s->dct32 = dct32;
if (HAVE_MMX) ff_dct_init_mmx(s);