mirror of
https://github.com/librempeg/librempeg
synced 2024-11-23 11:39:47 +00:00
dct: bypass table allocation for DCT_II of size 32
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>
This commit is contained in:
parent
257de5fb25
commit
721d6f2dc5
@ -180,9 +180,14 @@ av_cold int ff_dct_init(DCTContext *s, int nbits, enum DCTTransformType inverse)
|
||||
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];
|
||||
@ -203,9 +208,7 @@ av_cold int ff_dct_init(DCTContext *s, int nbits, enum DCTTransformType inverse)
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user