# qtiqmmfsrc

Source: [https://docs.qualcomm.com/doc/80-70015-50/topic/qtiqmmfsrc.html](https://docs.qualcomm.com/doc/80-70015-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 the transition between the NULL and READY states, 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 to create the source streams for each
                pad.
- The session streams are started when transition is done to the 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-70015-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,<br>                                        PAUSED, 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,<br>                                        PAUSED, 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,<br>                                        PAUSED, 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 | The 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 the camera as the 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 is used to set 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 exposure metering is<br>                                                calculated as average from the whole frame.</li><br><br>                                            <li class="li"> (1): center-weighted - The camera exposure metering<br>                                                is calculated from the center region of the<br>                                                frame.</li><br><br>                                            <li class="li"> (2): spot - The camera exposure metering is<br>                                                calculated from a chosen spot.</li><br><br>                                            <li class="li"> (6): custom - The camera exposure metering is<br>                                                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 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 enabled along with its mode.<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 produces images with<br>                                                an extended depth of field automatically; no special<br>                                                focusing operations must be done before taking a<br>                                                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 the 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, that is, infrared light is blocked.</li><br><br>                                            <li class="li"> (1): on - The infrared LED is ON and cut filter is<br>                                                removed, that is, 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, that is, 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, that<br>                                                is, 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 plugin 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 that is used for camera control. If<br>                                the get property 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. The caller should take ownership and release the<br>                                    metadata 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:** [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
Display, camera, encode and decode plugins](https://docs.qualcomm.com/bundle/publicresource/80-70015-50/topics/display-plugins.md) [Next Topic
qtivcomposer](https://docs.qualcomm.com/bundle/publicresource/80-70015-50/topics/qtivcomposer.md)