# qtiqmmfsrc

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

The qtiqmmfsrc plugin captures the video frames through Qualcomm Camera
        Service.

The plugin consists of the main class called GstQtiQmmfSrc 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, the camera device ID, which is used for this instance of
                the plugin can be set through the *camera* property (by default this ID is
                0).

The following are the transition states of the plugin:

- During transition between NULL and READY state, the plugin opens and initializes the
                camera device with the given ID.
- When transitioning to PAUSED state from READY, the plugin translates the set pad
                parameters and makes calls to the QMMF service in order to create the source streams
                for each pad.
- The session streams are started when transition is done to PLAYING state.

When  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 allocates buffers. The plugin returns the buffers to the service when they are 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, a
                single buffer is sent from the QMMF service.

## 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-70014-50/topic/camera.html).

## Pad configuration

| Pad Name | Capabilities | Capabilities | Capabilities |
| --- | --- | --- | --- |
| SRC template: 'image\_%u'<br><ul class="ul" id="qtiqmmfsrc__ul_inr_wlv_y1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | image/jpeg | <ul class="ul" id="qtiqmmfsrc__ul_bw5_lxs_q1c"><br>                                    <li class="li">width:</li><br><br>                                    <li class="li">height:</li><br><br>                                    <li class="li">framerate:</li><br><br>                                </ul> | [ 16, 4096 ]<br><br><br>                                <br>[ 16, 4096 ]<br><br><br>                                <br>[ 0/1, 30/1 ] |
| SRC template: 'image\_%u'<br><ul class="ul" id="qtiqmmfsrc__ul_inr_wlv_y1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw | format:<br><br><br>                                <br>width:<br><br><br>                                <br>height:<br><br><br>                                <br>framerate: | { (string)NV12, (string)NV21 }<br><br><br>                                <br>[ 16, 4096 ]<br><br><br>                                <br>[ 16, 4096 ]<br><br><br>                                <br>[ 0/1, 30/1 ] |
| SRC template: 'image\_%u'<br><ul class="ul" id="qtiqmmfsrc__ul_inr_wlv_y1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw(memory:GBM) | format:<br><br><br>                                <br>width:<br><br><br>                                <br>height:<br><br><br>                                <br>framerate: | { (string)NV12, (string)NV21 }<br><br><br>                                <br>[ 16, 4096 ]<br><br><br>                                <br>[ 16, 4096 ]<br><br><br>                                <br>[ 0/1, 30/1 ] |
| SRC template: 'image\_%u'<br><ul class="ul" id="qtiqmmfsrc__ul_inr_wlv_y1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-bayer | format:<br><br><br>                                <br>bpp:<br><br><br>                                <br>width:<br><br><br>                                <br>height:<br><br><br>                                <br>framerate: | { (string)bggr, (string)rggb, (string)gbrg, (string)grbg,<br>                                    (string)mono }<br><br><br>                                <br>{ (string)8, (string)10, (string)12, (string)16 }<br><br><br>                                <br>[ 16, 4096 ]<br><br><br>                                <br>[ 16, 4096 ]<br><br><br>                                <br>[ 0/1, 30/1 ] |
| SRC template: 'video\_%u'<br><ul class="ul" id="qtiqmmfsrc__ul_lm1_xlv_y1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | image/jpeg | width:<br><br><br>                                <br>height:<br><br><br>                                <br>framerate: | [ 16, 4096 ]<br><br><br>                                <br>[ 16, 4096 ]<br><br><br>                                <br>[ 0/1, 120/1 ] |
| SRC template: 'video\_%u'<br><ul class="ul" id="qtiqmmfsrc__ul_lm1_xlv_y1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw | format:<br><br><br>                                <br>width:<br><br><br>                                <br>height:<br><br><br>                                <br>framerate: | { (string)NV12, (string)NV16, (string)YUY2 }<br><br><br>                                <br>[ 16, 4096 ]<br><br><br>                                <br>[ 16, 4096 ]<br><br><br>                                <br>[ 0/1, 120/1 ] |
| SRC template: 'video\_%u'<br><ul class="ul" id="qtiqmmfsrc__ul_lm1_xlv_y1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-raw(memory:GBM) | format:<br><br><br>                                <br>width:<br><br><br>                                <br>height:<br><br><br>                                <br>framerate: | { (string)NV12, (string)YUY2 }<br><br><br>                                <br>[ 16, 4096 ]<br><br><br>                                <br>[ 16, 4096 ]<br><br><br>                                <br>[ 0/1, 120/1 ] |
| SRC template: 'video\_%u'<br><ul class="ul" id="qtiqmmfsrc__ul_lm1_xlv_y1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> On request</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | video/x-bayer | format:<br><br><br>                                <br>bpp:<br><br><br>                                <br>width:<br><br><br>                                <br>height:<br><br><br>                                <br>framerate: | (string)bggr, (string)rggb, (string)gbrg, (string)grbg,<br>                                    (string)mono }<br><br><br>                                <br>{ (string)8, (string)10, (string)12, (string)16 }<br><br><br>                                <br>[ 16, 4096 ]<br><br><br>                                <br>[ 16, 4096 ]<br><br><br>                                <br>[ 0/1, 120/1 ] |
|  |  |  |  |
|  |  |  |  |
|  |  |  |  |

| Pad | Property | Description |
| --- | --- | --- |
| 'image\_%u' | mode | Different image mode<ul class="ul" id="qtiqmmfsrc__ul_mw4_pxs_q1c"><br>                                    <li class="li">flags: readable, writable, changeable only in NULL or READY<br>                                        state</li><br><br>                                    <li class="li">Enum "GstImageMode" Default: 0, "video"<ul class="ul" id="qtiqmmfsrc__ul_mjf_qxs_q1c"><br>                                            <li class="li">(0): video - Video snapshot is captured with video<br>                                                settings. Video recording is not interrupted in this<br>                                                mode </li><br><br>                                            <li class="li">(1): continuous - Continuously capture images at the<br>                                                set frame rate in the capabilities.</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| 'video\_%u' | source-index | Index of the source video pad to which this pad is linked<ul class="ul" id="qtiqmmfsrc__ul_dhj_1ym_myb"><br>                                    <li class="li">flags: readable, writable, changeable only in NULL or READY<br>                                        state</li><br><br>                                    <li class="li">Integer. Range: -1 - 2147483647 Default: -1</li><br><br>                                </ul> |
| 'video\_%u' | framerate | Target framerate in frames per second for display<ul class="ul" id="qtiqmmfsrc__ul_ehj_1ym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Double. Range: 0 - 30; default: 30</li><br><br>                                </ul> |
| 'video\_%u' | crop | Crop rectangle ('&lt;X, Y, WIDTH, HEIGHT&gt;'). Applicable only for<br>                                JPEG and YUY2 formats<ul class="ul" id="qtiqmmfsrc__ul_fhj_1ym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">GstValueArray of GValues of type "gint"</li><br><br>                                </ul> |
| 'video\_%u' | extra-buffers | Number of additional buffers that are allocated<ul class="ul" id="qtiqmmfsrc__ul_ghj_1ym_myb"><br>                                    <li class="li">flags: readable, writable, changeable only in NULL or READY<br>                                        state</li><br><br>                                    <li class="li">Unsigned Integer. <p class="p">Range: 0 - 4294967295; default:<br>                                        0</p><br></li><br><br>                                </ul> |
| 'video\_%u' | type | The type of the stream<ul class="ul" id="qtiqmmfsrc__ul_pkj_j2c_t1c"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Enum "GstQmmfSrcStreamType" Default: 0, "video"<ul class="ul" id="qtiqmmfsrc__ul_qkj_j2c_t1c"><br>                                            <li class="li"> (0): video - The stream is configured with tunings<br>                                                and settings most fitted for directly encoding the<br>                                                buffers.</li><br><br>                                            <li class="li">(1): preview - The stream is configured with tunings<br>                                                and settings most fitted for directly visualizing<br>                                                the buffers.</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |

## Element configuration

Table :  Element properties of qtiqmmfsrc

| Property | Description |
| --- | --- |
| name | The name of the object<ul class="ul" id="qtiqmmfsrc__ul_ptt_dym_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">String. Default: "qmmfsrc0"</li><br><br>                                </ul> |
| parent | The parent of the object<ul class="ul" id="qtiqmmfsrc__ul_qtt_dym_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Object of type "GstObject"</li><br><br>                                </ul> |
| camera | Camera device ID to be used by video/image pads<ul class="ul" id="qtiqmmfsrc__ul_rtt_dym_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Unsigned Integer. Range: 0 - 10 Default: 0</li><br><br>                                </ul> |
| slave | Set camera as slave device<ul class="ul" id="qtiqmmfsrc__ul_stt_dym_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: false</li><br><br>                                </ul> |
| ldc | Lens distortion correction<ul class="ul" id="qtiqmmfsrc__ul_ttt_dym_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: false</li><br><br>                                </ul> |
| lcac | Lateral chromatic aberration correction<ul class="ul" id="qtiqmmfsrc__ul_utt_dym_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: false</li><br><br>                                </ul> |
| eis | Electronic image stabilization to reduce the effects of camera<br>                                    shake<ul class="ul" id="qtiqmmfsrc__ul_vtt_dym_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: false</li><br><br>                                </ul> |
| shdr | Super high dynamic range imaging<ul class="ul" id="qtiqmmfsrc__ul_wtt_dym_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: false</li><br><br>                                </ul> |
| adrc | Automatic dynamic range compression<ul class="ul" id="qtiqmmfsrc__ul_xtt_dym_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Boolean. Default: false</li><br><br>                                </ul> |
| control-mode | Overall mode of  auto-exposure, auto-white-balance, auto-focus<br>                                (also known as 3A) control routines. <br>This is a top-level 3A<br>                                    control switch. When set to OFF, 3A controlled by the camera<br>                                    device is disabled.<br><ul class="ul" id="qtiqmmfsrc__ul_ytt_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Enum "GstCameraControlMode" Default: 1, "auto"<ul class="ul" id="qtiqmmfsrc__ul_byr_1zm_myb"><br>                                            <li class="li"> (0): off - Full application control of<br>                                                pipeline</li><br><br>                                            <li class="li"> (1): auto - Manual control of capture parameters is<br>                                                disabled</li><br><br>                                            <li class="li"> (2): use-scene-mode - Use a specific scene<br>                                                mode</li><br><br>                                            <li class="li"> (3): off-keep-state - Same as OFF mode, except that<br>                                                this capture is not used by camera device background<br>                                                3A to update their statistics.</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| effect | Effect applied on the camera frames<ul class="ul" id="qtiqmmfsrc__ul_pvw_czm_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Enum "GstCameraEffectMode" Default: 0, "off"<ul class="ul" id="qtiqmmfsrc__ul_cl5_zym_myb"><br>                                            <li class="li"> (0): off - No color effect is applied.</li><br><br>                                            <li class="li"> (1): mono - A 'monocolor' effect where the image is<br>                                                mapped into a single color.</li><br><br>                                            <li class="li"> (2): negative - A 'photo-negative' effect where the<br>                                                image colors are inverted.</li><br><br>                                            <li class="li"> (3): solarize - A 'solarisation' effect (Sabattier<br>                                                effect) where the image is wholly or partially<br>                                                reversed in tone.</li><br><br>                                            <li class="li"> (4): sepia - A 'sepia' effect where the image is<br>                                                mapped into warm gray, red, and brown tones.</li><br><br>                                            <li class="li"> (5): posterize - A 'posterization' effect where the<br>                                                image uses discrete regions of tone rather than a<br>                                                continuous gradient of tones.</li><br><br>                                            <li class="li"> (6): whiteboard - A 'whiteboard' effect where the<br>                                                image is typically displayed as regions of white,<br>                                                with black, or grey details.</li><br><br>                                            <li class="li"> (7): blackboard - A 'blackboard' effect where the<br>                                                image is typically displayed as regions of black,<br>                                                with white, or grey details.</li><br><br>                                            <li class="li"> (8): aqua - An 'aqua' effect where a blue hue is<br>                                                added to the image.</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| scene | Camera optimizations depending on the scene<ul class="ul" id="qtiqmmfsrc__ul_a5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Enum "GstCameraSceneMode" Default: 1, "face-priority"<ul class="ul" id="qtiqmmfsrc__ul_m1z_dzm_myb"><br>                                            <li class="li"> (0): disabled - Indicates that no scene modes are<br>                                                set</li><br><br>                                            <li class="li"> (1): face-priority - Optimized for photos of with<br>                                                priority of people faces</li><br><br>                                            <li class="li"> (2): action - Optimized for photos of quickly<br>                                                moving objects.</li><br><br>                                            <li class="li"> (3): portrait - Optimized for still photos of<br>                                                people</li><br><br>                                            <li class="li"> (4): landscape - Optimized for photos of distant<br>                                                macroscopic objects</li><br><br>                                            <li class="li"> (5): night - Optimized for low-light settings</li><br><br>                                            <li class="li"> (6): night-portrait - Optimized for still photos of<br>                                                people in low-light settings</li><br><br>                                            <li class="li"> (7): theatre - Optimized for dim, indoor settings<br>                                                where flash must remain off</li><br><br>                                            <li class="li"> (8): beach - Optimized for bright, outdoor beach<br>                                                settings</li><br><br>                                            <li class="li"> (9): snow - Optimized for bright, outdoor settings<br>                                                containing snow</li><br><br>                                            <li class="li"> (10): sunset - Optimized for scenes of the setting<br>                                                sun</li><br><br>                                            <li class="li"> (11): steady-photo - Optimized to avoid blurry<br>                                                photos due to small amounts of device motion (for<br>                                                example: due to hand shake)</li><br><br>                                            <li class="li"> (12): fireworks - Optimized for nighttime photos of<br>                                                fireworks</li><br><br>                                            <li class="li"> (13): sports - Optimized for photos of quickly<br>                                                moving people</li><br><br>                                            <li class="li"> (14): party - Optimized for dim, indoor settings<br>                                                with multiple moving people</li><br><br>                                            <li class="li"> (15): candlelight - Optimized for dim settings<br>                                                where the main light source is a candle</li><br><br>                                            <li class="li"> (16): hdr - Turn on a device-specific high dynamic<br>                                                range (HDR) mode</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| antibanding | Camera antibanding routine for the current illumination<br>                                    condition<ul class="ul" id="qtiqmmfsrc__ul_b5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Enum "GstAntibandingMode" Default: 3, "auto"<ul class="ul" id="qtiqmmfsrc__ul_pyc_fzm_myb"><br>                                            <li class="li"> (0): off - The camera device does not adjust<br>                                                exposure duration to avoid banding problems</li><br><br>                                            <li class="li"> (1): 50 Hz - The camera device adjusts exposure<br>                                                duration to avoid banding problems with 50 Hz<br>                                                illumination sources</li><br><br>                                            <li class="li"> (2): 60 Hz - The camera device adjusts exposure<br>                                                duration to avoid banding problems with 60 Hz<br>                                                illumination sources</li><br><br>                                            <li class="li">(3): auto - The camera device automatically adapts<br>                                                its antibanding routine to the current illumination<br>                                                condition</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| sharpness | Image sharpness strength<ul class="ul" id="qtiqmmfsrc__ul_c5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Integer. Range: 0 - 6; default: 2</li><br><br>                                </ul> |
| contrast | Image contrast strength<ul class="ul" id="qtiqmmfsrc__ul_d5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Integer. Range: 1 - 10; default: 5</li><br><br>                                </ul> |
| saturation | Image saturation strength<ul class="ul" id="qtiqmmfsrc__ul_e5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Integer. Range: 0 - 10 Default: 5</li><br><br>                                </ul> |
| iso-mode | ISO exposure mode<br><ul class="ul" id="qtiqmmfsrc__ul_f5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Enum "GstCameraISOMode" Default: 0, "auto"<ul class="ul" id="qtiqmmfsrc__ul_t42_3zm_myb"><br>                                            <li class="li"> (0): auto - The chosen ISO exposure mode depending<br>                                                on the scene</li><br><br>                                            <li class="li"> (1): deblur - The ISO exposure sensitivity set to<br>                                                prioritize motion deblur</li><br><br>                                            <li class="li"> (2): 100 - The ISO exposure sensitivity set to<br>                                                prioritize level 100</li><br><br>                                            <li class="li"> (3): 200 - The ISO exposure sensitivity set to<br>                                                prioritize level 200</li><br><br>                                            <li class="li"> (4): 400 - The ISO exposure sensitivity set to<br>                                                prioritize level 400</li><br><br>                                            <li class="li"> (5): 800 - The ISO exposure sensitivity set to<br>                                                prioritize level 800</li><br><br>                                            <li class="li"> (6): 1600 - The ISO exposure sensitivity set to<br>                                                prioritize level 1600</li><br><br>                                            <li class="li"> (7): 3200 - The ISO exposure sensitivity set to<br>                                                prioritize level 3200</li><br><br>                                            <li class="li"> (8): manual - The ISO exposure value provided by<br>                                                manual-iso-value is used</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| manual-iso-value | Manual exposure ISO value. Used when the ISO mode is set to<br>                                    'manual'<ul class="ul" id="qtiqmmfsrc__ul_g5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Integer. Range: 100 - 3200 Default: 800</li><br><br>                                </ul> |
| exposure-mode | The required mode for the camera exposure routine.<ul class="ul" id="qtiqmmfsrc__ul_h5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Enum "GstCameraExposureMode" Default: 1, "auto"<ul class="ul" id="qtiqmmfsrc__ul_jk4_3zm_myb"><br>                                            <li class="li"> (0): off - The auto exposure routine is disabled.<br>                                                Manual exposure time will be used set via the<br>                                                'exposure-time' property</li><br><br>                                            <li class="li"> (1): auto - The auto exposure routine is<br>                                                active</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| exposure-lock | Locks current camera exposure routine values from changing<ul class="ul" id="qtiqmmfsrc__ul_i5t_dym_myb"><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> |
| exposure-metering | The required mode for the camera exposure metering routine<ul class="ul" id="qtiqmmfsrc__ul_j5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Enum "GstCameraExposureMetering" Default: 0, "average"<ul class="ul" id="qtiqmmfsrc__ul_jnz_3zm_myb"><br>                                            <li class="li"> (0): average - The camera device's exposure<br>                                                metering is calculated as average from the whole<br>                                                frame</li><br><br>                                            <li class="li"> (1): center-weighted - The camera device's exposure<br>                                                metering is calculated from the center region of the<br>                                                frame</li><br><br>                                            <li class="li"> (2): spot - The camera device's exposure metering<br>                                                is calculated from a chosen spot</li><br><br>                                            <li class="li"> (6): custom - The camera device's exposure metering<br>                                                is calculated from a custom metering table</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| exposure-compensation | Adjust (Compensate) camera images target brightness. Adjustment<br>                                is measured as a count of steps<ul class="ul" id="qtiqmmfsrc__ul_k5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Integer. Range: -12 - 12 Default: 0</li><br><br>                                </ul> |
| manual-exposure-time | Manual exposure time in nanoseconds. Used when the Exposure mode<br>                                is set to 'off'<ul class="ul" id="qtiqmmfsrc__ul_l5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Integer64. Range: 0 - 9223372036854775807 Default:<br>                                        33333333</li><br><br>                                </ul> |
| custom-exposure-table | A GstStructure describing custom exposure table.<ul class="ul" id="qtiqmmfsrc__ul_m5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">String. Default:<br>                                        "org.codeaurora.qcamera3.exposuretable;"</li><br><br>                                </ul> |
| white-balance-mode | The desired mode for the camera's white balance routine<br><ul class="ul" id="qtiqmmfsrc__ul_ilf_bzt_q1c"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Enum "GstCameraWiteBalanceMode" Default: 3, "auto"<ul class="ul" id="qtiqmmfsrc__ul_pgx_jzm_myb"><br>                                            <li class="li"> (0): off - Both auto and manual white balance<br>                                                routines are disabled</li><br><br>                                            <li class="li"> (1): manual-cc-temp - The auto-white balance<br>                                                routine is inactive and manual color correction<br>                                                temperature is used which is set via the<br>                                                'manual-wb-settings' property</li><br><br>                                            <li class="li"> (2): manual-rgb-gains - The auto-white balance<br>                                                routine is inactive and manual R/G/B gains are used<br>                                                which are set via the 'manual-wb-settings'<br>                                                property</li><br><br>                                            <li class="li"> (3): auto - The auto-white balance routine is<br>                                                active</li><br><br>                                            <li class="li"> (4): shade - The camera device uses shade light as<br>                                                the assumed scene illumination for white balance<br>                                                correction</li><br><br>                                            <li class="li"> (5): incandescent - The camera device uses<br>                                                incandescent light as the assumed scene illumination<br>                                                for white balance correction</li><br><br>                                            <li class="li"> (6): fluorescent - The camera device uses<br>                                                fluorescent light as the assumed scene illumination<br>                                                for white balance correction</li><br><br>                                            <li class="li"> (7): warm-fluorescent - The camera device uses warm<br>                                                fluorescent light as the assumed scene illumination<br>                                                for white balance correction</li><br><br>                                            <li class="li"> (8): daylight - The camera device uses daylight<br>                                                light as the assumed scene illumination for white<br>                                                balance correction</li><br><br>                                            <li class="li"> (9): cloudy-daylight - The camera device uses<br>                                                cloudy daylight light as the assumed scene<br>                                                illumination for white balance correction</li><br><br>                                            <li class="li"> (10): twilight - The camera device uses twilight<br>                                                light as the assumed scene illumination for white<br>                                                balance correction</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| white-balance-lock | Locks current White Balance values from changing. Affects only<br>                                non-manual white balance modes<ul class="ul" id="qtiqmmfsrc__ul_n5t_dym_myb"><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> |
| manual-wb-settings | Manual White Balance settings such as color correction<br>                                temperature and R/G/B gains. Used in manual white balance modes<ul class="ul" id="qtiqmmfsrc__ul_o5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">String. Default: "org.codeaurora.qcamera3.manualWB;"</li><br><br>                                </ul> |
| focus-mode | Indicates whether auto-focus is currently enabled, and the mode<br>                                it is in<ul class="ul" id="qtiqmmfsrc__ul_p5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Enum "GstCameraFocusMode" Default: 0, "off"<ul class="ul" id="qtiqmmfsrc__ul_zfg_lzm_myb"><br>                                            <li class="li"> (0): off - The auto focus routine is disabled</li><br><br>                                            <li class="li"> (1): auto - The auto focus routine is active</li><br><br>                                            <li class="li"> (2): macro - In this mode, the auto focus algorithm<br>                                                is optimized for focusing on objects very close to<br>                                                the camera</li><br><br>                                            <li class="li"> (3): continuous - In this mode, the AF algorithm<br>                                                modifies the lens position continually to attempt to<br>                                                provide a constantly-in-focus image stream</li><br><br>                                            <li class="li"> (4): edof - The camera device will produce images<br>                                                with an extended depth of field automatically; no<br>                                                special focusing operations need to be done before<br>                                                taking a picture</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| noise-reduction | Noise reduction filter mode<ul class="ul" id="qtiqmmfsrc__ul_q5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Enum "GstCameraNoiseReduction" Default: 1, "fast"<ul class="ul" id="qtiqmmfsrc__ul_c5m_lzm_myb"><br>                                            <li class="li"> (0): off - No noise reduction filter is<br>                                                applied.</li><br><br>                                            <li class="li"> (1): fast - TNR (Temporal Noise Reduction) Fast<br>                                                Mode</li><br><br>                                            <li class="li"> (2): hq - TNR (Temporal Noise Reduction) High<br>                                                Quality Mode</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| noise-reduction-tuning | A GstStructure describing noise reduction tuning<ul class="ul" id="qtiqmmfsrc__ul_r5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">String. Default: "org.quic.camera.anr_tuning;"</li><br><br>                                </ul> |
| zoom | Camera zoom rectangle ('&lt;X, Y, WIDTH, HEIGHT &gt;') in sensor<br>                                active pixel array coordinates<ul class="ul" id="qtiqmmfsrc__ul_s5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">GstValueArray of GValues of type "gint"</li><br><br>                                </ul> |
| defog-table | A GstStructure describing defog table<ul class="ul" id="qtiqmmfsrc__ul_t5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">String. Default: "org.quic.camera.defog;"</li><br><br>                                </ul> |
| ltm-data | A GstStructure describing local tone mapping data<ul class="ul" id="qtiqmmfsrc__ul_u5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">String. Default: "org.quic.camera.ltmDynamicContrast;"</li><br><br>                                </ul> |
| infrared-mode | Infrared mode<ul class="ul" id="qtiqmmfsrc__ul_v5t_dym_myb"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Enum "GstCameraIRMode" Default: 0, "off"<ul class="ul" id="qtiqmmfsrc__ul_vgy_lzm_myb"><br>                                            <li class="li"> (0): off - The infrared LED is OFF and cut filter<br>                                                is applied i.e. infrared light is blocked</li><br><br>                                            <li class="li"> (1): on - The infrared LED is ON and cut filter is<br>                                                removed i.e. infrared light is allowed</li><br><br>                                            <li class="li"> (2): auto - The infrared LED and cut filter are<br>                                                turned ON or OFF depending on the conditions</li><br><br>                                            <li class="li"> (3): cut-filter-only - The infrared LED is turned<br>                                                OFF and cut filter is applied i.e. IR light is<br>                                                blocked</li><br><br>                                            <li class="li"> (4): cut-filter-disable - Infrared cut filter is<br>                                                removed allowing IR light to pass. This mode is used<br>                                                for transitioning from 'cut-filter-only' mode i.e.,<br>                                                disabling only the cut filter</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| active-sensor-size | The active pixel array of the camera sensor ('&lt;X, Y, WIDTH,<br>                                HEIGHT &gt;') and it is filled only when the plug-in is in READY or<br>                                above state<ul class="ul" id="qtiqmmfsrc__ul_w5t_dym_myb"><br>                                    <li class="li">flags: readable, changeable in NULL, READY, PAUSED or<br>                                        PLAYING state</li><br><br>                                    <li class="li">GstValueArray of GValues of type "gint"</li><br><br>                                </ul> |
| sensor-mode | Force set Sensor Mode index (0-15). -1 for Auto selection<ul class="ul" id="qtiqmmfsrc__ul_x5t_dym_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Integer. Range: -1 - 15 Default: -1</li><br><br>                                </ul> |
| capture-metadata | Expose camera metadata object which is used for camera control.<br>                                If property get is used, caller must release metadata object<ul class="ul" id="qtiqmmfsrc__ul_eq1_tzt_q1c"><br>                                    <li class="li">flags: readable, writable, changeable in NULL, READY, PAUSED<br>                                        or PLAYING state</li><br><br>                                    <li class="li">Pointer</li><br><br>                                </ul> |
| camera-characteristics | Returns supported values for camera parameters as camera metadata<br>                                    object. Caller should take ownership and release the metadata<br>                                    object<br><ul class="ul" id="qtiqmmfsrc__ul_lfr_tzt_q1c"><br>                                    <li class="li">flags: readable, changeable in NULL, READY, PAUSED or<br>                                        PLAYING state</li><br><br>                                    <li class="li">Pointer</li><br><br>                                </ul> |

Table : Element signals for qtiqmmfsrc

| Signal | Function |
| --- | --- |
| result-metadata | `void user_function (GstElement* object, gpointer arg0,<br>                                    gpointer user_data);` |
| urgent-metadata | `void user_function (GstElement* object, gpointer arg0,<br>                                    gpointer user_data);` |

**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
Qualcomm GST plugins](https://docs.qualcomm.com/bundle/publicresource/80-70014-50/topics/qim-sdk-plugins.md) [Next Topic
v4l2h264dec](https://docs.qualcomm.com/bundle/publicresource/80-70014-50/topics/v4l2h264dec.md)