vaapisink

vaapisink renders video frames to a drawable (X Window) on a local display using the Video Acceleration (VA) API. The element will create its own internal window and render into it.

Example launch line

 gst-launch-1.0 videotestsrc ! vaapisink

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──GstBaseSink
                    ╰──GstVideoSink
                        ╰──vaapisink

Factory details

Authors: – Gwenole Beauchesne

Classification:Sink/Video

Rank – marginal

Plugin – gstvaapi

Package – gstreamer-vaapi

Pad Templates

sink

video/x-raw(memory:VASurface):
         format: { ENCODED, NV12, YV12, I420, YUY2, UYVY, Y444, GRAY8, P010_10LE, VUYA, Y210, Y410, ARGB, xRGB, RGBA, RGBx, ABGR, xBGR, BGRA, BGRx, RGB16, RGB, BGR10A2_LE }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]

video/x-raw(memory:VASurface, meta:GstVideoOverlayComposition):
         format: { ENCODED, NV12, I420, YV12, P010_10LE }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]

video/x-raw(meta:GstVideoOverlayComposition):
         format: { AYUV64, ARGB64, GBRA_12LE, GBRA_12BE, Y412_LE, Y412_BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, RGB10A2_LE, BGR10A2_LE, Y410, GBRA, ABGR, VUYA, BGRA, AYUV, ARGB, RGBA, A420, Y444_16LE, Y444_16BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, v210, UYVP, I420_10LE, I420_10BE, P010_10LE, NV12_10LE32, NV12_10LE40, P010_10BE, Y444, GBR, NV24, xBGR, BGRx, xRGB, RGBx, BGR, IYU2, v308, RGB, Y42B, NV61, NV16, VYUY, UYVY, YVYU, YUY2, I420, YV12, NV21, NV12, NV12_64Z32, Y41B, IYU1, YVU9, YUV9, RGB16, BGR16, RGB15, BGR15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE32, GRAY8 }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]
video/x-raw:
         format: { AYUV64, ARGB64, GBRA_12LE, GBRA_12BE, Y412_LE, Y412_BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, RGB10A2_LE, BGR10A2_LE, Y410, GBRA, ABGR, VUYA, BGRA, AYUV, ARGB, RGBA, A420, Y444_16LE, Y444_16BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, v210, UYVP, I420_10LE, I420_10BE, P010_10LE, NV12_10LE32, NV12_10LE40, P010_10BE, Y444, GBR, NV24, xBGR, BGRx, xRGB, RGBx, BGR, IYU2, v308, RGB, Y42B, NV61, NV16, VYUY, UYVY, YVYU, YUY2, I420, YV12, NV21, NV12, NV12_64Z32, Y41B, IYU1, YVU9, YUV9, RGB16, BGR16, RGB15, BGR15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE32, GRAY8 }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]

Presencealways

Directionsink

Object typeGstPad


Signals

handoff

handoff_callback (GstElement * object,
                  GstBuffer * buffer,
                  gpointer udata)
def handoff_callback (object, buffer, udata):
    #python callback for the 'handoff' signal
function handoff_callback(object: GstElement * object, buffer: GstBuffer * buffer, udata: gpointer udata): {
    // javascript callback for the 'handoff' signal
}

This signal gets emitted after rendering the frame.

Parameters:

object

the vaapisink instance

buffer

the buffer that was rendered

udata
No description available

Flags: Run Last


Properties

async

“async” gboolean

Go asynchronously to PAUSED

Flags : Read / Write

Default value : true


blocksize

“blocksize” guint

Size in bytes to pull per buffer (0 = default)

Flags : Read / Write

Default value : 4096


brightness

“brightness” gfloat

The VA display brightness, expressed as a float value. Range is -1.0 to 1.0. Default value is 0.0 and represents no modification.

Flags : Read / Write / Construct

Default value : 0


contrast

“contrast” gfloat

The VA display contrast, expressed as a float value. Range is 0.0 to 2.0. Default value is 1.0 and represents no modification.

Flags : Read / Write / Construct

Default value : 1


display

“display” GstVaapiDisplayType *

The type of display to use.

Flags : Read / Write

Default value : any (0)


display-name

“display-name” gchararray

The native display name.

Flags : Read / Write

Default value : NULL


enable-last-sample

“enable-last-sample” gboolean

Enable the last-sample property

Flags : Read / Write

Default value : true


force-aspect-ratio

“force-aspect-ratio” gboolean

When enabled, scaling respects video aspect ratio; when disabled, the video is distorted to fit the window.

Flags : Read / Write

Default value : true


fullscreen

“fullscreen” gboolean

Selects whether fullscreen mode is enabled or not.

Flags : Read / Write

Default value : false


hue

“hue” gfloat

The VA display hue, expressed as a float value. Range is -180.0 to 180.0. Default value is 0.0 and represents no modification.

Flags : Read / Write / Construct

Default value : 0


last-sample

“last-sample” GstSample *

The last sample received in the sink

Flags : Read


max-bitrate

“max-bitrate” guint64

The maximum bits per second to render (0 = disabled)

Flags : Read / Write

Default value : 0


max-lateness

“max-lateness” gint64

Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)

Flags : Read / Write

Default value : 5000000


processing-deadline

“processing-deadline” guint64

Maximum processing time for a buffer in nanoseconds

Flags : Read / Write

Default value : 15000000


qos

“qos” gboolean

Generate Quality-of-Service events upstream

Flags : Read / Write

Default value : true


render-delay

“render-delay” guint64

Additional render delay of the sink in nanoseconds

Flags : Read / Write

Default value : 0


rotation

“rotation” GstVaapiRotation *

The VA display rotation mode, expressed as a GstVaapiRotation.

Flags : Read / Write

Default value : 0 (0)


saturation

“saturation” gfloat

The VA display saturation, expressed as a float value. Range is 0.0 to 2.0. Default value is 1.0 and represents no modification.

Flags : Read / Write / Construct

Default value : 1


show-preroll-frame

“show-preroll-frame” gboolean

Whether to render video frames during preroll

Flags : Read / Write / Construct

Default value : true


signal-handoffs

“signal-handoffs” gboolean

Send a signal after rendering the buffer.

Flags : Read / Write

Default value : false


stats

“stats” GstStructure *

Sink Statistics

Flags : Read

Default value :

application/x-gst-base-sink-stats, average-rate=(double)0, dropped=(guint64)0, rendered=(guint64)0;

sync

“sync” gboolean

Sync on the clock

Flags : Read / Write

Default value : true


throttle-time

“throttle-time” guint64

The time to keep between rendered buffers (0 = disabled)

Flags : Read / Write

Default value : 0


ts-offset

“ts-offset” gint64

Timestamp offset in nanoseconds

Flags : Read / Write

Default value : 0


view-id

“view-id” gint

When not set to -1, the displayed frame will always be the one that matches the view-id of the very first displayed frame. Any other number will indicate the desire to display the supplied view-id only.

Flags : Read / Write

Default value : -1


Named constants

GstVaapiDisplayType

Members

any (0) – Auto detection
x11 (1) – VA/X11 display
glx (2) – VA/GLX display
egl (5) – VA/EGL display
wayland (3) – VA/Wayland display
drm (4) – VA/DRM display

GstVaapiRotation

Members

0 (0) – Unrotated mode
90 (90) – Rotated by 90°, clockwise
180 (180) – Rotated by 180°, clockwise
270 (270) – Rotated by 270°, clockwise
Automatic (360) – Rotated by image-orientating tag°

The results of the search are