#  Waylandsink

Source: [https://docs.qualcomm.com/doc/80-70014-50/topic/waylandsink.html](https://docs.qualcomm.com/doc/80-70014-50/topic/waylandsink.html)

The waylandsink plugin uses [GstVideoSink](https://gstreamer.freedesktop.org/documentation/video/gstvideosink.html?gi-language=c) GStreamer class. It is based on
        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, 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-70014-50/topic/video-playback-use-cases.html).

## Pad configuration

| Pad Name | Capabilities | Capabilities | Capabilities |
| --- | --- | --- | --- |
| SINK template: 'sink'<br><br><br>                                <br>Availability*:* Always<br><br><br>                                <br>Direction: sink | video/x-raw | format: | { (string)BGRx, (string)BGRA, (string)RGBx, (string)xBGR,<br>                                (string)xRGB, (string)RGBA, (string)ABGR, (string)ARGB, (string)RGB,<br>                                (string)BGR, (string)RGB16, (string)BGR16, (string)YUY2,<br>                                (string)YVYU, (string)UYVY, (string)AYUV, (string)NV12,<br>                                (string)NV21, (string)NV16, (string)YUV9, (string)YVU9,<br>                                (string)Y41B, (string)I420, (string)YV12, (string)Y42B, (string)v308<br>                                } |
| SINK template: 'sink'<br><br><br>                                <br>Availability*:* Always<br><br><br>                                <br>Direction: sink | video/x-raw | width: | [ 1, 2147483647 ] |
| SINK template: 'sink'<br><br><br>                                <br>Availability*:* Always<br><br><br>                                <br>Direction: sink | video/x-raw | height: | [ 1, 2147483647 ] |
| SINK template: 'sink'<br><br><br>                                <br>Availability*:* Always<br><br><br>                                <br>Direction: sink | video/x-raw | framerate: | [ 0/1, 2147483647/1 ] |
| SINK template: 'sink'<br><br><br>                                <br>Availability*:* Always<br><br><br>                                <br>Direction: sink | video/x-raw(memory:DMABuf) | format: | { (string)BGRx, (string)BGRA, (string)RGBx, (string)xBGR,<br>                                (string)xRGB, (string)RGBA, (string)ABGR, (string)ARGB, (string)RGB,<br>                                (string)BGR, (string)RGB16, (string)BGR16, (string)YUY2,<br>                                (string)YVYU, (string)UYVY, (string)AYUV, (string)NV12,<br>                                (string)NV21, (string)NV16, (string)YUV9, (string)YVU9,<br>                                (string)Y41B, (string)I420, (string)YV12, (string)Y42B, (string)v308<br>                                } |
| SINK template: 'sink'<br><br><br>                                <br>Availability*:* Always<br><br><br>                                <br>Direction: sink | video/x-raw(memory:DMABuf) | width: | [ 1, 2147483647 ] |
| SINK template: 'sink'<br><br><br>                                <br>Availability*:* Always<br><br><br>                                <br>Direction: sink | video/x-raw(memory:DMABuf) | height: | [ 1, 2147483647 ] |
| SINK template: 'sink'<br><br><br>                                <br>Availability*:* Always<br><br><br>                                <br>Direction: sink | video/x-raw(memory:DMABuf) | framerate: | [ 0/1, 2147483647/1 ] |
| SINK template: 'sink'<br><br><br>                                <br>Availability*:* Always<br><br><br>                                <br>Direction: sink | video/x-raw(memory:GBM) | format: | { (string)BGRx, (string)BGRA, (string)RGBx, (string)xBGR,<br>                                (string)xRGB, (string)RGBA, (string)ABGR, (string)ARGB, (string)RGB,<br>                                (string)BGR, (string)RGB16, (string)BGR16, (string)YUY2,<br>                                (string)YVYU, (string)UYVY, (string)AYUV, (string)NV12,<br>                                (string)NV21, (string)NV16, (string)YUV9, (string)YVU9,<br>                                (string)Y41B, (string)I420, (string)YV12, (string)Y42B, (string)v308<br>                                } |
| SINK template: 'sink'<br><br><br>                                <br>Availability*:* Always<br><br><br>                                <br>Direction: sink | video/x-raw(memory:GBM) | width: | [ 1, 2147483647 ] |
| SINK template: 'sink'<br><br><br>                                <br>Availability*:* Always<br><br><br>                                <br>Direction: sink | video/x-raw(memory:GBM) | height: | [ 1, 2147483647 ] |
| SINK template: 'sink'<br><br><br>                                <br>Availability*:* Always<br><br><br>                                <br>Direction: sink | video/x-raw(memory:GBM) | framerate: | [ 0/1, 2147483647/1 ] |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |

## Element configuration

Note: For the current release, **x**, **y**, **width**,
                and **height** properties are not supported.

Table : Element properties of Waylandsink

| Property | Description |
| --- | --- |
| name | <ul class="ul" id="waylandsink__ul_v1g_h24_myb"><br>                                    <li class="li">The name of the object</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">String. Default: "waylandsink0"</li><br><br>                                </ul> |
| parent | <ul class="ul" id="waylandsink__ul_w1g_h24_myb"><br>                                    <li class="li">The parent of the object</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Object of type "GstObject"</li><br><br>                                </ul> |
| sync | <ul class="ul" id="waylandsink__ul_x1g_h24_myb"><br>                                    <li class="li">Sync on the clock</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: true</li><br><br>                                </ul> |
| max-lateness | <ul class="ul" id="waylandsink__ul_y1g_h24_myb"><br>                                    <li class="li">Maximum number of nanoseconds that a buffer can be late<br>                                        before it is dropped (-1 unlimited)</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Integer64. Range: -1 - 9223372036854775807 Default:<br>                                        20000000</li><br><br>                                </ul> |
| qos | <ul class="ul" id="waylandsink__ul_z1g_h24_myb"><br>                                    <li class="li">Generate Quality-of-Service events upstream</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: true</li><br><br>                                </ul> |
| async | <ul class="ul" id="waylandsink__ul_abg_h24_myb"><br>                                    <li class="li">Go asynchronously to PAUSED</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: true</li><br><br>                                </ul> |
| ts-offset | <ul class="ul" id="waylandsink__ul_bbg_h24_myb"><br>                                    <li class="li">Timestamp offset in nanoseconds</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Integer64. Range: -9223372036854775808 - 9223372036854775807<br>                                        Default: 0</li><br><br>                                </ul> |
| enable-last-sample | <ul class="ul" id="waylandsink__ul_cbg_h24_myb"><br>                                    <li class="li">Enable the last-sample property</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: true</li><br><br>                                </ul> |
| last-sample | <ul class="ul" id="waylandsink__ul_dbg_h24_myb"><br>                                    <li class="li">The last sample received in the sink</li><br><br>                                    <li class="li">flags: readable</li><br><br>                                    <li class="li">Boxed pointer of type "GstSample"</li><br><br>                                </ul> |
| blocksize | <ul class="ul" id="waylandsink__ul_ebg_h24_myb"><br>                                    <li class="li">Size in bytes to pull per buffer (0 = default)</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Unsigned Integer. Range: 0 - 4294967295 Default: 4096</li><br><br>                                </ul> |
| render-delay | <ul class="ul" id="waylandsink__ul_fbg_h24_myb"><br>                                    <li class="li">Additional render delay of the sink in nanoseconds</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Unsigned Integer64. Range: 0 - 18446744073709551615 Default:<br>                                        0</li><br><br>                                </ul> |
| throttle-time | <ul class="ul" id="waylandsink__ul_gbg_h24_myb"><br>                                    <li class="li">The time to keep between rendered buffers (0 =<br>                                        disabled)</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Unsigned Integer64. Range: 0 - 18446744073709551615 Default:<br>                                        0</li><br><br>                                </ul> |
| max-bitrate | <ul class="ul" id="waylandsink__ul_hbg_h24_myb"><br>                                    <li class="li">The maximum bits per second to render (0 = disabled)</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Unsigned Integer64. Range: 0 - 18446744073709551615 Default:<br>                                        0</li><br><br>                                </ul> |
| show-preroll-frame | <ul class="ul" id="waylandsink__ul_ibg_h24_myb"><br>                                    <li class="li">Whether to render video frames during preroll</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: true</li><br><br>                                </ul> |
| display | <ul class="ul" id="waylandsink__ul_jbg_h24_myb"><br>                                    <li class="li">Wayland display name to connect to, if not supplied via the<br>                                        GstContext</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">String. Default: null</li><br><br>                                </ul> |
| xdg-shell | <ul class="ul" id="waylandsink__ul_kbg_h24_myb"><br>                                    <li class="li">Whether to use the XDG shell protocol for the display</li><br><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: true</li><br><br>                                </ul> |
| fullscreen | <ul class="ul" id="waylandsink__ul_lbg_h24_myb"><br>                                    <li class="li">Whether the surface should be made fullscreen</li><br><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Boolean. Default: false</li><br><br>                                </ul> |
| x | <ul class="ul" id="waylandsink__ul_mbg_h24_myb"><br>                                    <li class="li">X position for the content</li><br><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Unsigned Integer. Range: 0 - 1920 Default: 0</li><br><br>                                </ul> |
| y | <ul class="ul" id="waylandsink__ul_nbg_h24_myb"><br>                                    <li class="li">Y position for the content</li><br><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Unsigned Integer. Range: 0 - 1920 Default: 0</li><br><br>                                </ul> |
| width | <ul class="ul" id="waylandsink__ul_obg_h24_myb"><br>                                    <li class="li">Destination Width for the content</li><br><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Unsigned Integer. Range: 0 - 1920 Default: 640</li><br><br>                                </ul> |
| height | <ul class="ul" id="waylandsink__ul_pbg_h24_myb"><br>                                    <li class="li">Destination Height for the content</li><br><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Unsigned Integer. Range: 0 - 1080 Default: 480</li><br><br>                                </ul> |

**Parent Topic:** [Qualcomm GST plugins](https://docs.qualcomm.com/doc/80-70014-50/topic/qim-sdk-plugins.html)

Last Published: Oct 27, 2025

[Previous Topic
qtivtransform](https://docs.qualcomm.com/bundle/publicresource/80-70014-50/topics/qtivtransform.md) [Next Topic
qtimlsnpe](https://docs.qualcomm.com/bundle/publicresource/80-70014-50/topics/qtimlsnpe.md)