mpegaudio.h
上传用户:wstnjxml
上传日期:2014-04-03
资源大小:7248k
文件大小:1k
源码类别:

Windows CE

开发平台:

C/C++

  1. /**
  2.  * @file mpegaudio.h
  3.  * mpeg audio declarations for both encoder and decoder.
  4.  */
  5. /* max frame size, in samples */
  6. #define MPA_FRAME_SIZE 1152 
  7. /* max compressed frame size */
  8. #define MPA_MAX_CODED_FRAME_SIZE 1792
  9. #define MPA_MAX_CHANNELS 2
  10. #define SBLIMIT 32 /* number of subbands */
  11. #define MPA_STEREO  0
  12. #define MPA_JSTEREO 1
  13. #define MPA_DUAL    2
  14. #define MPA_MONO    3
  15. /* header + layer + bitrate + freq + lsf/mpeg25 */
  16. #define SAME_HEADER_MASK 
  17.    (0xffe00000 | (3 << 17) | (0xf << 12) | (3 << 10) | (3 << 19))
  18. int l2_select_table(int bitrate, int nb_channels, int freq, int lsf);
  19. int mpa_decode_header(AVCodecContext *avctx, uint32_t head);
  20. extern const uint16_t mpa_bitrate_tab[2][3][15];
  21. extern const uint16_t mpa_freq_tab[3];
  22. extern const unsigned char *alloc_tables[5];
  23. extern const double enwindow[512];
  24. extern const int sblimit_table[5];
  25. extern const int quant_steps[17];
  26. extern const int quant_bits[17];
  27. extern const int32_t mpa_enwindow[257];
  28. /* fast header check for resync */
  29. static inline int ff_mpa_check_header(uint32_t header){
  30.     /* header */
  31.     if ((header & 0xffe00000) != 0xffe00000)
  32.         return -1;
  33.     /* layer check */
  34.     if ((header & (3<<17)) == 0)
  35.         return -1;
  36.     /* bit rate */
  37.     if ((header & (0xf<<12)) == 0xf<<12)
  38.         return -1;
  39.     /* frequency */
  40.     if ((header & (3<<10)) == 3<<10)
  41.         return -1;
  42.     return 0;
  43. }