vaapi的编译--libva.a及i965_drv_video.a

一. libva.a的编译过程

(1)apt-get install libdrm-dev解决libdrm找不到的问题

(2)wayland-scanner问题

checking pkg-config is at least version 0.9.0... yes

checking for WAYLAND_SCANNER... no

configure: error: Package requirements (wayland-scanner) were not met:

No package ‘wayland-scanner‘ found

Consider adjusting the PKG_CONFIG_PATH environment variable if you

installed software in a non-standard prefix.

Alternatively, you may set the environment variables WAYLAND_SCANNER_CFLAGS

and WAYLAND_SCANNER_LIBS to avoid the need to call pkg-config.

See the pkg-config man page for more details.

解决:

$ git clone git://anongit.freedesktop.org/wayland/wayland

$ cd wayland

$ ./autogen.sh --prefix=$WLD

$ make && make install

$ cd ..

(3)./autogen.sh出错,解决方法:

apt-get install autoconf

(4)继续安装wayland:

[email protected]:/mnt/shared/wayland# ./autogen.sh

autoreconf: Entering directory `.‘

autoreconf: configure.ac: not using Gettext

autoreconf: running: aclocal --force -I m4 ${ACLOCAL_FLAGS}

autoreconf: configure.ac: tracing

autoreconf: configure.ac: not using Libtool

autoreconf: running: /usr/bin/autoconf --force

autoreconf: running: /usr/bin/autoheader --force

autoreconf: running: automake --add-missing --copy --force-missing

configure.ac:23: installing ‘./install-sh‘

configure.ac:23: installing ‘./missing‘

Makefile.am:140: error: Libtool library used but ‘LIBTOOL‘ is undefined

Makefile.am:140:   The usual way to define ‘LIBTOOL‘ is to add ‘LT_INIT‘

Makefile.am:140:   to ‘configure.ac‘ and run ‘aclocal‘ and ‘autoconf‘ again.

Makefile.am:140:   If ‘LT_INIT‘ is in ‘configure.ac‘, make sure

Makefile.am:140:   its definition is in aclocal‘s search path.

Makefile.am: installing ‘./depcomp‘

parallel-tests: installing ‘./test-driver‘

autoreconf: automake failed with exit status: 1

[email protected]:/mnt/shared/wayland#

(5) error: Libtool library used but ‘LIBTOOL‘ is undefined

解决方法: apt-get install libtool试下

(6)继续编译wayland

configure: error: Package requirements (libffi) were not met:

No package ‘libffi‘ found

Consider adjusting the PKG_CONFIG_PATH environment variable if you

installed software in a non-standard prefix.

Alternatively, you may set the environment variables FFI_CFLAGS

and FFI_LIBS to avoid the need to call pkg-config.

See the pkg-config man page for more details.

[email protected]:/mnt/shared/wayland#

解决方法:下载安装libffi库:

wget ftp://sourceware.org/pub/libffi/libffi-3.1.tar.gz

./configure

make

make install

(7)继续编译wayland

./autogen.sh

出现如下错误:

configure: error: Can‘t find expat.h. Please install expat.

解决方法:

apt-get install libexpat-dev

(8)继续编译wayland:

./autogen.sh

出现如下问题:

checking for doxygen... no

configure: error: Documentation build requested but doxygen not found. Install doxygen or disable the documentation using --disable-documentation

[email protected]:/mnt/shared/wayland#

解决方法:

./configure --disable-documentation

(9)配置wayland成功,编译安装:

make

make install

(10)编译libva.a

./configure

配置通过

make

make install

(11)发现编译出来的是动态库,/usr/local/lib下:

解决方法,将libva-1.3.1/va/Makefile中的libva_ldflags后加上-staitc,即可编出来libva.a

libva_ldflags = \

$(LDADD) -static -no-undefined  \

-Wl,-version-script,libva.syms \

$(NULL)

libva的编译大功告成

(二)i965_drv_video.a的编译过程

(1)

./configure

make

出错:

In file included from i965_drv_video.c:37:0:

i965_output_wayland.h:31:26: error: unknown type name ‘VADriverContextP‘

i965_output_wayland_init(VADriverContextP ctx);

^

i965_output_wayland.h:34:31: error: unknown type name ‘VADriverContextP‘

i965_output_wayland_terminate(VADriverContextP ctx);

^

i965_drv_video.c:5243:9: error: ‘i965_output_wayland_init‘ undeclared here (not in a function)

i965_output_wayland_init,

^

i965_drv_video.c:5244:9: error: ‘i965_output_wayland_terminate‘ undeclared here (not in a function)

i965_output_wayland_terminate,

^

make[3]: *** [i965_drv_video_la-i965_drv_video.lo] Error 1

make[3]: Leaving directory `/mnt/shared/libva-intel-driver-1.3.2/src‘

make[2]: *** [all-recursive] Error 1

make[2]: Leaving directory `/mnt/shared/libva-intel-driver-1.3.2/src‘

make[1]: *** [all] Error 2

make[1]: Leaving directory `/mnt/shared/libva-intel-driver-1.3.2/src‘

make: *** [all-recursive] Error 1

(2)

[email protected]:/usr/local/include/va# ls

va_backend.h      va_backend_vpp.h      va_compat.h    va_dec_vp8.h    va_drm.h       va_enc_mpeg2.h  va_tpi.h      va_vpp.h

va_backend_tpi.h  va_backend_wayland.h  va_dec_jpeg.h  va_drmcommon.h  va_enc_h264.h  va.h            va_version.h  va_wayland.h

[email protected]:/usr/local/include/va# pwd

/usr/local/include/va

需要包含这个目录的头文件

将va_backend.h拷贝到src目录下,然后在i965_output_wayland.h中增加:

#include "va_backend.h"

然后就编译通过了

(3)find ./ -name *.so

./.libs/i965_drv_video.so

但同样生成的不是i965_drv_video.a

那么我们用同样的方法,在连接的时候加上-static

480 driver_ldflags = \

481     -module -avoid-version  \

482     -no-undefined       \

483     -Wl,--no-undefined  \

484     -static \

485     $(NULL)

在src/.libs下生成了i965_drv_video.a

时间: 2024-10-30 23:35:41

vaapi的编译--libva.a及i965_drv_video.a的相关文章

基于FFmpeg+VAAPI的硬件加速渲染技术

转载自 灵跃云 :原文链接 1. 写在前面 硬件加速即利用GPU来完成图形相关的操作,将CPU空闲出来处理其他事务,特别是在CPU性能不足的情况下,此类操作就更必要了.在视频处理上,DXVA是微软定制的视频加速规范,而在Linux 平台上则是由NVIDIA和Intel分别提供的VDPAU和VAAPI加速规范.灵跃桌面云利用上述API可以有效加速视频解码和图像处理,降低系统CPU占用,提升系统性能. 2. 实现方案 针对Intel CPU X86架构平台,可采用FFmpeg+VAAPI的硬解方案.

[原]如何用Android NDK编译FFmpeg

\我们知道在Ubuntu下直接编译FFmpeg是很简单的,主要是先执行./configure,接着执行make命令来编译,完了紧接着执行make install执行安装.那么如何使用Android的NDK编译出来可以在Android下面可以使用的FFmpeg动态链接库呢?写下这篇文章就是学习如何裁剪并且编译出来可以使用的动态库. 一.获取FFmpeg源码: 首先在编译之前,得获取一份FFmpeg的源码,如果你没有git并且也不打算使用,你可以去FFmpeg官网http://ffmpeg.org/

Linux下编译Android平台的ffmpeg库

在Linux平台下编译要方便些,我这里使用的环境是openSUSE,用Ubutunu也是一样的. 首先你需要Android-NDK 和ffmpeg源码,不同的版本里的文件结构有所差别,编译环境也有所不同.我这里使用的是以下两个版本: android-ndk-r8-linux-x86.tar.bz2 ffmpeg-0.7.17.tar.gz 1. 解压 android-ndk-r8-linux-x86.tar.bz2 cd ~ tar xvf android-ndk-r8-linux-x86.ta

手把手教你用NDK9编译ffmpeg2.4.2

编译环境: 32位 ubuntu12.10 android-ndk-r9c-linux-x86.tar.bz2 ffmpeg-2.4.2.tar.bz2 网上的教程都是以低版本ffmpeg编译居多,本人特别喜欢折腾新版本,所以就有了以下这篇文章: 一.准备一下两个文件: 1.config.sh ./configure --disable-static --enable-shared --enable-gpl --enable-version3 --enable-nonfree --disable

FFmpeg 编译for Android

编译环境: debian x64 ndk-r14b 1. 安装ndk-r14b 下载地址 http://mirrors.neusoft.edu.cn/android/repository/android-ndk-r14b-linux-x86_64.zip 安装: cd /opt/workspace && unzip  android-ndk-r14b-linux-x86_64.zip 2. ndk编译环境设置脚本: setup_build_env.sh 1 export NDK=/opt/

C++工程编译之“error LNK2001: 无法解析的外部符号”

今天一整天都在折腾“error LNK2001: 无法解析的外部符号”,就在头疼不已的时候,总算是找到问题原因了:各个动态链接库的编译方式必须统一才行,要不然很容易对库函数的引用产生冲突.简单来说就是,如果使用的第三方函数库编译方式采用/MD,那么主工程也应该使用/MD.我使用了libevent,而主工程默认采用/MT,所以需要忽略一大堆的函数库,我还纳闷呢,怎么会这么奇怪!!今天总算是解决了长久以来的困惑了. 下面引用一篇文章的描述:[Z]VC运行库版本不同导致链接.LIB静态库时发生重复定义

基于源码编译openssl

openssh依赖于openssl,由于ssl频繁曝出漏洞,牵扯到openssh.而自身也存在漏洞... 00.下载openssl https://www.openssl.org/source/ https://github.com/openssl/openssl/releases https://www.openssl.org/source/openssl-1.0.2l.tar.gz 01.准备工作 yum -y install perl perl-devel gcc gcc-c++ 02.编

maven依赖本地非repository中的jar包-依赖jar包放在WEB-INF/lib等目录下的情况客户端编译出错的处理

maven依赖本地非repository中的jar包 http://www.cnblogs.com/piaolingxue/archive/2011/10/12/2208871.html 博客分类: MAVEN 今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入. 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF

Windows下VC编译OpenDDS

OpenDDS是一个OMG组织DDS标准的C++开源实现,OpenDDS同时也提供Java支持.OpenDDS依赖ACE抽象层来提供不同平台的兼容性,同时也依赖于TAO(例如TAO的IDL编译器).当前OpenDDS有ociweb ObjectComputing维护,官方网站http://www.opendds.org/.目前OpenDDS支持的平台有Windows,Linux family,Android,VxWorks等,可用的编译器包括VC,gcc,QNX gcc等. 1. OpenDDS