xref: /aosp_15_r20/external/libva/README.md (revision 54e60f844a168e9a219354de272cd517ee8cd4b7)
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