You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.7KB

  1. /*
  2. * ac3_internal.h
  3. *
  4. * Copyright (C) Aaron Holtzman - May 1999
  5. *
  6. * This file is part of ac3dec, a free Dolby AC-3 stream decoder.
  7. *
  8. * ac3dec is free software; you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License as published by
  10. * the Free Software Foundation; either version 2, or (at your option)
  11. * any later version.
  12. *
  13. * ac3dec is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. * GNU General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU General Public License
  19. * along with GNU Make; see the file COPYING. If not, write to
  20. * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  21. *
  22. */
  23. #define LEVEL_PLUS3DB 1.4142135623730951
  24. #define LEVEL_3DB 0.7071067811865476
  25. #define LEVEL_45DB 0.5946035575013605
  26. #define LEVEL_6DB 0.5
  27. /* Exponent strategy constants */
  28. #define EXP_REUSE (0)
  29. #define EXP_D15 (1)
  30. #define EXP_D25 (2)
  31. #define EXP_D45 (3)
  32. /* Delta bit allocation constants */
  33. #define DELTA_BIT_REUSE (0)
  34. #define DELTA_BIT_NEW (1)
  35. #define DELTA_BIT_NONE (2)
  36. #define DELTA_BIT_RESERVED (3)
  37. void bit_allocate (ac3_state_t * state, ac3_ba_t * ba, int bndstart,
  38. int start, int end, int fastleak, int slowleak,
  39. uint8_t * exp, int8_t * bap);
  40. int downmix_init (int input, int flags, float * level, float clev, float slev);
  41. void downmix (float * samples, int acmod, int output, float level, float bias,
  42. float clev, float slev);
  43. void imdct_init (void);
  44. extern void (* imdct_256) (float data[], float delay[]);
  45. extern void (* imdct_512) (float data[], float delay[]);