# Waylandsink
The waylandsink plugin uses the [GstVideoSink](https://gstreamer.freedesktop.org/documentation/video/gstvideosink.html?gi-language=c) GStreamer class. It's based on the Wayland [Weston](https://wayland.pages.freedesktop.org/weston/) compositor, which creates its own window and renders the incoming video frames in the window.
It maps the Weston client APIs and states to the appropriate GStreamer APIs and states. Qualcomm has extended the waylandsink implementation and added support for window positioning, a proprietary GBM-based buffer backend for zero-copy and XDG shell backend.
## Inheritance chain
[GObject](https://docs.gtk.org/gobject/) → [GstObject](https://gstreamer.freedesktop.org/documentation/gstreamer/gstobject.html?gi-language=c) → [GstElement](https://gstreamer.freedesktop.org/documentation/gstreamer/gstelement.html?gi-language=c) → [GstBaseSink](https://gstreamer.freedesktop.org/documentation/base/gstbasesink.html?gi-language=c) → [GstVideoSink](https://gstreamer.freedesktop.org/documentation/video/gstvideosink.html?gi-language=c) → GstWaylandSink
The following tables provide information on pad templates and element properties of waylandsink. For use cases, see [Video playback use cases](https://docs.qualcomm.com/doc/80-80021-50/topic/video-playback-use-cases.html).
## Pad configuration
| Pad Name | Capabilities | Capabilities | Capabilities |
| --- | --- | --- | --- |
|
SINK template: 'sink'
Availability\*:\* Always
Direction: sink | video/x-raw | format: | { (string)BGRx, (string)BGRA, (string)RGBx, (string)xBGR, (string)xRGB, (string)RGBA, (string)ABGR, (string)ARGB, (string)RGB, (string)BGR, (string)RGB16, (string)BGR16, (string)YUY2, (string)YVYU, (string)UYVY, (string)AYUV, (string)NV12, (string)NV21, (string)NV16, (string)YUV9, (string)YVU9, (string)Y41B, (string)I420, (string)YV12, (string)Y42B, (string)v308 } |
|
SINK template: 'sink'
Availability\*:\* Always
Direction: sink | video/x-raw | width: | [ 1, 2147483647 ] |
|
SINK template: 'sink'
Availability\*:\* Always
Direction: sink | video/x-raw | height: | [ 1, 2147483647 ] |
|
SINK template: 'sink'
Availability\*:\* Always
Direction: sink | video/x-raw | framerate: | [ 0/1, 2147483647/1 ] |
|
SINK template: 'sink'
Availability\*:\* Always
Direction: sink | video/x-raw(memory:DMABuf) | format: | { (string)BGRx, (string)BGRA, (string)RGBx, (string)xBGR, (string)xRGB, (string)RGBA, (string)ABGR, (string)ARGB, (string)RGB, (string)BGR, (string)RGB16, (string)BGR16, (string)YUY2, (string)YVYU, (string)UYVY, (string)AYUV, (string)NV12, (string)NV21, (string)NV16, (string)YUV9, (string)YVU9, (string)Y41B, (string)I420, (string)YV12, (string)Y42B, (string)v308 } |
|
SINK template: 'sink'
Availability\*:\* Always
Direction: sink | video/x-raw(memory:DMABuf) | width: | [ 1, 2147483647 ] |
|
SINK template: 'sink'
Availability\*:\* Always
Direction: sink | video/x-raw(memory:DMABuf) | height: | [ 1, 2147483647 ] |
|
SINK template: 'sink'
Availability\*:\* Always
Direction: sink | video/x-raw(memory:DMABuf) | framerate: | [ 0/1, 2147483647/1 ] |
|
SINK template: 'sink'
Availability\*:\* Always
Direction: sink | video/x-raw | format: | { (string)BGRx, (string)BGRA, (string)RGBx, (string)xBGR, (string)xRGB, (string)RGBA, (string)ABGR, (string)ARGB, (string)RGB, (string)BGR, (string)RGB16, (string)BGR16, (string)YUY2, (string)YVYU, (string)UYVY, (string)AYUV, (string)NV12, (string)NV21, (string)NV16, (string)YUV9, (string)YVU9, (string)Y41B, (string)I420, (string)YV12, (string)Y42B, (string)v308 } |
|
SINK template: 'sink'
Availability\*:\* Always
Direction: sink | video/x-raw | width: | [ 1, 2147483647 ] |
|
SINK template: 'sink'
Availability\*:\* Always
Direction: sink | video/x-raw | height: | [ 1, 2147483647 ] |
|
SINK template: 'sink'
Availability\*:\* Always
Direction: sink | video/x-raw | framerate: | [ 0/1, 2147483647/1 ] |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
## Element configuration
Note
For the current release, **x**, **y**, **width**, and **height** properties aren’t supported.
Table : Element properties of Waylandsink
| Property | Description |
| --- | --- |
| name | - The name of the object.
-
flags: readable, writable
String. Default: "waylandsink0"
flags: readable, writable
Object of type "GstObject"
flags: readable, writable
Boolean. Default: true
flags: readable, writable
Integer64. Range: ˗1 to 9223372036854775807, default: 20000000
flags: readable, writable
Boolean. Default: true
flags: readable, writable
Boolean. Default: true
flags: readable, writable
Integer64. Range: ˗9223372036854775808 to 9223372036854775807, default: 0
flags: readable, writable
Boolean. Default: true
flags: readable
Boxed pointer of type "GstSample"
flags: readable, writable
Unsigned Integer. Range: 0 - 4294967295 Default: 4096
flags: readable, writable
Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0
flags: readable, writable
Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0
flags: readable, writable
Unsigned Integer64. Range: 0 - 18446744073709551615 Default: 0
flags: readable, writable
Boolean. Default: true
flags: readable, writable
String. Default: null
flags: readable, writable
Boolean. Default: true
flags: readable, writable, changeable in NULL, READY, PAUSED, or PLAYING state
Boolean. Default: false