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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

x264 移植到 ARM的方法

發布時間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 x264 移植到 ARM的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1。Linux下編譯X264:

其實在windows下使用vc已經編譯過了,不過聽到有人說在linux下編好了,我也就嘗試做一下,況且x264源代碼的makefile已經做好了,我只需要做的就是把文件copy一下,然后make 一下就可以了。

首先把x264-060805復制到目錄下。

1、I64,uI64的錯誤,if (delta > 32767I64 || delta < -32768I64),這是lsp添加的,把注釋部分換一下,去除I64的使用

2、nasm。我用的ubuntu沒有安裝nasm,所以一些匯編無法通過,直接安裝一下就可以了ftp://ftp.zytor.com/pub/nasm/snapshots/

然后在x264-060805下make,就編譯好了可執行文件x264,有600多K,比vc下的要大,估計是添加的模塊不同,或者編譯方法不同。暫且不管

簡單測試一下,./x264 -o test.264 file.yuv 176x144 得到了.264文件,用vlc播放,可以播放。暫時證明是編譯正確吧。

2。最近移植x264的過程。

最新的版本(我最開始用的是20090715這個)已經有cross-compile的支持了,移植應該還是很順利的。但是這個版本的win下編譯不通過,問題在網上找了一下,沒有解決。后來退而求其次,選擇了一個20060805的版本,這個版本在網上找到了win下vc6可以編譯通過的版本,同時也可以在x264的官方ftp上找到linux下可以編譯的版本。最后決定使用這個版本。這樣可以方便一些在win下的交互調試。 注意,這里要提醒一下,幾年之內,x264的變化還是很大的。總之,在需要兩個平臺交叉調試的時候,看來一個相同的版本是非常有必要的。否則,可能會發生這種情況:程序在win下好用,在linux下就不好用了,然后你一邊用vs,一邊用gdb,終于找到了不同的地方,發現x264的一個標準API對同一個參數的賦值是完全不一樣的……(比如我就發現我使用的兩個版本的x264_param_init()函數對param.i_bframe賦值是不同的,導致我的一個程序在win下是好的,linux下就是壞的) 新版本的移植我不說了,大概說一下舊版本的移植。

????? 舊的是沒有--disable-asm和--cross-compile這兩個configure的支持的(前者是對x86的匯編優化,交叉編譯的時候當然不要的,后者是交叉編譯環境設置)。其實和我之前的移植過程差不多,這里寫個步驟:

./configure --prefix=/home/peter/workspace --enable-shared --enable-debug

我這里打開了動態鏈接和debug。前者可以生成libx264.so,后者可以在你調程序用gdb的時候step into庫函數里。

2.修改配置參數 修改config.mak: prefix=/home/peter/workspace
exec_prefix=${prefix}
bindir=${exec_prefix}/bin
libdir=${exec_prefix}/lib
includedir=${prefix}/include # 這里改為ARM
ARCH=ARM
SYS=LINUX # 這里改為arm-linux-gcc
CC=arm-linux-gcc

# 這里去掉-DHAVE_MMXEXT -DHAVE_SSE2 -DARCH_X86
CFLAGS=-Wall -I. -O4 -ffast-math -D__X264__ -DHAVE_MALLOC_H -DSYS_LINUX -DHAVE_PTHREAD -s -fomit-frame-pointer
LDFLAGS= -lm -lpthread -s
AS=nasm
ASFLAGS=-O2 -f elf
VFW=no
GTK=no
EXE=
VIS=no
HAVE_GETOPT_LONG=1
DEVNULL=/dev/null
CONFIGURE_ARGS= '--enable-shared' '--prefix=/home/peter/workspace'
SONAME=libx264.so.49
default

: $(SONAME)

?

修改Makefile,將66~68行的ar和ranlib改為arm下的: libx264.a: .depend $(OBJS) $(OBJASM)
arm-linux-ar rc libx264.a $(OBJS) $(OBJASM)
arm-linux-ranlib libx264.a 3.編譯安裝 make
make install 就可以了。

總結

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

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