X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=lib%2Fmdct.h;h=289a8e71d55f49d80a299eb9ad995ef9d53e5731;hb=20104ce7e73d9fc0467e0b16f1d0b614836a4f56;hp=f7d3dbd1d7145266d165536cc94eb698daa8fcde;hpb=20c9770cc68d165a0cb7b8a332103b9659b29e4c;p=platform%2Fupstream%2Flibvorbis.git diff --git a/lib/mdct.h b/lib/mdct.h index f7d3dbd..289a8e7 100644 --- a/lib/mdct.h +++ b/lib/mdct.h @@ -1,47 +1,71 @@ /******************************************************************** * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * + * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-1999 * - * by 1999 Monty and The XIPHOPHORUS Company * - * http://www.xiph.org/ * + * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * + * by the Xiph.Org Foundation http://www.xiph.org/ * * * ******************************************************************** function: modified discrete cosine transform prototypes + last mod: $Id$ ********************************************************************/ -#ifndef _OGG_MDCT_H_ -#define _OGG_MDCT_H_ +#ifndef _OGG_mdct_H_ +#define _OGG_mdct_H_ -typedef struct { - int n; - int log2n; - - double *trig; - int *bitrev; +#include "vorbis/codec.h" -} MDCT_lookup; -extern MDCT_lookup *MDCT_init(int n); -extern void MDCT_free(MDCT_lookup *l); -extern void MDCT(double *in, double *out, MDCT_lookup *init, double *window); -extern void iMDCT(double *in, double *out, MDCT_lookup *init, double *window); -#endif +/*#define MDCT_INTEGERIZED <- be warned there could be some hurt left here*/ +#ifdef MDCT_INTEGERIZED +#define DATA_TYPE int +#define REG_TYPE register int +#define TRIGBITS 14 +#define cPI3_8 6270 +#define cPI2_8 11585 +#define cPI1_8 15137 +#define FLOAT_CONV(x) ((int)((x)*(1<>TRIGBITS) +#define HALVE(x) ((x)>>1) +#else +#define DATA_TYPE float +#define REG_TYPE float +#define cPI3_8 .38268343236508977175F +#define cPI2_8 .70710678118654752441F +#define cPI1_8 .92387953251128675613F +#define FLOAT_CONV(x) (x) +#define MULT_NORM(x) (x) +#define HALVE(x) ((x)*.5f) +#endif +typedef struct { + int n; + int log2n; + + DATA_TYPE *trig; + int *bitrev; + DATA_TYPE scale; +} mdct_lookup; +extern void mdct_init(mdct_lookup *lookup,int n); +extern void mdct_clear(mdct_lookup *l); +extern void mdct_forward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out); +extern void mdct_backward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out); + +#endif