00001
00006
00007 #define MPA_FRAME_SIZE 1152
00008
00009
00010 #define MPA_MAX_CODED_FRAME_SIZE 1792
00011
00012 #define MPA_MAX_CHANNELS 2
00013
00014 #define SBLIMIT 32
00015
00016 #define MPA_STEREO 0
00017 #define MPA_JSTEREO 1
00018 #define MPA_DUAL 2
00019 #define MPA_MONO 3
00020
00021
00022 #define SAME_HEADER_MASK \
00023 (0xffe00000 | (3 << 17) | (0xf << 12) | (3 << 10) | (3 << 19))
00024
00025 int l2_select_table(int bitrate, int nb_channels, int freq, int lsf);
00026 int mpa_decode_header(AVCodecContext *avctx, uint32_t head);
00027
00028 extern const uint16_t mpa_bitrate_tab[2][3][15];
00029 extern const uint16_t mpa_freq_tab[3];
00030 extern const unsigned char *alloc_tables[5];
00031 extern const double enwindow[512];
00032 extern const int sblimit_table[5];
00033 extern const int quant_steps[17];
00034 extern const int quant_bits[17];
00035 extern const int32_t mpa_enwindow[257];
00036
00037
00038 static inline int ff_mpa_check_header(uint32_t header){
00039
00040 if ((header & 0xffe00000) != 0xffe00000)
00041 return -1;
00042
00043 if ((header & (3<<17)) == 0)
00044 return -1;
00045
00046 if ((header & (0xf<<12)) == 0xf<<12)
00047 return -1;
00048
00049 if ((header & (3<<10)) == 3<<10)
00050 return -1;
00051 return 0;
00052 }