移植MPlayer

软件移植MPlayer
在文件系统中使用mplayer进行音频和视频播放。本文讲述了如何移植mplayer及移植过程当中须要的各类库。
1、 开发环境
         虚拟机 vmware 7.0.0
         系统:Ubuntu 9.10
         交叉编译工具链:arm-2009q1
         开发板CPU:am3217
         交叉编译工具链安装路径/opt/Tools/arm-2009q1
         移植源码存放路径:/opt/transplants
2、移植MPlayer
2.1 移植ALSA
2.1.1 获取源码
         从网站 http://www.alsa-project.org/main/index.php/Download下载alsa-lib-1.0.23.tar.bz2源码,拷贝到/opt/transplants目录下。
2.1.2 修改并配置源码
         解压源码包
Host# cd /opt/transplants
Host# tar jxvf alsa-lib-1.0.23.tar.bz2
解压后生成目录alsa-lib-1.0.23。
         进入目录后进行配置
Host# ./configure --host=arm-none-linux-gnueabi --target=arm-linux --prefix=/alsa-lib --enable-shared --disable-python --with-configdir=/alsa --with-plugindir=/usr/lib/alsa-lib
--host 配置交叉编译工具链;--prefix配置编译生成库的存放目录。--with-configdir配置库在开发板文件系统中的存放目录
2.1.3 编译并安装源码
         编译安装
Host#make
Host#make install
成功后在系统根目录下生成/alsa-lib目录;在/usr/share/目录下生成alsa目录。
         将/alsa-lib目录下全部文件拷贝到/opt/Tools/arm-2009q1/arm-none-linux-gnueabi/libc/usr目录下,为编译mplayer作准备。
Host# cp /alsa-lib/** /opt/Tools/arm-2009q1/arm-none-linux-gnueabi/libc/usr -raf
         将/alsa-lib目录下全部文件拷贝到开发板文件系统/usr目录下
         将/usr/share/alsa目录拷贝到开发板文件系统/usr/share目录下
         在开发板文件系统/etc/profile添加以下内容
mkdir /dev/snd
ln -s /dev/pcmC0D0c /dev/snd/pcmC0D0c
ln -s /dev/pcmC0D0p /dev/snd/pcmC0D0p
ln -s /dev/controlC0 /dev/snd/controlC0
ln -s /dev/pcmC1D0c /dev/snd/pcmC1D0c
ln -s /dev/pcmC1D0p /dev/snd/pcmC1D0p
ln -s /dev/controlC1 /dev/snd/controlC1
ln -s /dev/seq /dev/snd/seq
ln -s /dev/timer /dev/snd/timer
ALSA库移植完毕。
NOTE:开发板文件系统没有的目录请用户根据须要自行建立。
2.2 移植LIBMAD库
播放mp3文件须要libmad库支持。
2.2.1 获取源码
         去网站 http://sourceforge.net/projects/mad/files/下载libmad-0.12.1b.tar.gz源码,拷贝到/opt/transplants目录下。
2.2.2 修改并配置源码
         解压源码包
Host# cd /opt/transplants
Host# tar jxvf libmad-0.12.1b.tar.bz2
解压后生成目录libmad-0.12.1b。
         进入目录后进行配置
Host# ./configure --host=arm-none-linux-gnueabi --prefix=/opt/libmad
--host 配置交叉编译工具链;--prefix配置编译生成库的存放目录。
2.2.3 编译并安装源码
         编译安装
Host#make
Host#make install
NOTE:编译过程遇到与”-fforce-mem”相关的错误,打开Makefile找到CFLAGS变量,将它的-fforce-mem选项去掉便可。
成功后生成/opt/libmad目录。
         将/opt/libmad目录下全部文件拷贝到/opt/Tools/arm-2009q1/arm-none-linux-gnueabi/libc/usr目录下,为编译mplayer作准备。
Host# cp /opt/libmad/** /opt/Tools/arm-2009q1/arm-none-linux-gnueabi/libc/usr -raf
         将/opt/libmad目录下全部文件拷贝到开发板文件系统/usr目录下。
NOTE:开发板文件系统没有的目录请用户根据须要自行建立。
2.3 移植MPlayer
2.3.1 获取源码
         到网站 http://www.mplayerhq.hu/design7/dload.html下载mplayer-export-snapshot.tar.bz2源码,拷贝到/opt/transplants目录下。
2.3.2 修改并配置源码
         解压源码包
Host# cd /opt/transplants
Host# tar jxvf mplayer-checkout-2010-09-26.tar.bz2
解压后生成目录mplayer-checkout-2010-09-26。
NOTE:源码解压生成的目录名随更新日期的变化而变化。
         进入目录后进行配置
Host# cd mplayer-checkout-2010-09-26
Host# ./configure --host-cc=gcc --cc=arm-none-linux-gnueabi-gcc --target=arm-armv4-linux --prefix=/tmp/mplayer --disable-win32dll --disable-dvdread --enable-fbdev --disable-mencoder --enable-mad
2.3.3 编译并安装源码
         编译安装
Host# make
成功后本目录下mplayer可执行文件。
         将mplayer文件拷贝到开发板文件系统/opt目录下。
NOTE:开发板文件系统没有的目录请用户根据须要自行建立。
2.3.4 测试验证
上述操做结束,拷贝几个mp3和mpg格式的文件,放在开发板文件系统/opt目录下。
         启动板卡进入系统。
Target# cd /opt
         播放mp3文件。
Target# ./mplayer –ao alsa xxx.mp3
耳机会听到音乐,测试成功。