vaapidecode

vaapidecode — A VA-API based video decoder

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── GstObject
            ╰── GstElement
                ╰── GstVideoDecoder
                    ╰── GstVaapiDecode

Description

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.

Example launch line

1
gst-launch-1.0 filesrc location=~/big_buck_bunny.mov ! qtdemux ! h264parse ! vaapidecode ! vaapisink

Synopsis

Element Information

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

Element Pads

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 ]

Functions

Types and Values