MAD简介
(翻译官网的-.-)MAD 是高质量的MPEG audio decoder,它支持 MPEG-1 和 低频率的MPEG-2拓展和MPEG 2.5,MAD不支持MPEG-2 多通道音频,也不支持AAC,支持MP3格式
MAD 有如下特点:
24-bit PCM 输出
100% 非浮点(整型) 计算
完全基于ISO/IEC标准
基于GNU General Public License (GPL)
*该软件以库文件(libmad) 和命令行前端软件(madplay)来发布的, 包括ID3 tag 操作的库 (libid3tag)
*上层的API例子在minimad.c源文件中
*madplay为oss建构
使用了MAD的软件有很多,如MPlayer,Rhythmbox (ubuntu的默认音乐播放器),Apollo ,avifile,mplay等
官网http://www.underbit.com/products/mad
MAD的移植
1.下载源文件(官网FTP或SourceForge都有)
madplay-0.15.2b.tar.gz
libmad-0.15.1b.tar.gz
libid3tag-0.15.1b.tar.gz
libz-1.1.4.tar.gz
2.编译libz
./configure --prefix=/home/layverns/MP3/madplay --host=arm-linux
编译与安装
make
make install
3.编译libid3tag
./configure --host=arm-linux --prefix=/home/layverns/MP3/madplay CPPFLAGS=-I/home/layverns/MP3/madplay/include LDFLAGS=-L/home/layverns/MP3/madplay/lib
编译与安装
make
make install
4.编译libmad
./configure --host=arm-linux --prefix=/home/layverns/MP3/madplay CPPFLAGS=-I/home/layverns/MP3/madplay/include LDFLAGS=-L/home/layverns/MP3/madplay/lib
编译与安装
make
make install
注:由于使用的是高版本的arm-linux-gcc 4.4.6编译器,make时出现了”ccl:error:unrecognized command line option “-fforce-mem””错误,这是因为这个高版本的gcc没有”-fforce-mem”参数,
解决的办法是在libmad文件中的Makefile里面查找”-fforce-mem”,将其删除即可。
5.编译madplay
./configure --host=arm-linux --prefix=/home/layverns/MP3/madplay CPPFLAGS=-I/home/layverns/MP3/madplay/include LDFLAGS=-L/home/layverns/MP3/madplay/lib
编译与安装
make
make install
6.复制到开发板,运行
cp /home/layverns/MP3/madplay/lib/* /nfsroot/lib
(库文件)
cp /home/layverns/MP3/madplay/bin/madplay /nfsroot/home
(可执行文件,madplay)
在开发板直接运行
./madplay XXX.mp3
移植完毕^.^