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
微软推出基于云计算业务Azure的新平台
魅族新增银联二维码付款功能,用手机实现代替消费
医疗与5G的跨界融合
IBM发布2023年五大趋势:直面混乱,掌控变局
平均电流模式控制的电流检测变压器电路设计
s3c2410移植MPlayer到linux2.6
OPPO reno 9 系列发布,起售价2499
美国航司到今年年底将退役800到1000架飞机
在香港举行的4G/5G峰会高通都公布了哪些新消息
苹果M1电脑:一场不动声色的变革
紫光股份股东拟转让公司总股本的17.00%的股份 将进一步优化公司股权结构
制作PCB板需注意的事项
英特尔入局博通高通收购战;AWE艾普兰奖新鲜出炉;两会聚焦物联网
基于赛灵思FPGA的广告推荐算法Wide and deep硬件加速案例
如何让微控制器性能发挥极限
高频采样示波器搭配高频差分探头进行高速差分阻抗测试方案
安科瑞企业工业能耗管理平台帮助企业提供基础数据和支持
AT89S52单片机的掉电模式与中断触发唤醒测试
一加5来了,对比小米6、努比亚Z17哪款更值得入手?
怎样利用5G技术建设数字医院