s3c2410移植MPlayer到linux2.6

发布时间:2023-01-04  

我使用的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


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>