README: updates.
[platform/upstream/gstreamer-vaapi.git] / README
1
2   gstreamer-vaapi
3   VA-API support to GStreamer
4
5   Copyright (C) 2010-2011 Splitted-Desktop Systems
6   Copyright (C) 2011-2013 Intel Corporation
7   Copyright (C) 2011 Collabora Ltd.
8
9
10 License
11 -------
12
13 gstreamer-vaapi helper libraries and plugin elements are available
14 under the terms of the GNU Lesser General Public License v2.1+
15
16
17 Overview
18 --------
19
20 gstreamer-vaapi consists in a collection of VA-API based plugins for
21 GStreamer and helper libraries.
22
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.
26
27   * `vaapiupload' is used to convert from video/x-raw-yuv pixels to
28     video/x-vaapi-surface surfaces.
29
30   * `vaapidownload' is used to convert from video/x-vaapi-surface
31     surfaces to video/x-raw-yuv pixels.
32
33   * `vaapipostproc' is used to postprocess video/x-vaapi-surface
34     surfaces, for e.g. deinterlacing.
35
36   * `vaapisink' is used to display video/x-vaapi-surface surfaces to
37     screen.
38
39
40 Features
41 --------
42
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
50
51 Requirements
52 ------------
53
54 Software requirements
55
56   * GStreamer 0.10.x:
57       libglib2.0-dev (>= 2.28)
58       libgstreamer0.10-dev (>= 0.10.36)
59         or with GstBaseSink::query()
60       libgstreamer-plugins-base0.10-dev (>= 0.10.36)
61       libgstreamer-plugins-bad0.10-dev (>= 0.10.22.1)
62         or with GstVideoContext, GstSurfaceBuffer, codecparsers
63
64   * GStreamer 1.0.x:
65       libglib2.0-dev (>= 2.28)
66       libgstreamer1.0-dev (>= 1.0.0)
67       libgstreamer-plugins-base1.0-dev (>= 1.0.0)
68       libgstreamer-plugins-bad1.0-dev (>= 1.0.0)
69
70   * Renderers:
71       DRM: libva-dev (>= 1.1.0), libdrm-dev, libudev-dev
72       X11: libva-dev (>= 1.0.1)
73       GLX: libva-dev (>= 1.0.3)
74       Wayland: libva-dev (>= 1.1.0), libwayland-dev (>= 0.95.0)
75
76 Hardware requirements
77
78   * AMD platforms with UVD2 (XvBA supported)
79   * Intel Eaglelake (G45)
80   * Intel Ironlake, Sandy Bridge and Ivy Bridge (HD Graphics)
81   * Intel Poulsbo (US15W)
82   * Intel Medfield or Cedar Trail
83   * NVIDIA platforms with PureVideo (VDPAU supported)
84
85
86 Usage
87 -----
88
89   VA elements are automatically plugged into GStreamer pipelines. So,
90   using playbin2 should work as is. However, here are a few alternate
91   pipelines constructed manually.
92
93   * Play an H.264 video with an MP4 container in fullscreen mode
94   $ gst-launch-0.10 -v filesrc location=/path/to/video.mp4 ! \
95       qtdemux ! vaapidecode ! vaapisink fullscreen=true
96
97   * Play a raw MPEG-2 interlaced stream
98   $ gst-launch-0.10 -v filesrc location=/path/to/mpeg2.bits ! \
99       mpegvideoparse ! vaapidecode ! vaapipostproc ! vaapisink
100
101
102 Reporting Bugs
103 --------------
104
105   Bugs can be reported in the GNOME Bugzilla system at:
106   <https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi>
107
108   From the main page, new bugs can be reported through New -> Other ->
109   gstreamer-vaapi product.