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

Implemented interfaces

Factory details

Authors: – Gwenole Beauchesne

Classification:Sink/Video

Rank – none

Plugin – vaapi

Package – gstreamer-vaapi

Pad Templates

sink

video/x-raw(memory:VASurface):
         format: { ENCODED, NV12, YV12, I420, YUY2, UYVY, Y444, GRAY8, P010_10LE, P012_LE, VUYA, Y210, Y410, Y212_LE, Y412_LE, 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: { A444_16LE, A444_16BE, Y416_LE, AYUV64, RGBA64_LE, ARGB64, ARGB64_LE, BGRA64_LE, ABGR64_LE, Y416_BE, RGBA64_BE, ARGB64_BE, BGRA64_BE, ABGR64_BE, A422_16LE, A422_16BE, A420_16LE, A420_16BE, A444_12LE, GBRA_12LE, A444_12BE, GBRA_12BE, Y412_LE, Y412_BE, A422_12LE, A422_12BE, A420_12LE, A420_12BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, BGR10A2_LE, RGB10A2_LE, Y410, A444, GBRA, AYUV, VUYA, RGBA, RBGA, ARGB, BGRA, ABGR, A422, A420, AV12, Y444_16LE, GBR_16LE, Y444_16BE, GBR_16BE, Y216_LE, Y216_BE, 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, UYVP, v210, I420_10LE, I420_10BE, P010_10LE, NV12_10LE40, NV12_10LE32, P010_10BE, MT2110R, MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, Y444, BGRP, GBR, RGBP, NV24, v308, IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, VYUY, I420, YV12, NV12, NV21, NV12_16L32S, NV12_32L32, NV12_4L4, NV12_64Z32, NV12_8L128, Y41B, IYU1, YUV9, YVU9, BGR16, RGB16, BGR15, RGB15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE32, GRAY8 }
          width: [ 1, 2147483647 ]
         height: [ 1, 2147483647 ]
      framerate: [ 0/1, 2147483647/1 ]
video/x-raw:
         format: { A444_16LE, A444_16BE, Y416_LE, AYUV64, RGBA64_LE, ARGB64, ARGB64_LE, BGRA64_LE, ABGR64_LE, Y416_BE, RGBA64_BE, ARGB64_BE, BGRA64_BE, ABGR64_BE, A422_16LE, A422_16BE, A420_16LE, A420_16BE, A444_12LE, GBRA_12LE, A444_12BE, GBRA_12BE, Y412_LE, Y412_BE, A422_12LE, A422_12BE, A420_12LE, A420_12BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, BGR10A2_LE, RGB10A2_LE, Y410, A444, GBRA, AYUV, VUYA, RGBA, RBGA, ARGB, BGRA, ABGR, A422, A420, AV12, Y444_16LE, GBR_16LE, Y444_16BE, GBR_16BE, Y216_LE, Y216_BE, 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, UYVP, v210, I420_10LE, I420_10BE, P010_10LE, NV12_10LE40, NV12_10LE32, P010_10BE, MT2110R, MT2110T, NV12_10BE_8L128, NV12_10LE40_4L4, Y444, BGRP, GBR, RGBP, NV24, v308, IYU2, RGBx, xRGB, BGRx, xBGR, RGB, BGR, Y42B, NV16, NV61, YUY2, YVYU, UYVY, VYUY, I420, YV12, NV12, NV21, NV12_16L32S, NV12_32L32, NV12_4L4, NV12_64Z32, NV12_8L128, Y41B, IYU1, YUV9, YVU9, BGR16, RGB16, BGR15, RGB15, 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

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” Vaapi-display-type *

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


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


rotation

“rotation” Vaapi-rotation *

The VA display rotation mode, expressed as a Vaapi-rotation.

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


signal-handoffs

“signal-handoffs” gboolean

Send a signal after rendering the buffer.

Flags : Read / Write

Default value : false


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

Vaapi-display-type

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

Vaapi-rotation

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