快速业务通道

x264编码的arm移植

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-02
写一下最近移植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的汇编优化,交叉编译的时候当然不要的,后者是交叉编译环境设置).其实和我之前的移植过程差不多,这里写个步骤: 0.环境 OS:ubuntu 9.04
Version:x264-snapshot-20060805-2245.tar.bz2 1.配置 ./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 就可以了.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号