现在的位置: 首页 > 综合 > 正文

移植Mplayer到s3c2410上

2013年12月07日 ⁄ 综合 ⁄ 共 2642字 ⁄ 字号 评论关闭

     今晚碰到一师弟问mplayer移植的问题···时间过得真快~这样就一年过去了,去年我还才刚接触arm开发··还是最基本的博创的2410···上个笔记,当时在2410上移植mplayer的心得。

 

---------

 

Mplayer版本:MPlayer-1.0rc2

交叉编译器:Arm-linux-gcc
3.4.1

Libmad库:libmad-0.15.1b.tar.gz

 

1.       在终端中输入“arm-linux-“ 看是否能够自动适配出arm-linux-gcc, 然后输入-v 查看交叉编译器版本是否为3.4.1 否则返回上面第一步。

 

2.       交叉编译libmad

解压libmad-0.15.1b.tar.gz打开终端,进入该目录,输入配置命令:

   ./configure --enable-fpm=arm
--host=arm-linux --disable-shared --disable-debugging --prefix=/usr/local/arm/3.4.1/lib
CC="arm-linux-gcc"

然后make, make install;

之后可在/usr/local/arm/3.4.1/lib 目录下找到生成的includelib目录,这些就是libmad相关的库

 

3.     交叉编译Mplayer1.0rc2

MPlayer-1.0rc2.tar.bz2解压至/usr/src/目录下,将目录下的libdvdcss/ioctl.c文件中的所有#error "DVD ioctls are unavailable on
this system"
注释掉,否则后面的编译会出错。

进入解压后的目录,在终端中输入以下命令:


4.  ./configure
--target=arm-linux --cc=arm-linux-gcc --enable-fbdev --disable-win32dll
--disable-dvdread --disable-network --enable-menu --disable-ftp --disable-alsa
--enable-ossaudio --disable-tv --disable-x11 --enable-cross-compile
--target=arm-linux --host-cc=gcc --disable-armv5te --disable-armv6
--language=en --enable-debug --disable-mp3lib --enable-libavcodec_a
--enable-fbdev --disable-mencoder --enable-mad
--with-extraincdir=/usr/local/arm/3.4.1/arm-linux/sys-include/:/usr/local/arm/3.4.1/lib/include
--with-extralibdir=/usr/local/arm/3.4.1/arm-linux/lib:/usr/local/arm/3.4.1/lib/lib  --enable-libavcodec_mpegaudio_hp
--enable-static --disable-live


5.  make


6.  重新编译s3c2410的2.4.18的内核(2410用2.4内核的话必须重新编译,否则卡死,因为音频驱动的原因)。


修改音频驱动源码(linux-2.4.18-2410cl/drivers/sound/
s3c2410-uda1341.c),在smdk2410_audio_open函数中添加一下两行代码:

   if (!output_stream .buffers &&
audio_setup_buf(&output_stream))

                  
return -ENOMEM;

添加的位置具体见以下代码注释的那个if语句:

 


改完驱动后,重新编译内核。

修改arm板上的mplayer配置文件,打开/root/.mplayer/下的配置文件config,在里面添加一行ao=mad  

这是用于指定音频输出采用libmad解码`    

 

抱歉!评论已关闭.