# qtivcomposer

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

The qtivcomposer plugin uses the GPU hardware to merge/mix multiple input video
        streams into a single output stream.

The pad properties determine the composition of the input buffers (for each stream) in
            the output buffer.

The table lists some of the common pad properties of qtivcomposer. For more
                    information, see [Table :  Pad properties of qtivcomposer](https://docs.qualcomm.com/doc/80-70015-50/topic/qtivcomposer.html#qtivcomposer__table_hzl_mcn_myb).

| Property | Usage |
| --- | --- |
| Position | Sets the X and Y axes placement of each input frame within the<br>                                output. |
| Crop | Sets the optional crop for the source. |
| Dimensions | Upscales/downscales the frames. |
| Rotate | Rotates the frames at right angles |
| <ul class="ul" id="qtivcomposer__ul_vyb_2dp_tbc"><br>                                    <li class="li">Flip-horizontal</li><br><br>                                    <li class="li">Flip-vertical</li><br><br>                                </ul> | Flips the frames horizontally and vertically. |
| Alpha | Adds the alpha blending value to the frames. |
| Z order | Changes the order of the frames.<br>By default, the frames are<br>                                    organized in the order in which the sink pads are created. For<br>                                    example, sink\_0, and sink\_1. |

The figure shows the GStreamer pipeline using qtivcomposer that is working with multiple
            video sources.

Figure : Pipeline with qtivcomposer
            
            ![](data:image/png;base64,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)

The video compositions include, but are not limited to the following:

- Picture-in-picture
- Side-by-side
- Alpha blending

If no composition parameters and dimensions are specified in the [GstCaps](https://gstreamer.freedesktop.org/documentation/gstreamer/gstcaps.html) source pad, the output video frames
            will have the same dimensions as the biggest incoming video stream.

Similarly, if the frame rate is not set in GstCaps, it is taken from the stream with the
            highest frame rate. And if output GstCaps does not have an explicitly set format, the
            plugin negotiates the most common format based on the input streams.

The plugin uses the Qualcomm IB2C library or Qualcomm Computer Vision SDK for all the
            transformation operations.

- The Qualcomm IB2C library is wrapped in the custom GstC2dVideoConverter or
                GstGlesVideoConverter abstraction layer.
- It contains APIs to create, configure, and process the incoming and outgoing
                buffers.
- The recommended plugin is GstGLESVideoConverter.

A custom buffer pool class called GstImageBufferPool allocates the output buffers.
            GstImageBufferPool allocates either GBM or ION buffers:

- The GBM allocation is done through the Qualcomm libgbm.
- The ION allocation is done through IOCTL commands to the kernel.

## 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) → [GstAggregator](https://gstreamer.freedesktop.org/documentation/base/gstaggregator.html?gi-language=c) → GstVideoComposer

The following tables provide information on pad templates and element properties of
                qtivcomposer. For use cases, see [Video composition use cases](https://docs.qualcomm.com/doc/80-70015-50/topic/video-composition.html).

## Pad configuration

| Pad Name | Capabilities | Capabilities | Capabilities |
| --- | --- | --- | --- |
| SINK template: 'sink\_%u'<br><ul class="ul" id="qtivcomposer__ul_rkh_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> sink</li><br><br>                                </ul> | video/x-raw | format: | { (string)NV12, (string)NV21, (string)UYVY, (string)YUY2,<br>                                (string)RGBA, (string)BGRA, (string)ARGB, (string)ABGR,<br>                                (string)RGBx, (string)BGRx, (string)xRGB, (string)xBGR, (string)RGB,<br>                                (string)BGR, (string)GRAY8 } |
| SINK template: 'sink\_%u'<br><ul class="ul" id="qtivcomposer__ul_rkh_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> sink</li><br><br>                                </ul> | video/x-raw | width: | [ 1, 32767 ] |
| SINK template: 'sink\_%u'<br><ul class="ul" id="qtivcomposer__ul_rkh_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> sink</li><br><br>                                </ul> | video/x-raw | height: | [ 1, 32767 ] |
| SINK template: 'sink\_%u'<br><ul class="ul" id="qtivcomposer__ul_rkh_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> sink</li><br><br>                                </ul> | video/x-raw | framerate: | [ 0/1, 255/1 ] |
| SINK template: 'sink\_%u'<br><ul class="ul" id="qtivcomposer__ul_rkh_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> sink</li><br><br>                                </ul> | video/x-raw(memory:GBM) | format: | { (string)NV12, (string)NV21, (string)UYVY, (string)YUY2,<br>                                (string)RGBA, (string)BGRA, (string)ARGB, (string)ABGR,<br>                                (string)RGBx, (string)BGRx, (string)xRGB, (string)xBGR, (string)RGB,<br>                                (string)BGR, (string)GRAY8 } |
| SINK template: 'sink\_%u'<br><ul class="ul" id="qtivcomposer__ul_rkh_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> sink</li><br><br>                                </ul> | video/x-raw(memory:GBM) | width: | [ 1, 32767 ] |
| SINK template: 'sink\_%u'<br><ul class="ul" id="qtivcomposer__ul_rkh_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> sink</li><br><br>                                </ul> | video/x-raw(memory:GBM) | height: | [ 1, 32767 ] |
| SINK template: 'sink\_%u'<br><ul class="ul" id="qtivcomposer__ul_rkh_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> sink</li><br><br>                                </ul> | video/x-raw(memory:GBM) | framerate: | [ 0/1, 255/1 ] |
| SRC template: 'src'<br><ul class="ul" id="qtivcomposer__ul_kcp_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw | format: | { (string)NV12, (string)NV21, (string)UYVY, (string)YUY2,<br>                                (string)RGBA, (string)BGRA, (string)ARGB, (string)ABGR,<br>                                (string)RGBx, (string)BGRx, (string)xRGB, (string)xBGR, (string)RGB,<br>                                (string)BGR, (string)GRAY8 } |
| SRC template: 'src'<br><ul class="ul" id="qtivcomposer__ul_kcp_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw | width: | [ 1, 32767 ] |
| SRC template: 'src'<br><ul class="ul" id="qtivcomposer__ul_kcp_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw | height: | [ 1, 32767 ] |
| SRC template: 'src'<br><ul class="ul" id="qtivcomposer__ul_kcp_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw | framerate: | [ 0/1, 255/1 ] |
| SRC template: 'src'<br><ul class="ul" id="qtivcomposer__ul_kcp_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw(memory:GBM) | format: | { (string)NV12, (string)NV21, (string)UYVY, (string)YUY2,<br>                                (string)RGBA, (string)BGRA, (string)ARGB, (string)ABGR,<br>                                (string)RGBx, (string)BGRx, (string)xRGB, (string)xBGR, (string)RGB,<br>                                (string)BGR, (string)GRAY8 } |
| SRC template: 'src'<br><ul class="ul" id="qtivcomposer__ul_kcp_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw(memory:GBM) | width: | [ 1, 32767 ] |
| SRC template: 'src'<br><ul class="ul" id="qtivcomposer__ul_kcp_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw(memory:GBM) | height: | [ 1, 32767 ] |
| SRC template: 'src'<br><ul class="ul" id="qtivcomposer__ul_kcp_dlv_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw(memory:GBM) | framerate: | [ 0/1, 255/1 ] |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |

| Pad | Property | Description |
| --- | --- | --- |
| 'sink\_%u' | zorder | Z axis order, the default is the order of creation.<br><ul class="ul" id="qtivcomposer__ul_x3v_2lv_q1c"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state, 0x40000000</li><br><br>                                    <li class="li">Integer. Range: -1 - 2147483647 Default: -1</li><br><br>                                </ul> |
| 'sink\_%u' | crop | The crop rectangle ('&lt;X, Y, WIDTH, HEIGHT &gt;').<br><ul class="ul" id="qtivcomposer__ul_kl3_flv_q1c"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state, 0x40000000</li><br><br>                                    <li class="li">GstValueArray of GValues of type "gint"</li><br><br>                                </ul> |
| 'sink\_%u' | position | The X and Y coordinates of the destination rectangle top left<br>                                    corner ('&lt;X, Y&gt;').<br><ul class="ul" id="qtivcomposer__ul_exn_flv_q1c"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state, 0x40000000</li><br><br>                                    <li class="li">GstValueArray of GValues of type "gint"</li><br><br>                                </ul> |
| 'sink\_%u' | dimensions | The destination rectangle width and height, if left as '0' they<br>                                    are the same as input dimensions ('&lt;WIDTH, HEIGHT&gt;')<br><ul class="ul" id="qtivcomposer__ul_tfy_flv_q1c"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY,<br>                                        PAUSED, or PLAYING state, 0x40000000</li><br><br>                                    <li class="li">GstValueArray of GValues of type "gint"</li><br><br>                                </ul> |
| 'sink\_%u' | alpha | Alpha channel value.<br><ul class="ul" id="qtivcomposer__ul_bmd_glv_q1c"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY,<br>                                        PAUSED, or PLAYING state, 0x40000000</li><br><br>                                    <li class="li">Double. Range: 0.0 - 1.0 Default: 1.0</li><br><br>                                </ul> |
| 'sink\_%u' | flip-horizontal | Flip the video image horizontally.<br><ul class="ul" id="qtivcomposer__ul_wvs_glv_q1c"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY,<br>                                        PAUSED, or PLAYING state, 0x40000000</li><br><br>                                    <li class="li">Boolean. Default: false</li><br><br>                                </ul> |
| 'sink\_%u' | flip-vertical | Flip the video image vertically.<br><ul class="ul" id="qtivcomposer__ul_hlg_hlv_q1c"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY,<br>                                        PAUSED, or PLAYING state, 0x40000000</li><br><br>                                    <li class="li">Boolean. Default: false</li><br><br>                                </ul> |
| 'sink\_%u' | rotate | Rotate the video image.<br><ul class="ul" id="qtivcomposer__ul_lx4_hlv_q1c"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY,<br>                                        PAUSED, or PLAYING state, 0x40000000</li><br><br>                                    <li class="li">Enum "GstVideoComposerRotate" Default: 0, "none"<ul class="ul" id="qtivcomposer__ul_jt3_24m_4yb"><br>                                            <li class="li"> (0): none - No rotation</li><br><br>                                            <li class="li"> (1): 90CW - Rotate 90 degrees clockwise</li><br><br>                                            <li class="li"> (2): 90CCW - Rotate 90 degrees<br>                                                counter-clockwise</li><br><br>                                            <li class="li"> (3): 180 - Rotate 180 degrees</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| 'sink\_%u' | emit-signals | Send signals to signal data consumption.<br><ul class="ul" id="qtivcomposer__ul_clr_3lv_q1c"><br>                                    <li class="li"> flags: readable, writable</li><br><br>                                    <li class="li"> Boolean. Default: false</li><br><br>                                </ul> |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |

## Element configuration

Table : Element properties of qtivcomposer

| Property | Description |
| --- | --- |
| name | The name of the object.<br><ul class="ul" id="qtivcomposer__ul_ocj_klv_q1c"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">String. Default: "videocomposer0"</li><br><br>                                </ul> |
| parent | The parent of the object.<br><ul class="ul" id="qtivcomposer__ul_jdn_klv_q1c"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Object of type "GstObject"</li><br><br>                                </ul> |
| engine | Engine backend used for the conversion operations.<ul class="ul" id="qtivcomposer__ul_icy_klv_q1c"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Enum "GstVideoConverterBackend" Default: 1, "gles"<ul class="ul" id="qtivcomposer__ul_ayt_mlv_q1c"><br>                                            <li class="li">(1): gles - Use OpenGLES based video converter </li><br><br>                                            <li class="li">(2): fcv - Use FastCV based video converter</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| latency | Additional latency in live mode allows upstream to take longer to<br>                                    produce buffers for the current position (in nanoseconds).<br><ul class="ul" id="qtivcomposer__ul_cn5_nlv_q1c"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Unsigned Integer64. </li><br><br>                                    <li class="li">Range: 0 - 18446744073709551615 </li><br><br>                                    <li class="li">Default: 0</li><br><br>                                </ul> |
| start-time-selection | Decides which start time is output.<br><ul class="ul" id="qtivcomposer__ul_wd4_plv_q1c"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Enum "GstAggregatorStartTimeSelection" Default: 0, "zero"<ul class="ul" id="qtivcomposer__ul_d2d_f4m_4yb"><br>                                            <li class="li"> (0): zero - Start at 0 running time (default)</li><br><br>                                            <li class="li"> (1): first - Start at the first observed input<br>                                                running time</li><br><br>                                            <li class="li"> (2): set - Set start time with start-time<br>                                                property</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| start-time | Start time to use if start-time-selection=set.<br><ul class="ul" id="qtivcomposer__ul_bf2_qlv_q1c"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Unsigned Integer64. Range: 0 - 18446744073709551615 Default:<br>                                        18446744073709551615</li><br><br>                                </ul> |
| background | Background color.<br><ul class="ul" id="qtivcomposer__ul_gw3_qlv_q1c"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY,<br>                                        PAUSED, or PLAYING state</li><br><br>                                    <li class="li">Unsigned Integer Range: 0 - 4294967295 </li><br><br>                                    <li class="li">Default: 4286611584</li><br><br>                                </ul> |

**Parent Topic:** [Display, camera, encode and decode plugins](https://docs.qualcomm.com/doc/80-70015-50/topic/display-plugins.html)

Last Published: Oct 27, 2025

[Previous Topic
qtiqmmfsrc](https://docs.qualcomm.com/bundle/publicresource/80-70015-50/topics/qtiqmmfsrc.md) [Next Topic
Waylandsink](https://docs.qualcomm.com/bundle/publicresource/80-70015-50/topics/waylandsink.md)