2009年7月26日 星期日

研究ffmpeg放到davinci上面

一開始是研究ffmpeg的版本 最新版是0.5是今年出來的
還很新 上一版已經是兩年前的事情了 所以我應該是要用這一版

網路上主要的文件有兩份
一份是專門作給davinci的 不過這份的話他有要用到ffplay也就是他要播放影片 但是我沒有要用

另一份是講compile ffmpeg的大方法這份的話有x86也有arm的教學
但是原則上這兩份都不夠新 因為最新的應該是今年度出來的document
我將兩份的文件綜來用 設出來自己的configure
以下是我的configure
../configure --arch=armv5 --cross-prefix=arm_v5t_le- --enable-cross-compile --prefix=/home/liuin/ffmpeg/install/ --enable-static --disable-shared --enable-gpl --disable-stripping --disable-network --disable-ipv6 --enable-small --disable-parsers --disable-debug --disable-ffplay
我想我就一項一項的講好了
第一項的arch是沒有用的參數但還是要給 這是我遇到的最大的bug
這裡正常應該是要打arm或是armv[45679]*l才可以

這樣打 她才會知道我們的arch是arm 但是這是目前這個版本的bug
如果真的讓她知道我們的ARCH她會用arm的code來compile

在(ffmpeg source)/libavcodec/arm/asm.S中會有一個eabi_attribute的macro
但是不知道為什麼 compiler就是不認識

這個問題目前是無解的
為什麼我會這麼確定勒 因為我去翻過ffmpeg的bug tracker
https://roundup.ffmpeg.org/roundup/ffmpeg/issue950
這是因為我用的是原本付的tool-chain 他的assembler可能太舊了 就不能用了
(當然可以用其他的tool-chain 但是很多東西要重做....)
所以我只好用generic的ARCH

--cross-prefix是compiler前面的prefix 這個要注意最後還有一個減號
--enable-cross-compile 我不知道這是作什麼的 加就對了
--prefix結果要放在哪裡
--enable-static --disable-shared這兩個目前不知道有什麼用 有人加就跟者加
--enable-gpl聽說程式會變比較快
--disable-stripping執行檔跟object不會分開??
--disable-network --disable-ipv6會少compile一些東西
--enable-small --disable-parsers --disable-debug好像是最佳化的東西
--disable-ffplay這似乎需要其他的套件 (ex.SDL)

沒有留言:

張貼留言