1*54e60f84SAndroid Build Coastguard Worker# Libva Project 2*54e60f84SAndroid Build Coastguard Worker 3*54e60f84SAndroid Build Coastguard WorkerLibva is an implementation for VA-API (Video Acceleration API) 4*54e60f84SAndroid Build Coastguard Worker 5*54e60f84SAndroid Build Coastguard WorkerVA-API is an open-source library and API specification, which provides access to graphics hardware acceleration capabilities for video processing. It consists of a main library and driver-specific acceleration backends for each supported hardware vendor. 6*54e60f84SAndroid Build Coastguard Worker 7*54e60f84SAndroid Build Coastguard WorkerIf you would like to contribute to libva, check our [Contributing guide](https://github.com/intel/libva/blob/master/CONTRIBUTING.md). 8*54e60f84SAndroid Build Coastguard Worker 9*54e60f84SAndroid Build Coastguard WorkerWe also recommend taking a look at the ['janitorial' bugs](https://github.com/intel/libva/issues?q=is%3Aopen+is%3Aissue+label%3AJanitorial) in our list of open issues as these bugs can be solved without an extensive knowledge of libva. 10*54e60f84SAndroid Build Coastguard Worker 11*54e60f84SAndroid Build Coastguard WorkerWe would love to help you start contributing! 12*54e60f84SAndroid Build Coastguard Worker 13*54e60f84SAndroid Build Coastguard WorkerDoxygen files are regularly updated through Github Pages and can be accessed directly through [github pages libva](http://intel.github.io/libva/) 14*54e60f84SAndroid Build Coastguard Worker 15*54e60f84SAndroid Build Coastguard WorkerThe libva development team can be reached via github issues. 16*54e60f84SAndroid Build Coastguard Worker 17*54e60f84SAndroid Build Coastguard Worker 18*54e60f84SAndroid Build Coastguard Worker# Build and Install Libva 19*54e60f84SAndroid Build Coastguard Worker*This build documentation was tested under clear Ubuntu Server 18.04 (with gcc-7.3.0, gcc-8.1.0 and clang-6.0 compilers) but it should work on another OS distributions with various versions of gcc and clang.* 20*54e60f84SAndroid Build Coastguard Worker## Install all required common packages: 21*54e60f84SAndroid Build Coastguard Worker``` 22*54e60f84SAndroid Build Coastguard Workersudo apt-get install git cmake pkg-config meson libdrm-dev automake libtool 23*54e60f84SAndroid Build Coastguard Worker``` 24*54e60f84SAndroid Build Coastguard Worker 25*54e60f84SAndroid Build Coastguard WorkerTake latest libva version: 26*54e60f84SAndroid Build Coastguard Worker``` 27*54e60f84SAndroid Build Coastguard Workergit clone https://github.com/intel/libva.git 28*54e60f84SAndroid Build Coastguard Workercd libva 29*54e60f84SAndroid Build Coastguard Worker``` 30*54e60f84SAndroid Build Coastguard Worker 31*54e60f84SAndroid Build Coastguard Worker## Build with autogen and Meson 32*54e60f84SAndroid Build Coastguard Worker 33*54e60f84SAndroid Build Coastguard WorkerWhen you install the libva from OSV package repositories, different OSV distro use different default location for libva. Basically, Debian/Ubuntu family install libva to /usr/lib/x86_64-linux-gnu and rpm family like Fedora/CentOS/SUSE/RHEL install libva to /usr/lib64. For Other media component default location, you could refer to [Install from OSV package](https://github.com/intel/media-driver/wiki/Install-from-OSV-package)) 34*54e60f84SAndroid Build Coastguard Worker 35*54e60f84SAndroid Build Coastguard WorkerWithout prefix setting, libva will be install to /usr/local/lib as default. If you use other path as installation target folder or no prefix, you have to add the folder to your environment variable or use LD_LIBRARY_PATH to specify the location, like LD_LIBRARY_PATH=/usr/local/lib if no prefix. 36*54e60f84SAndroid Build Coastguard Worker 37*54e60f84SAndroid Build Coastguard WorkerIf you intent to overwrite system default libva, you could use same OSV distro prefix, then system libva will be replaced and also your new installed libva version will be overwrited when you upgrade it from OSV distro package repository. 38*54e60f84SAndroid Build Coastguard Worker 39*54e60f84SAndroid Build Coastguard WorkerFor debian family, you could use autogen 40*54e60f84SAndroid Build Coastguard Worker``` 41*54e60f84SAndroid Build Coastguard Worker./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu 42*54e60f84SAndroid Build Coastguard Workermake 43*54e60f84SAndroid Build Coastguard Workersudo make install 44*54e60f84SAndroid Build Coastguard Worker``` 45*54e60f84SAndroid Build Coastguard Workeror build using Meson 46*54e60f84SAndroid Build Coastguard Worker``` 47*54e60f84SAndroid Build Coastguard Workermkdir build 48*54e60f84SAndroid Build Coastguard Workercd build 49*54e60f84SAndroid Build Coastguard Workermeson .. -Dprefix=/usr -Dlibdir=/usr/lib/x86_64-linux-gnu 50*54e60f84SAndroid Build Coastguard Workerninja 51*54e60f84SAndroid Build Coastguard Workersudo ninja install 52*54e60f84SAndroid Build Coastguard Worker``` 53*54e60f84SAndroid Build Coastguard Worker 54*54e60f84SAndroid Build Coastguard WorkerFor rpm family, you could use autogen 55*54e60f84SAndroid Build Coastguard Worker``` 56*54e60f84SAndroid Build Coastguard Worker./autogen.sh --prefix=/usr --libdir=/usr/lib64 57*54e60f84SAndroid Build Coastguard Workermake 58*54e60f84SAndroid Build Coastguard Workersudo make install 59*54e60f84SAndroid Build Coastguard Worker``` 60*54e60f84SAndroid Build Coastguard Workeror build using Meson 61*54e60f84SAndroid Build Coastguard Worker``` 62*54e60f84SAndroid Build Coastguard Workermkdir build 63*54e60f84SAndroid Build Coastguard Workercd build 64*54e60f84SAndroid Build Coastguard Workermeson .. -Dprefix=/usr -Dlibdir=/usr/lib64 65*54e60f84SAndroid Build Coastguard Workerninja 66*54e60f84SAndroid Build Coastguard Workersudo ninja install 67*54e60f84SAndroid Build Coastguard Worker``` 68