psy.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /********************************************************************
  2. * *
  3. * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. *
  4. * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY *
  5. * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. *
  6. * PLEASE READ THESE TERMS DISTRIBUTING. *
  7. * *
  8. * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-2000 *
  9. * by Monty <monty@xiph.org> and The XIPHOPHORUS Company *
  10. * http://www.xiph.org/ *
  11. * *
  12. ********************************************************************
  13. function: random psychoacoustics (not including preecho)
  14. last mod: $Id: psy.h,v 1.14.2.1 2000/08/31 09:00:01 xiphmont Exp $
  15. ********************************************************************/
  16. #ifndef _V_PSY_H_
  17. #define _V_PSY_H_
  18. #include "smallft.h"
  19. #ifndef EHMER_MAX
  20. #define EHMER_MAX 56
  21. #endif
  22. typedef struct {
  23. int n;
  24. struct vorbis_info_psy *vi;
  25. float ***tonecurves;
  26. float **peakatt;
  27. float **noiseatt;
  28. float *ath;
  29. int *octave;
  30. float *bark;
  31. } vorbis_look_psy;
  32. extern void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi,int n,long rate);
  33. extern void _vp_psy_clear(vorbis_look_psy *p);
  34. extern void *_vi_psy_dup(void *source);
  35. extern void _vi_psy_free(vorbis_info_psy *i);
  36. extern void _vp_compute_mask(vorbis_look_psy *p,float *f,
  37. float *floor,
  38. float *decay);
  39. extern void _vp_apply_floor(vorbis_look_psy *p,float *f,float *flr);
  40. #endif