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.

76 lines
2.3KB

  1. /*
  2. * MPEG Audio common tables
  3. * copyright (c) 2002 Fabrice Bellard
  4. *
  5. * This file is part of FFmpeg.
  6. *
  7. * FFmpeg is free software; you can redistribute it and/or
  8. * modify it under the terms of the GNU Lesser General Public
  9. * License as published by the Free Software Foundation; either
  10. * version 2.1 of the License, or (at your option) any later version.
  11. *
  12. * FFmpeg is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * Lesser General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU Lesser General Public
  18. * License along with FFmpeg; if not, write to the Free Software
  19. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  20. */
  21. /**
  22. * @file
  23. * mpeg audio layer common tables.
  24. */
  25. #ifndef AVCODEC_MPEGAUDIODATA_H
  26. #define AVCODEC_MPEGAUDIODATA_H
  27. #include <stdint.h>
  28. #include "internal.h"
  29. #include "vlc.h"
  30. #define MODE_EXT_MS_STEREO 2
  31. #define MODE_EXT_I_STEREO 1
  32. extern av_export_avcodec const uint16_t avpriv_mpa_bitrate_tab[2][3][15];
  33. extern av_export_avcodec const uint16_t avpriv_mpa_freq_tab[3];
  34. extern const int ff_mpa_sblimit_table[5];
  35. extern const int ff_mpa_quant_steps[17];
  36. extern const int ff_mpa_quant_bits[17];
  37. extern const unsigned char * const ff_mpa_alloc_tables[5];
  38. /* VLCs for decoding layer 3 huffman tables */
  39. extern VLC ff_huff_vlc[16];
  40. extern VLC ff_huff_quad_vlc[2];
  41. /* layer3 scale factor size */
  42. extern const uint8_t ff_slen_table[2][16];
  43. /* number of lsf scale factors for a given size */
  44. extern const uint8_t ff_lsf_nsf_table[6][3][4];
  45. extern const uint8_t ff_mpa_huff_data[32][2];
  46. /* band size tables */
  47. extern const uint8_t ff_band_size_long[9][22];
  48. extern const uint8_t ff_band_size_short[9][13];
  49. /* computed from ff_band_size_long */
  50. extern uint16_t ff_band_index_long[9][23];
  51. extern int16_t *const ff_division_tabs[4];
  52. /* lower 2 bits: modulo 3, higher bits: shift */
  53. extern uint16_t ff_scale_factor_modshift[64];
  54. extern const uint8_t ff_mpa_pretab[2][22];
  55. /* table for alias reduction (XXX: store it as integer !) */
  56. extern const float ff_ci_table[8];
  57. /* Initialize tables shared between the fixed and
  58. * floating point MPEG audio decoders. */
  59. void ff_mpegaudiodec_common_init_static(void);
  60. #endif /* AVCODEC_MPEGAUDIODATA_H */