On 05/16/2011 10:58 AM, Mans Rullgard wrote:

> 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);


ok.

-Justin

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to