3 VA-API support to GStreamer
5 Copyright (C) 2010-2011 Splitted-Desktop Systems
6 Copyright (C) 2011-2013 Intel Corporation
7 Copyright (C) 2011 Collabora Ltd.
13 gstreamer-vaapi helper libraries and plugin elements are available
14 under the terms of the GNU Lesser General Public License v2.1+
20 gstreamer-vaapi consists in a collection of VA-API based plugins for
21 GStreamer and helper libraries.
23 * `vaapidecode' is used to decode JPEG, MPEG-2, MPEG-4, H.264, VC-1,
24 WMV3 videos to video/x-vaapi-surfaces surfaces, depending on the
25 underlying HW capabilities.
27 * `vaapiupload' is used to convert from video/x-raw-yuv pixels to
28 video/x-vaapi-surface surfaces.
30 * `vaapidownload' is used to convert from video/x-vaapi-surface
31 surfaces to video/x-raw-yuv pixels.
33 * `vaapipostproc' is used to postprocess video/x-vaapi-surface
34 surfaces, for e.g. deinterlacing, denoising and sharpening.
36 * `vaapisink' is used to display video/x-vaapi-surface surfaces to
43 * VA-API support from 0.29 to 0.32
44 * JPEG, MPEG-2, MPEG-4, H.264 and VC-1 ad-hoc decoders
45 * OpenGL rendering through VA/GLX or GLX texture-from-pixmap + FBO
46 * Support for the Wayland display server
47 * Support for headless decode pipelines with VA/DRM
48 * Support for major HW video decoding solutions on Linux (AMD, Intel, NVIDIA)
49 * Support for VA Video Processing APIs (VA/VPP)
50 - Scaling and color conversion
51 - Image enhancement filters: Sharpening, Noise Reduction
52 - Advanced deinterlacing: Motion-Adaptive, Motion-Compensated
61 libglib2.0-dev (>= 2.28)
62 libgstreamer0.10-dev (>= 0.10.36)
63 or with GstBaseSink::query()
64 libgstreamer-plugins-base0.10-dev (>= 0.10.36)
65 libgstreamer-plugins-bad0.10-dev (>= 0.10.22.1)
66 or with GstVideoContext, GstSurfaceBuffer, codecparsers
68 * GStreamer 1.0.x (including GStreamer 1.2):
69 libglib2.0-dev (>= 2.28)
70 libgstreamer1.0-dev (>= 1.0.0)
71 libgstreamer-plugins-base1.0-dev (>= 1.0.0)
72 libgstreamer-plugins-bad1.0-dev (>= 1.0.0)
75 DRM: libva-dev (>= 1.1.0), libdrm-dev, libudev-dev
76 X11: libva-dev (>= 1.0.1)
77 GLX: libva-dev (>= 1.0.3)
78 Wayland: libva-dev (>= 1.1.0), libwayland-dev (>= 0.95.0)
82 * AMD platforms with UVD2 (XvBA supported)
83 * Intel Eaglelake (G45)
84 * Intel Ironlake, Sandy Bridge and Ivy Bridge (HD Graphics)
85 * Intel Poulsbo (US15W)
86 * Intel Medfield or Cedar Trail
87 * NVIDIA platforms with PureVideo (VDPAU supported)
93 VA elements are automatically plugged into GStreamer pipelines. So,
94 using playbin (or playbin2 with GStreamer 0.10) should work as is.
95 However, here are a few alternate pipelines that could be manually
98 * Play an H.264 video with an MP4 container in fullscreen mode
99 $ gst-launch-1.0 -v filesrc location=/path/to/video.mp4 ! \
100 qtdemux ! vaapidecode ! vaapisink fullscreen=true
102 * Play a raw MPEG-2 interlaced stream
103 $ gst-launch-1.0 -v filesrc location=/path/to/mpeg2.bits ! \
104 mpegvideoparse ! vaapidecode ! vaapipostproc ! vaapisink
106 * Convert from one pixel format to another, while also downscaling
107 $ gst-launch-1.0 -v filesrc location=/path/to/raw_video.yuv ! \
108 videoparse format=yuy2 width=1280 height=720 ! \
109 vaapipostproc format=nv12 height=480 ! vaapisink
114 Bugs can be reported in the GNOME Bugzilla system at:
115 <https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi>
117 From the main page, new bugs can be reported through New -> Other ->
118 gstreamer-vaapi product.