日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

成功移植mplayer到mini2440

發布時間:2024/9/5 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 成功移植mplayer到mini2440 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我自己的配置是:

./configure ?--prefix=/workplace/tool/arm-MPlayer/MPlayer_bin ?--enable-fpm=arm --host=arm-linux ?--disable-debugging ?--enable-shared --enable-static CC=arm-linux-gcc


./configure --prefix=/workplace/tool/arm-MPlayer/MPlayer_bin --cc=arm-linux-gcc --target=arm-linux ? --enable-static --disable-win32dll --disable-dvdread --disable-dvdread-internal --disable-dvdnav --disable-libdvdcss-internal --disable-mencoder --disable-mp3lib --disable-armv5te --disable-armv6 --enable-fbdev --enable-mad --enable-libavcodec_a --enable-libavcodec_mpegaudio_hp --disable-iconv --enable-linux-devfs --disable-ivtv ?--enable-cross-compile --enable-real --enable-ossaudio --host-cc=gcc --disable-live --with-extraincdir=/workplace/tool/arm-MPlayer/MPlayer_bin/include --with-extralibdir=/workplace/tool/arm-MPlayer/MPlayer_bin/lib 2>&1|tee logfile


上一個編譯的libmad在編譯mplayer時要用--with-extraincdir --with-extralibdir指定



主機Linux系統:fedora 9

主機GCC編譯器:gcc 版本 4.3.0
開發板:mini2440
arm-linux-gcc交叉編譯器:arm-linux-gcc-4.4.3

下載: MPlayer-1.0rc2.tar.bz2???http://download.csdn.net/source/780629

??????????? arm-linux-gcc-4.4.3????????http://ishare.iask.sina.com.cn/f/13836544.html

????????????libmad-0.15.1b.tar.gz??? ?http://sourceforge.net/project/showfiles.php?group_id=12349

???????????
1.編譯libmad庫
前面提到了使用libmad庫來替代mp3lib庫來改善mplayer在ARM處理器上播放音頻的性能,那么在編譯mplayer之前得編譯好libmad庫。
下載 libmad 包(libmad-0.15.1b.tar.gz)?http://sourceforge.net/project/showfiles.php?group_id=12349

將其解壓后,進入 libmad 的目錄,輸入配置命令:

./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/opt/toolchains/arm920t-eabi/lib CC=arm-linux-gcc

對于 --cc=arm-linux-gcc 選項要保證 arm-linux-gcc 的路徑已經有 export 過,否則給出完整路徑。
ps:其實意思就是事先已經搭建好交叉編譯環境。

?

然后再make

出現錯誤? error: unrecognized command line option “-fforce-mem”
?


解決方式是: 從libmad文件夾中的configure.ac中將“-fforce-mem”選項去掉,然后再運行? make 。 原因是gcc 3.4 或者更高版本,已經將其去除了,所以會出現上面的錯誤!?


gedit configure.ac 替換“-fforce-mem”為“”空格。

make

make install

2、進入mplayer-1.0rc2.tar.bz2所在目錄

例如:cd /tmp?? (我把軟件包放在此目錄)

輸入: tar jxvf MPlayer-1.0rc2.tar.bz2
輸入:cd MPlayer-1.0rc2
輸入:./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm??--enable-static --disable-win32dll --disable-ivtv --disable-dvdread --disable-dvdread-internal --disable-dvdnav --disable-libdvdcss-internal --enable-fbdev --disable-mencoder --disable-live --disable-mp3lib --enable-mad?--with-extraincdir=/opt/toolchains/arm920t-eabi/lib/include??--with-extralibdir=/opt/toolchains/arm920t-eabi/lib/lib??--enable-libavcodec_a --language=en ?--disable-live 2>&1 | tee logfile

?

可能出現錯誤?

Checking ? for ? inttypes.h ? (required) ? ... ? no?
Checking ? for ? bitypes.h ? (inttypes.h ? predecessor) ? ...?
Error: ? Cannot ? find ? header ? either ? inttypes.h ? or ? bitypes.h

解決方法?:? 到/usr/include/?? 拷貝inttypes.h?到當前目錄下

# cp /usr/include/inttypes.h? .(此有一點,表示復制到當前目錄)

#./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm??--enable-static --disable-win32dll --disable-ivtv --disable-dvdread --disable-dvdread-internal --disable-dvdnav --disable-libdvdcss-internal --enable-fbdev --disable-mencoder --disable-live --disable-mp3lib --enable-mad ?--with-extraincdir=/opt/toolchains/arm920t-eabi/lib/include? --with-extralibdir=/opt/toolchains/arm920t-eabi/lib/lib? --enable-libavcodec_a --language=en ?--disable-live 2>&1 | tee logfile

?


3、編譯
執行

make

命令編譯。
下面參考http://hi.baidu.com/linuxcfan/blog/item/d448a758f2906e232934f04f.html
執行過程中會出現類似如下錯誤提示:

armv4l/dsputil_arm_s.S:79:error:selected processor does not support 'pld [r1]' ......

原因分析:armv5以下的版本不支持pld指令(mini2440的arm9屬于armv4)
解決方法一:替換MPlayer-1.0rc2/libmpeg2/motion_comp_arm_s.S文件和MPlayer-1.0rc2/libavcodec/armv4l/dsputil_arm_s.S文件中的pld [r1]為空即可!
ps:為什么要修改兩個文件呢?因為只修改錯誤提示中的那個文件后繼續編譯則會繼續提示MPlayer-1.0rc2/libmpeg2/motion_comp_arm_s.S文件中同樣的錯誤^_^
修改方法:使用gedit分別打開dsputil_arm_s.S、motion_comp_arm_s.S這兩個匯編源文件,將

pld[r1]替換成空格。 gedit libmpeg2/motion_comp_arm_s.S 查找 pld [r1] 替換成空格 gedit libavcodec/armv4l/dsputil_arm_s.S 查找 pld [r1] 替換成空格

然后再make

再 make install

?

?

出現問題:strip: Unable to recognise the format of the input file

查資料看install帶-s 參數時會自動調用strip來strip應用程序。但是arm編譯時要調用arm-linux-strip才有正確處理。解決辦法是取消-s參數,查看Makefile可以發現-s是如下

$(INSTALL) -m 755 $(INSTALLSTRIP) mplayer$(EXESUF)???? $(BINDIR)

的INSTALLSTRIP設置的,它默認是-s,因此只要簡單去掉即可。

$(INSTALL) -m 755? mplayer$(EXESUF)???? $(BINDIR)

?

執行命令:gedit Makefile,將$(INSTALLSTRIP) mplayer$(EXESUF)替換成mplayer$(EXESUF)

再make install

?


?

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/zyq1228/archive/2011/04/19/6334678.aspx
得到mplayer,下載到mini2440開發板/usr/bin目錄
在開發板執行
mplayer test.avi -framedrop -quiet -vf rotate=1,scale=240:320
成功啦!這次終于有聲音了!MP3也能播哦

但仍存在問題,播放AVI文件時有圖像和聲音,但播放RM或是RMVB文件時只有聲音沒有圖像,可能是在安裝mplayer之前要先安裝相應的解碼庫,這個問題有待解決.

總結

以上是生活随笔為你收集整理的成功移植mplayer到mini2440的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。