1 简介
MAD(libmad)是一个开源的高精度MPEG音频解码库,支持MPEG-1(Layer I, Layer II 和LayerIII-也就是 MP3)。LIBMAD提供24-bit的PCM输出,完全是定点计算,非常适合没有浮点支持的平台上使用。使用libmad 提供的一系列API,就可以非常简单地实现 MP3数据解码工作。在libmad 的源代码文件目录下的 mad.h 文件中,可以看到绝大部分该库的数据结构和API等。
2 libmad中的主要数据结构
struct mad_stream 存放解码前的Bitstream 数据
struct mad_synth 存放解码合成滤波后的PCM数据
struct mad_pcm 定义了音频的采样率,声道个数和PCM 采样数据, 用来初始化音频
struct mad_frame 记录MPEG 帧解码后PCM 数据的数据结构,其中的mad_header 用来记录MPEG 帧的基本信息,比如MPEG 层数、声道模式、流