1. 程式人生 > >mplayer 移植到 arm 心得

mplayer 移植到 arm 心得

最近時間移植了mplayer 到 imx6q 中 碰到了 一下問題。寫下了讓友友們少走一下彎路

個個版本下載 網址:

我下載了 

MPlayer-1.0rc2

MPlayer-1.1

MPlayer-1.2.1

MPlayer-1.3.0

其中  MPlayer-1.0rc2  才能編譯成功並通過執行 成功

其他版本也可以編譯成功但是 ,執行的時候 下部分會閃屏,全屏不會 有點類似 下面這個網友描述的。

也有網友說更新核心能解決。

趕專案 應該也沒有時間去更換核心吧

本人也沒有驗證過

接下來說一下編譯過程:

MPlayer-1.1

MPlayer-1.2.1

MPlayer-1.3.0

以上這幾個包編譯成功播放視訊 後都會閃爍

依賴庫

   zlib-1.2.3.tar.gz   需要交叉編譯的庫

./configure --enable-cross-compile --cc=arm-none-linux-gnueabi-gcc --host-cc=gcc --as=arm-none-linux-gnueabi-as --ar=arm-none-linux-gnueabi-ar \
--ranlib=arm-none-linux-gnueabi-ranlib  --target=arm-linux  --enable-alsa --prefix=/home/hzl/Desktop/wondfo/mplayer/arm-mplaye

--enable-alsa    // 需要庫  alsa  的支援 

編譯好後放到 交叉編譯器的 lib  和 include   

--enable-mad  // 很多網友用個解碼聲音,但是 試過之後在 imx6q 我沒有測試成功

最後來說一下 MPlayer-1.0rc2 編譯碰到的問題

vd_mpng.c: In function 'pngReadFN':
vd_mpng.c:59:19: error: dereferencing pointer to incomplete type
vd_mpng.c: In function 'decode':
vd_mpng.c:96:14: error: dereferencing pointer to incomplete type
vd_mpng.c:113:87: error: dereferencing pointer to incomplete type
make[1]: *** [vd_mpng.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/home/hzl/Desktop/wondfo/mplayer/MPlayer-1.0rc2/libmpcodecs'
make: *** [libmpcodecs/libmpcodecs.a] Error 2

上面這個錯誤我找了很久,包括在百度,google 都 比較少 回答 這個是我寫這篇博文的主要原因

報這個錯誤的原因是   

libpng  libpng-1.6.12  我交叉編譯這個庫並把它丟到了 我的交叉編譯器裡面了。 初步判斷可能版本不對

配置的時候 加上 這個配置就搞定了

 --disable-png

配置如下:

./configure  --prefix=$PWD..\output --enable-cross-compile --cc=arm-none-linux-gnueabi-gcc --host-cc=gcc --as=arm-none-linux-gnueabi-as --ar=arm-none-linux-gnueabi-ar --ranlib=arm-none-linux-gnueabi-ranlib --target=arm-linux      --disable-live   --disable-ivtv  --enable-alsa   --disable-dvbhead --disable-dvdread --disable-dvdnav  --disable-dvdread-internal  --disable-png  2>&1 |tee logfile

參考 網友連結

http://my.oschina.net/u/174242/blog/74428

http://blog.csdn.net/neohuo/article/details/604339

http://blog.chinaunix.net/uid-20587912-id-405026.html

多謝