# 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-80021-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-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-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' | rotate | Set orientation angle for image stream
| | 'video\_%u' | source-index | Index of the source video pad to which this pad links.
| | 'video\_%u' | framerate | Target framerate in frames per second for displaying.
| | '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.
| | 'video\_%u' | attach-cam-meta | When this parameter is TRUE, the camera attaches metadata to the GstBuffer.
| | 'video\_%u' | reprocess-enable | When set to TRUE, uses the real-time video pad as the input.
| | .. | rotate | Sets orientation angle for video stream.
| | .. | super-buffer-mode | When set to TRUE, enables Super Buffer mode for HFR use cases. In this mode, each video pad operates in Super Buffer mode, where a single buffer can contain multiple video frames. The number of frames per Super Buffer is determined by the ratio of the frame rate to the super‑frame rate. The default super‑frame rate is 60 fps.
| | | | | | | | | | | | | | | | | | | | | | | | | ## 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.
| | 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. Uses the active sensor size by default when the zoom level is 1× or not applied.
| | 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.
| | frc-mode | Controls the stream frame rate.
| | op-mode | Specifies the camera operation mode used to enable supported camera functions, including frameselection and fastswitch. The default camera operation mode is none.
| | vhdr | Specifies video high dynamic range (VHDR) imaging modes.
| | sw-tnr | Enables software-based temporal noise reduction (TNR).
| | input-roi-enable | When set to TRUE, selects the input ROI reprocessing use case.
| | input-roi-info | Specifies one or more input ROI coordinates when input ROI reprocessing is enabled. Provides the ROI values in the format <X1, Y1, WIDTH1, HEIGHT1 X2, Y2, WIDTH2, HEIGHT2, ...> for each input ROI while in the PLAYING state.
| | ife-direct-stream | Specifies the video pad activation mode. By default, pads activate automatically. When set to signal, video pad activation is controlled through the video-pads-activation signal in conjunction with gst\_pad\_set\_active().
| | video-pads-activation-mode | Specifies the video pad activation mode. By default, pads activate automatically. When set to signal, video pad activation is controlled through the video-pads-activation signal in conjunction with gst\_pad\_set\_active().
| | static-metadata | Returns the supported camera capabilities as a CameraMetadata object. The caller must release the object.
| | static-metas | Contains the map of each connected camera and its metadata
| | session-metadata | Provides stream configuration parameters as a CameraMetadata object. The caller must release the object.
| | video-metadata | Provides settings and parameters for submitting video stream capture requests as a CameraMetadata object. The caller must release the object.
| | image-metadata | Provides settings and parameters for submitting high‑quality image capture requests through the capture-image signal as a CameraMetadata object. The caller must release the 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);` | | device-status-change | `void user_function (GstElement * object, guint arg0, gboolean arg1, gpointer user_data);` | Table: Element actions for qtiqmmfsrc | Signal | Function | | --- | --- | | capture-image | `gboolean  :  g_signal_emit_by_name (element, "capture-image", GstImageCaptureMode arg0, guint arg1, GPtrArray * arg2, gboolean * p_return_value);` | | cancel-capture | `gboolean  :  g_signal_emit_by_name (element, "cancel-capture", gboolean * p_return_value);` | | video-pads-activation | `gboolean  :  g_signal_emit_by_name (element, "video-pads-activation", gboolean arg0, GPtrArray * arg1, gboolean * p_return_value);` | Last Published: Mar 26, 2026 [Previous Topic Configure display, camera, encode and decode plugins](https://docs.qualcomm.com/bundle/publicresource/80-80021-50/topics/display-plugins.md) [Next Topic qtivcomposer](https://docs.qualcomm.com/bundle/publicresource/80-80021-50/topics/qtivcomposer.md) Source: [https://docs.qualcomm.com/doc/80-80021-50/topic/qtiqmmfsrc.html](https://docs.qualcomm.com/doc/80-80021-50/topic/qtiqmmfsrc.html)