s3c2410移植MPlayer到linux2.6

嵌入式技术

1335人已加入

描述

s3c2410移植MPlayer到linux2.6

我使用的linux内核为2.6.14.1 MPlayer版本为MPlayer-1.0pre7try2.bz2
目前虽然已经添加了mad的mp3库,但播放声音文件回导致mplayer错误,放视频还得禁掉声音,怪了,madplay放mp3就很好
下面介绍下整个移植过程,也是参考了网上很多文章综合而来的
=================================================================
1)编译器最好选择3.3.2 ,我使用3.4.1会出现snow.c编译错误,找不到解决办法
解压3.3.2到/usr/local/arm/下
并export PATH=http://www.eda-china.com/usr/local/arm/3.3.2/bin:$PATH
echo $PATH看看3.3.2是不是在第一个?

2)播放mp3需要禁掉mp3lib 而使用madlib ,据说如果使用mp3lib会占用2000%的CPU,可能嘛?
安装libmad
(1).交叉编译libmad 
下载libmad包(libmad-0.15.1b.tar.gz);
打开一个终端,进入libmad的目录,输入配置命令:
./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=http://www.eda-china.com/usr/local/arm/3.3.2/lib
CC=arm-linux-gcc(要保证arm-linux-gcc的路径已经有 export过,否则给出完整路径。)
make
make install
这样就可以看到 /usr/local/arm/3.3.2/lib 目录下多了include和lib目录,这些就是libmad相关的库。
(2).在 configure mplayer的时候,要加上以下几个选项:
--enable-mad
--with-extraincdir=http://www.eda-china.com/usr/local/arm/3.3.2/lib/include(这个指明 mad.h 这个文件所在的路径)
--with-extralibdir=http://www.eda-china.com/usr/local/arm/3.3.2/lib/lib(这个指明libmad相关链接库所在的路径)
通过以上两个步骤,就可以把libmad交叉编译到 mplayer中。

3)解压MPlayer-1.0pre7try2.bz2,改名为mplayer ,方便而已
在此目录下配置
./configure   --cc=arm-linux-gcc   --target=arm-armv4-linux   --enable-static   --disable-win32     --disable-dvdread   --enable-fbdev   --disable-mencoder   --disable-live   --disable-mp3lib   --enable-mad   --enable-libavcodec   --with-extraincdir=http://www.eda-china.com/usr/local/arm/3.3.2/arm-linux/sys-include/:/usr/local/arm/3.3.2/lib/include --with-extralibdir=http://www.eda-china.com/usr/local/arm/3.3.2/arm-linux/lib:/usr/local/arm/3.3.2/lib/lib --prefix=http://www.eda-china.com/tmp/mplayer --host-cc=gcc

4)make
当然会有错误

排错

错误(1)
./codec-cfg ./etc/codecs.conf > codecs.conf.h
./codec-cfg: 1: Syntax error: word unexpected (expecting ")")

网上有两种解决方法
A 说在configure时添加 --host-cc=gcc就可以解决 
可是会出现其他库找不到的错误
猜想是指定了库--with-extralibdir导致的,所以还得采用笨笨的B方案

B 引用原话
“ 先把mplayer编译成x86的代码,于是重新配置,简单的   ./configure,   make,然后将生成的codec-cfg改名为codec-cfg.x86。
然后再按跨平台方式配置,编译,等编译器出现错误停止编译时,将codec-cfg.x86该名为codec-cfg,再make,OK,编译就可以继续进行了。”
的确可行

错误(2)vobsub.c错误
这个错误可能在B方案时就会出现,
解决方法:修改vobsub.c 230行将getline函数名称改为mygetline

5)make完毕后拷贝目录下的mplayer文件到arm9linux文件系统运行就好了,我是拷贝在u盘里面运行的
>/mnt # mplayer
>MPlayer 1.0pre7try2-3.3.2 (C) 2000-2005 MPlayer Team
>CPU: ARM
>Usage:   mplayer [options] [url|path/]filename

6)播放mp3的问题
A不带参数运行,如下
/mnt # mplayer 1.mp3
MPlayer 1.0pre7try2-3.3.2 (C) 2000-2005 MPlayer Team
CPU: ARM
Failed to open /dev/rtc: No such file or directory (it should be readable by the user.)
Playing 1.mp3.
Audio file detected.
Clip info:
Title: 高达一年战争秘闻录
Artist: Taja
Album: 
Year: 
Comment: 
Genre: Other

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分