Index: docs/linux_hw_video_decode.md |
diff --git a/docs/linux_hw_video_decode.md b/docs/linux_hw_video_decode.md |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a3b08056030b2468e22f1a5b0954ed1b927f472d |
--- /dev/null |
+++ b/docs/linux_hw_video_decode.md |
@@ -0,0 +1,57 @@ |
+# Enabling hardware |
+ |
+<video> |
+ |
+ decode codepaths on linux |
+ |
+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-accelerated platforms (such as CrOS and win7) in a linux-based development environment. Here's one way to do so, with details based on a gprecise setup. |
+ |
+ * Install pre-requisites: On Ubuntu Precise, at least, this includes: |
+``` |
+sudo apt-get install libtool libvdpau1 libvdpau-dev |
+``` |
+ |
+ * Install and configure [libva](http://cgit.freedesktop.org/libva/) |
+``` |
+DEST=${HOME}/apps/libva |
+cd /tmp |
+git clone git://anongit.freedesktop.org/libva |
+cd libva |
+git reset --hard libva-1.2.1 |
+./autogen.sh && ./configure --prefix=${DEST} |
+make -j32 && make install |
+``` |
+ * Install and configure the [VDPAU](http://cgit.freedesktop.org/vaapi/vdpau-driver) VAAPI driver |
+``` |
+DEST=${HOME}/apps/libva |
+cd /tmp |
+git clone git://anongit.freedesktop.org/vaapi/vdpau-driver |
+cd vdpau-driver |
+export PKG_CONFIG_PATH=${DEST}/lib/pkgconfig/:$PKG_CONFIG_PATH |
+export LIBVA_DRIVERS_PATH=${DEST}/lib/dri |
+export LIBVA_X11_DEPS_CFLAGS=-I${DEST}/include |
+export LIBVA_X11_DEPS_LIBS=-L${DEST}/lib |
+export LIBVA_DEPS_CFLAGS=-I${DEST}/include |
+export LIBVA_DEPS_LIBS=-L${DEST}/lib |
+make distclean |
+unset CC CXX |
+./autogen.sh && ./configure --prefix=${DEST} --enable-debug |
+find . -name Makefile |xargs sed -i 'sI/usr/lib/xorg/modules/driversI${DEST}/lib/driIg' |
+sed -i -e 's/_(\(VAEncH264VUIBufferType\|VAEncH264SEIBufferType\));//' src/vdpau_dump.c |
+make -j32 && rm -f ${DEST}/lib/dri/{nvidia_drv_video.so,s3g_drv_video.so} && make install |
+``` |
+ * Add to `$GYP_DEFINES`: |
+ * `chromeos=1` to link in `VaapiVideoDecodeAccelerator` |
+ * `proprietary_codecs=1 ffmpeg_branding=Chrome` to allow Chrome to play h.264 content, which is the only codec VAVDA knows about today. |
+ * Re-run gyp (`./build/gyp_chromium` or `gclient runhooks`) |
+ * Rebuild chrome |
+ * Run chrome with `LD_LIBRARY_PATH=${HOME}/apps/libva/lib` in the environment, and with the --no-sandbox command line flag. |
+ * If things don't work, a Debug build (to include D\*LOG's) with `--vmodule=*content/common/gpu/media/*=10,gpu_video*=1` might be enlightening. |
+ |
+# NOTE THIS IS AN UNSUPPORTED CONFIGURATION AND LIKELY TO BE BROKEN AT ANY POINT IN TIME |
+ |
+This page is purely here to help developers targeting supported HW |
+ |
+<video> |
+ |
+ decode platforms be more effective. Do not expect help if this setup fails to work. |