Module: libav Branch: master Commit: 721d6f2dc5437df21ae17923b29fa2be847764c7
Author: Mans Rullgard <[email protected]> Committer: Mans Rullgard <[email protected]> Date: Mon May 16 15:57:04 2011 +0100 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 <[email protected]> --- libavcodec/dct.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libavcodec/dct.c b/libavcodec/dct.c index 83ea00f..e7a8f22 100644 --- a/libavcodec/dct.c +++ b/libavcodec/dct.c @@ -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); _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
