| Top |  |  |  |  | 
GObject ╰── GInitiallyUnowned ╰── GstObject ╰── GstElement ╰── GstVideoDecoder ╰── GstVaapiDecode
vaapidecode decodes from raw bitstreams to surfaces suitable for the vaapisink or vaapipostproc elements using the installed VA-API back-end.
In the case of OpenGL based elements, the buffers have the GstVideoGLTextureUploadMeta meta, which efficiently copies the content of the VA-API surface into a GL texture.
Also it can deliver normal video buffers that can be rendered or processed by other elements, but the performance would be rather bad.
| 1 | gst-launch-1.0 filesrc location=~/big_buck_bunny.mov ! qtdemux ! h264parse ! vaapidecode ! vaapisink | 
| plugin | vaapi | 
| author | Gwenole Beauchesne <gwenole.beauchesne@intel.com>, Halley Zhao <halley.zhao@intel.com>, Sreerenj Balachandran <sreerenj.balachandran@intel.com>, Wind Yuan <feng.yuan@intel.com> | 
| class | Codec/Decoder/Video | 
| name | sink | 
| direction | sink | 
| presence | always | 
| details | video/mpeg, mpegversion=(int)2, systemstream=(boolean)false | 
| video/mpeg, mpegversion=(int)4 | |
| video/x-divx | |
| video/x-xvid | |
| video/x-h263 | |
| video/x-h264 | |
| video/x-h265 | |
| video/x-wmv | |
| video/x-vp8 | |
| video/x-vp9 | 
| name | src | 
| direction | source | 
| presence | always | 
| details | video/x-raw(memory:VASurface), format=(string){ ENCODED, I420, YV12, NV12 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ] | 
| video/x-raw(meta:GstVideoGLTextureUploadMeta), format=(string){ RGBA, BGRA }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ] | |
| video/x-raw, format=(string){ I420, YV12, NV12 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ] |