mdct.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /********************************************************************
  2. * *
  3. * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. *
  4. * *
  5. * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
  6. * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
  7. * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
  8. * *
  9. * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2003 *
  10. * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ *
  11. * *
  12. ********************************************************************
  13. function: modified discrete cosine transform prototypes
  14. ********************************************************************/
  15. #ifndef _OGG_mdct_H_
  16. #define _OGG_mdct_H_
  17. #include "ivorbiscodec.h"
  18. #include "misc.h"
  19. #define DATA_TYPE ogg_int32_t
  20. #define REG_TYPE register ogg_int32_t
  21. #ifdef _LOW_ACCURACY_
  22. #define cPI3_8 (0x0062)
  23. #define cPI2_8 (0x00b5)
  24. #define cPI1_8 (0x00ed)
  25. #else
  26. #define cPI3_8 (0x30fbc54d)
  27. #define cPI2_8 (0x5a82799a)
  28. #define cPI1_8 (0x7641af3d)
  29. #endif
  30. extern void mdct_backward(int n, DATA_TYPE *in);
  31. extern void mdct_shift_right(int n, DATA_TYPE *in, DATA_TYPE *right);
  32. extern void mdct_unroll_lap(int n0,int n1,
  33. int lW,int W,
  34. DATA_TYPE *in,DATA_TYPE *right,
  35. LOOKUP_T *w0,LOOKUP_T *w1,
  36. ogg_int16_t *out,
  37. int step,
  38. int start,int end /* samples, this frame */);
  39. #endif