# qtiqmmfsrc The qtiqmmfsrc plugin captures the video frames through Qualcomm Camera Service. The plugin has the GstQtiQmmfSrc main class that acts as a wrapper on top of the Qualcomm multimedia framework (QMMF) recorder client with separate pads for video and image streams. - The pads store the creation time parameters (passed as GstCaps during pipeline creation) for the particular stream. - The GstQtiQmmfSrc takes that information, translates it to the QMMF recorder client parameters, and calls the necessary APIs on each state transition of the element. - For video and image pads, set the camera device ID through the `camera` property. By default, this ID is 0. The following are the transition states of the plugin: - During the transition between the NULL and READY states, the plugin opens and initializes the camera device with the specified ID. - When transitioning to PAUSED state from READY, the plugin translates the set pad parameters and makes calls to the QMMF service to create the source streams for each pad. - The session streams are started when transition is done to the PLAYING state. While the plugin receives a frame in the main class, it creates a GstBuffer and sends it to the relevant pad buffer queue. The pad pushes the buffer to its linked sink pad from the next plugin. The QMMF service does the following: - It assigns the buffers. The plugin returns the buffers to the service when they’re no longer in use. - For video, the QMMF service sends the buffers when the plugin state is PLAYING. - For image pad, a *capture-image* signal must be sent. For each capture-image, the QMMF service sends a single buffer. ## 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) → GstQmmfSrc The following tables provide information on pad templates and element properties of qtiqmmfsrc. For use cases, see [Camera](https://docs.qualcomm.com/doc/80-70029-50/topic/camera.html). ## Pad configuration | Pad Name | Capabilities | Capabilities | Capabilities | | --- | --- | --- | --- | |
SRC template: 'image\_%u'



>
>
> | image/jpeg | width:


height:


framerate: | [ 16, 4096 ]


[ 16, 4096 ]


[ 0/1, 30/1 ] | |
SRC template: 'image\_%u'



>
>
> | video/x-raw | format:


width:


height:


framerate: | { (string)NV12, (string)NV21 }


[ 16, 4096 ]


[ 16, 4096 ]


[ 0/1, 30/1 ] | |
SRC template: 'image\_%u'



>
>
> | video/x-raw(memory:GBM) | format:


width:


height:


framerate: | { (string)NV12, (string)NV21 }


[ 16, 4096 ]


[ 16, 4096 ]


[ 0/1, 30/1 ] | |
SRC template: 'image\_%u'



>
>
> | video/x-bayer | format:


bpp:


width:


height:


framerate: | { (string)bggr, (string)rggb, (string)gbrg, (string)grbg, (string)mono }


{ (string)8, (string)10, (string)12, (string)16 }


[ 16, 4096 ]


[ 16, 4096 ]


[ 0/1, 30/1 ] | |
SRC template: 'video\_%u'



>
>
> | image/jpeg | width:


height:


framerate: | [ 16, 4096 ]


[ 16, 4096 ]


[ 0/1, 120/1 ] | |
SRC template: 'video\_%u'



>
>
> | video/x-raw | format:


width:


height:


framerate: | { (string)NV12, (string)NV16, (string)YUY2 }


[ 16, 4096 ]


[ 16, 4096 ]


[ 0/1, 120/1 ] | |
SRC template: 'video\_%u'



>
>
> | video/x-raw(memory:GBM) | format:


width:


height:


framerate: | { (string)NV12, (string)YUY2 }


[ 16, 4096 ]


[ 16, 4096 ]


[ 0/1, 120/1 ] | |
SRC template: 'video\_%u'



>
>
> | video/x-bayer | format:


bpp:


width:


height:


framerate: | (string)bggr, (string)rggb, (string)gbrg, (string)grbg, (string)mono }


{ (string)8, (string)10, (string)12, (string)16 }


[ 16, 4096 ]


[ 16, 4096 ]


[ 0/1, 120/1 ] | | | | | | | | | | | | | | | | | Pad | Property | Description | | --- | --- | --- | | 'image\_%u' | mode | Different image mode.



>
>
> | | 'video\_%u' | source-index | Index of the source video pad to which this pad is linked.



>
>
> | | 'video\_%u' | framerate | Target framerate in frames per second for display.



>
>
> | | 'video\_%u' | crop | Crop rectangle ('<X, Y, WIDTH, HEIGHT>'). Applicable only for JPEG and YUY2 formats.



>
>
> | | 'video\_%u' | extra-buffers | Number of extra buffers that are allocated.



>
>
> | | 'video\_%u' | type | The type of the stream.



>
>
> | | | | | | | | | | | | | | | | | ## Element configuration Table : Element properties of qtiqmmfsrc | Property | Description | | --- | --- | | name | The name of the object.



>
>
> | | parent | The parent of the object.



>
>
> | | camera | The camera device ID to be used by video/image pads.



>
>
> | | slave | Set the camera as the secondary device.



>
>
> | | ldc | Lens distortion correction.



>
>
> | | lcac | Lateral chromatic aberration correction.



>
>
> | | eis | Electronic image stabilization to reduce the effects of camera shake.



>
>
> | | shdr | Super high dynamic range imaging.



>
>
> | | adrc | Automatic dynamic range compression.



>
>
> | | control-mode | Overall mode of auto-exposure, auto-white-balance, auto-focus (also known as 3A) control routines.


This is a top-level 3A control switch. When set to OFF, 3A controlled by the camera device is disabled.



>
>
> | | effect | Effect applied on the camera frames.



>
>
> | | scene | Camera optimizations depending on the scene.



>
>
> | | antibanding | Camera antibanding routine for the current illumination condition.



>
>
> | | sharpness | Image sharpness strength.



>
>
> | | contrast | Image contrast strength.



>
>
> | | saturation | Image saturation strength.



>
>
> | | iso-mode | ISO exposure mode.



>
>
> | | manual-iso-value | Manual exposure ISO value. Used when the ISO mode is set to 'manual'.



>
>
> | | exposure-mode | The required mode for the camera exposure routine.



>
>
> | | exposure-lock | Locks current camera exposure routine values from changing.



>
>
> | | exposure-metering | The required mode for the camera exposure metering routine.



>
>
> | | exposure-compensation | Adjust (Compensate) camera images target brightness. The adjustment is measured as a count of steps.



>
>
> | | manual-exposure-time | Manual exposure time in nanoseconds. Used when the Exposure mode is set to 'off'.



>
>
> | | custom-exposure-table | A GstStructure describing custom exposure table.



>
>
> | | white-balance-mode | The mode for the camera's white balance routine.



>
>
> | | white-balance-lock | Locks current White Balance values from changing. Affects only non-manual white balance modes.



>
>
> | | manual-wb-settings | Manual White Balance settings such as color correction temperature and R/G/B gains. Used in manual white balance modes.



>
>
> | | focus-mode | Indicates whether auto-focus is enabled along with its mode.



>
>
> | | noise-reduction | Noise reduction filter mode.



>
>
> | | noise-reduction-tuning | A GstStructure describing the noise reduction tuning.



>
>
> | | zoom | Camera zoom rectangle ('<X, Y, WIDTH, HEIGHT>') in sensor active pixel array coordinates.



>
>
> | | defog-table | A GstStructure describing defog table.



>
>
> | | ltm-data | A GstStructure describing local tone mapping data.



>
>
> | | infrared-mode | Infrared mode.



>
>
> | | active-sensor-size | The active pixel array of the camera sensor ('<X, Y, WIDTH, HEIGHT>') and it's filled only when the plugin is in READY or above state.



>
>
> | | sensor-mode | Force set Sensor Mode index (0-15). -1 for Auto selection.



>
>
> | | capture-metadata | Expose camera metadata object that's used for camera control. If the get property is used, caller must release metadata object.



>
>
> | | camera-characteristics | Returns supported values for camera parameters as camera metadata object. The caller should take ownership and release the metadata object.



>
>
> | Table: Element signals for qtiqmmfsrc | Signal | Function | | --- | --- | | result-metadata | `void user_function (GstElement* object, gpointer arg0, gpointer user_data);` | | urgent-metadata | `void user_function (GstElement* object, gpointer arg0, gpointer user_data);` | Last Published: Jun 03, 2026 [Previous Topic Configure display, camera, encode and decode plugins](https://docs.qualcomm.com/bundle/publicresource/80-70029-50/topics/display-plugins.md) [Next Topic qtivcomposer](https://docs.qualcomm.com/bundle/publicresource/80-70029-50/topics/qtivcomposer.md) Source: [https://docs.qualcomm.com/doc/80-70029-50/topic/qtiqmmfsrc.html](https://docs.qualcomm.com/doc/80-70029-50/topic/qtiqmmfsrc.html)