00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00027 #ifndef AVCODEC_MPEGAUDIODECHEADER_H
00028 #define AVCODEC_MPEGAUDIODECHEADER_H
00029
00030 #include "avcodec.h"
00031
00032 #define MP3_MASK 0xFFFE0CCF
00033
00034 #define MPA_DECODE_HEADER \
00035 int frame_size; \
00036 int error_protection; \
00037 int layer; \
00038 int sample_rate; \
00039 int sample_rate_index; \
00040 int bit_rate; \
00041 int nb_channels; \
00042 int mode; \
00043 int mode_ext; \
00044 int lsf;
00045
00046 typedef struct MPADecodeHeader {
00047 MPA_DECODE_HEADER
00048 } MPADecodeHeader;
00049
00050
00051
00052
00053 int ff_mpegaudio_decode_header(MPADecodeHeader *s, uint32_t header);
00054
00055
00056
00057 int ff_mpa_decode_header(AVCodecContext *avctx, uint32_t head, int *sample_rate, int *channels, int *frame_size, int *bitrate);
00058
00059
00060 static inline int ff_mpa_check_header(uint32_t header){
00061
00062 if ((header & 0xffe00000) != 0xffe00000)
00063 return -1;
00064
00065 if ((header & (3<<17)) == 0)
00066 return -1;
00067
00068 if ((header & (0xf<<12)) == 0xf<<12)
00069 return -1;
00070
00071 if ((header & (3<<10)) == 3<<10)
00072 return -1;
00073 return 0;
00074 }
00075
00076 #endif