OLD | NEW |
1 # Enabling hardware | 1 # Enabling hardware `<video>` decode codepaths on linux |
2 | 2 |
3 <video> | 3 Hardware acceleration of video decode on Linux is |
| 4 [unsupported](https://crbug.com/137247) in Chrome for user-facing builds. During |
| 5 development (targeting other platforms) it can be useful to be able to trigger |
| 6 the code-paths used on HW-accelerated platforms (such as CrOS and win7) in a |
| 7 linux-based development environment. Here's one way to do so, with details based |
| 8 on a gprecise setup. |
4 | 9 |
5 decode codepaths on linux | 10 * Install pre-requisites: On Ubuntu Precise, at least, this includes: |
6 | 11 |
7 Hardware acceleration of video decode on linux is [unsupported](http://crbug.com
/137247) in Chrome for user-facing builds. During development (targeting other
platforms) it can be useful to be able to trigger the code-paths used on HW-acce
lerated platforms (such as CrOS and win7) in a linux-based development environme
nt. Here's one way to do so, with details based on a gprecise setup. | 12 ```shell |
| 13 sudo apt-get install libtool libvdpau1 libvdpau-dev |
| 14 ``` |
8 | 15 |
9 * Install pre-requisites: On Ubuntu Precise, at least, this includes: | 16 * Install and configure [libva](http://cgit.freedesktop.org/libva/) |
10 ``` | |
11 sudo apt-get install libtool libvdpau1 libvdpau-dev | |
12 ``` | |
13 | 17 |
14 * Install and configure [libva](http://cgit.freedesktop.org/libva/) | 18 ```shell |
15 ``` | 19 DEST=${HOME}/apps/libva |
16 DEST=${HOME}/apps/libva | 20 cd /tmp |
17 cd /tmp | 21 git clone git://anongit.freedesktop.org/libva |
18 git clone git://anongit.freedesktop.org/libva | 22 cd libva |
19 cd libva | 23 git reset --hard libva-1.2.1 |
20 git reset --hard libva-1.2.1 | 24 ./autogen.sh && ./configure --prefix=${DEST} |
21 ./autogen.sh && ./configure --prefix=${DEST} | 25 make -j32 && make install |
22 make -j32 && make install | 26 ``` |
23 ``` | |
24 * Install and configure the [VDPAU](http://cgit.freedesktop.org/vaapi/vdpau-dr
iver) VAAPI driver | |
25 ``` | |
26 DEST=${HOME}/apps/libva | |
27 cd /tmp | |
28 git clone git://anongit.freedesktop.org/vaapi/vdpau-driver | |
29 cd vdpau-driver | |
30 export PKG_CONFIG_PATH=${DEST}/lib/pkgconfig/:$PKG_CONFIG_PATH | |
31 export LIBVA_DRIVERS_PATH=${DEST}/lib/dri | |
32 export LIBVA_X11_DEPS_CFLAGS=-I${DEST}/include | |
33 export LIBVA_X11_DEPS_LIBS=-L${DEST}/lib | |
34 export LIBVA_DEPS_CFLAGS=-I${DEST}/include | |
35 export LIBVA_DEPS_LIBS=-L${DEST}/lib | |
36 make distclean | |
37 unset CC CXX | |
38 ./autogen.sh && ./configure --prefix=${DEST} --enable-debug | |
39 find . -name Makefile |xargs sed -i 'sI/usr/lib/xorg/modules/driversI${DEST}/lib
/driIg' | |
40 sed -i -e 's/_(\(VAEncH264VUIBufferType\|VAEncH264SEIBufferType\));//' src/vdpau
_dump.c | |
41 make -j32 && rm -f ${DEST}/lib/dri/{nvidia_drv_video.so,s3g_drv_video.so} && mak
e install | |
42 ``` | |
43 * Add to `$GYP_DEFINES`: | |
44 * `chromeos=1` to link in `VaapiVideoDecodeAccelerator` | |
45 * `proprietary_codecs=1 ffmpeg_branding=Chrome` to allow Chrome to play h.26
4 content, which is the only codec VAVDA knows about today. | |
46 * Re-run gyp (`./build/gyp_chromium` or `gclient runhooks`) | |
47 * Rebuild chrome | |
48 * Run chrome with `LD_LIBRARY_PATH=${HOME}/apps/libva/lib` in the environment,
and with the --no-sandbox command line flag. | |
49 * If things don't work, a Debug build (to include D\*LOG's) with `--vmodule=*c
ontent/common/gpu/media/*=10,gpu_video*=1` might be enlightening. | |
50 | 27 |
51 # NOTE THIS IS AN UNSUPPORTED CONFIGURATION AND LIKELY TO BE BROKEN AT ANY POINT
IN TIME | 28 * Install and configure the |
| 29 [VDPAU](http://cgit.freedesktop.org/vaapi/vdpau-driver) VAAPI driver |
52 | 30 |
53 This page is purely here to help developers targeting supported HW | 31 ```shell |
| 32 DEST=${HOME}/apps/libva |
| 33 cd /tmp |
| 34 git clone git://anongit.freedesktop.org/vaapi/vdpau-driver |
| 35 cd vdpau-driver |
| 36 export PKG_CONFIG_PATH=${DEST}/lib/pkgconfig/:$PKG_CONFIG_PATH |
| 37 export LIBVA_DRIVERS_PATH=${DEST}/lib/dri |
| 38 export LIBVA_X11_DEPS_CFLAGS=-I${DEST}/include |
| 39 export LIBVA_X11_DEPS_LIBS=-L${DEST}/lib |
| 40 export LIBVA_DEPS_CFLAGS=-I${DEST}/include |
| 41 export LIBVA_DEPS_LIBS=-L${DEST}/lib |
| 42 make distclean |
| 43 unset CC CXX |
| 44 ./autogen.sh && ./configure --prefix=${DEST} --enable-debug |
| 45 find . -name Makefile |xargs sed -i 'sI/usr/lib/xorg/modules/driversI${DEST}
/lib/driIg' |
| 46 sed -i -e 's/_(\(VAEncH264VUIBufferType\|VAEncH264SEIBufferType\));//' src/v
dpau_dump.c |
| 47 make -j32 && rm -f ${DEST}/lib/dri/{nvidia_drv_video.so,s3g_drv_video.so} &&
make install |
| 48 ``` |
54 | 49 |
55 <video> | 50 * Add to `$GYP_DEFINES`: |
| 51 * `chromeos=1` to link in `VaapiVideoDecodeAccelerator` |
| 52 * `proprietary_codecs=1 ffmpeg_branding=Chrome` to allow Chrome to play |
| 53 h.264 content, which is the only codec VAVDA knows about today. |
| 54 * Re-run gyp (`./build/gyp_chromium` or `gclient runhooks`) |
| 55 * Rebuild chrome |
| 56 * Run chrome with `LD_LIBRARY_PATH=${HOME}/apps/libva/lib` in the environment, |
| 57 and with the `--no-sandbox` command line flag. |
| 58 * If things don't work, a Debug build (to include D\*LOG's) with |
| 59 `--vmodule=*content/common/gpu/media/*=10,gpu_video*=1` might be |
| 60 enlightening. |
56 | 61 |
57 decode platforms be more effective. Do not expect help if this setup fails to
work. | 62 **NOTE THIS IS AN UNSUPPORTED CONFIGURATION AND LIKELY TO BE BROKEN AT ANY |
| 63 POINT IN TIME** |
| 64 |
| 65 This page is purely here to help developers targeting supported HW `<video>` |
| 66 decode platforms be more effective. Do not expect help if this setup fails to |
| 67 work. |
OLD | NEW |