移植mplayer通过,散分
今天终于将mplayer移植到了ARM-LINUX上,散分庆祝!!!!现将移植步骤说一下:
1.在mplayer官方网站下载最新版源码
2.编写脚本文件build.sh,文件内容如下:
./configure --cc=arm-linux-gcc \
--host-cc=gcc \
--enable-cross-compile \
--target=arm-armv4l-linux \
--enable-linux-devfs \
--disable-win32 \
--disable-dvdread \
--enable-fbdev \
--disable-mencoder \
--enable-libavcodec \
--enable-liba52 \
--disable-libmpeg2 \
--disable-mp3lib \
--enable-static \
--disable-live
3.为该文件加上可执行权限: chmod +x build.sh
4.执行此脚本文件: ./build.sh
5.如果你的板子上没有RTC驱动,就修改顶层目录下的config.h文件,将文件中的#define HAVE_RTC 1这一行给注释掉
6.如果你不想修改你的音频驱动(之所以要修改音频驱动,网上有相关介绍,主要原因是代码中与驱动的结合不太好,代码中出现了一个整数除以0的情况导致程序异常),就按照以下的方法修改libao2/ao_oss.c文件:
第一步:找到static int play(void* data,int len,int flags)函数,在第一行加入ao_data.outburst = 8192;
第二步:找到static float get_delay(void)函数,注释掉里面所有内容,最后加入:return 0.8;
第三步:找到static int init(int rate,int channels,int format,int flags)函数中的如下代码,并注释掉:
if(ioctl(audio_fd, SNDCTL_DSP_GETOSPACE, &zz)==-1){
int r=0;
mp_msg(MSGT_AO,MSGL_WARN,MSGTR_AO_OSS_CantUseGetospace);
if(ioctl(audio_fd, SNDCTL_DSP_GETBLKSIZE, &r)==-1){
mp_msg(MSGT_AO,MSGL_V,"audio_setup: %d bytes/frag (config.h)\n",ao_data.outburst);
} else {
ao_data.outburst=r;
mp_msg(MSGT_AO,MSGL_V,"audio_setup: %d bytes/frag (GETBLKSIZE)\n",ao_data.outburst);
}
} else {
mp_msg(MSGT_AO,MSGL_V,"audio_setup: frags: %3d/%d (%d bytes/frag) free: %6d\n",
zz.fragments, zz.fragstotal, zz.fragsize, zz.bytes);
if(ao_data.buffersize==-1) ao_data.buffersize=zz.bytes;
ao_data.outburst=zz.fragsize;
}
在之后加入以下两行:
ao_data.outburst=8192;
ao_data.buffersize=32768;
到此大功告成,在命令行下输入make,最终将会在当前目录下生成mplayer文件,大概有十来M,下载到板子上就可以播放音频或者视频文件了.注意:如果你没有使用RTC,就需要用软件同步的方法,也就是在播放同时有音频与视频的文件时,需要加上参数
-softsleep
问题点数:100、回复次数:26Top
1 楼hyg2008(蓝色雨)回复于 2006-09-30 07:41:33 得分 10
mark是个好习惯Top
2 楼xdspower(杂食菜熊)回复于 2006-09-30 09:06:54 得分 10
我的手机E680i就是使用ARM体系芯片Linux系统,早就使用了Mplayer的移植了,这个在手机论坛上早就有了,而且它还只能在交叉编译系统中完成编译,再传到目标上调试的。Top
3 楼Sniper167(啥都不会)回复于 2006-09-30 09:18:25 得分 10
恭喜楼主
以后还望楼主多多指教
Top
4 楼ericzhangali(另一个空间)回复于 2006-09-30 09:40:40 得分 10
吼吼Top
5 楼tb01412(tb)回复于 2006-09-30 09:50:47 得分 0
to xdspower() :
网上到处有移植MPLAYER的文章,如果你的音频驱动刚好不幸使用的是MIZI公司所做的uda1341那一款,移植后播放音频文件就会出现异常,网上使用的方法是修改音频驱动,我这个人比较懒,不想修改驱动,所以就从MPLAYER自身入手,再者,如果你的芯片上没有使用RTC,或者用MPLAYER的时候老是提示RTC有问题的话,就照着我所说的做,这篇文章的意义就在于这里,如果仅仅是为了移植的话,就直接在网上找其它的文章了,说得更详细一些Top
6 楼zengwujun(月之海 为linux入门奋斗100天)回复于 2006-10-01 23:14:46 得分 10
接分
这种移植, 熟能生巧:)Top
7 楼softforce(感谢广东)回复于 2006-10-02 11:03:24 得分 10
学习,做个标记先。Top
8 楼upcuiling()回复于 2006-10-02 13:46:17 得分 10
10m 也太大了八Top
9 楼goodgod105(不来电)回复于 2006-10-08 17:29:50 得分 10
恭喜~~~~Top
10 楼yjf7888(seeking a place 找工作了location:Chengdu)回复于 2006-10-08 19:05:40 得分 10
厉害Top
11 楼Jiangcr81(晨风)回复于 2006-10-08 20:56:38 得分 10
我的板子上音频是1341的,参照楼主的方法make出了mplayer,但是在播放"qq爱.mp3"时没声音。
主要表现在start playing就不动了。
我是在U盘上播放的,U盘的灯这时也不闪了,正常应该是要闪的。
请楼主帮忙!Top
12 楼tb01412(tb)回复于 2006-10-09 10:28:48 得分 0
to Jiangcr81(晨风) :
换成英文名字的歌曲,再到载到板子上播放,试一试,应该可行吧??Top
13 楼tang_go(老唐)回复于 2006-10-09 14:26:07 得分 0
jf
学习...Top
14 楼Jiangcr81(晨风)回复于 2006-10-09 15:59:49 得分 0
我是把中文名改成英文名的。后来试了又很多其它歌曲,也是同样情况。但是在输出Starting playback前能听到耳机里传出一次“咔嗒”声
播了一个mjpeg格式的avi文件,是可以播的,但是也是没声音。
我怀疑还是改的ao_oss.c文件引起的。有空再试一下Top
15 楼nevil(沙漠中的水草)回复于 2006-10-09 16:20:47 得分 0
敬仰~Top
16 楼johndiyang(木木)回复于 2006-10-10 17:47:35 得分 0
完成工作,进行通告散分是好品质
接分是好习惯Top
17 楼zhaodm(幸好还有希望一直陪在我身边)回复于 2006-10-11 13:26:53 得分 0
恭喜楼主
我也来接一下 ^-^
Top
18 楼iambic()回复于 2006-10-11 13:29:44 得分 0
碰巧来接分。Top
19 楼stone_soup(夜不打拾)回复于 2006-10-11 14:47:51 得分 0
MarkTop
20 楼bluedreammer(瀟瀟鳥)回复于 2006-10-11 15:45:20 得分 0
牛人,顶下Top
21 楼xiaoke26(带三个表)回复于 2006-10-11 16:29:23 得分 0
学习,Mark先。工作了先买个Linux手机,慢慢学习Top
22 楼lei001(太极)回复于 2006-10-19 22:16:18 得分 0
upTop
23 楼maoxiafei(我要学好C和Linux)回复于 2006-10-20 09:01:14 得分 0
顶了先,我也在看mplayer呢现在Top
24 楼yjf7888(seeking a place 找工作了location:Chengdu)回复于 2006-10-20 09:06:12 得分 0
怎么这贴看着怎么面熟Top
25 楼hardboy_du(白衬衣)回复于 2006-10-25 10:48:55 得分 0
牛Top
26 楼aha99(学习-工作)回复于 2006-10-25 17:32:33 得分 0
学习,我的A780从来都是直接下在别人的装,改天自己也试试Top




