# qtimltflite

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

The qtimltflite plugin shows the LiteRT capabilities (load and run the LiteRT models)
        as a GStreamer plugin.

This plugin does the following:

- Accepts a tensor prepared by the preprocessing elements such as
                qtimlvconverter.
- Produces the output tensor that's parsed by the postprocessing plugins such as
                qtimlvclassification, qtimlvdetection, qtimlvsegmentation, and qtimlvpose.
- Uses the LiteRT library.
- Uses the ION/DMA buffers allocated by the GstMLBufferPool custom buffer pool class
                through IOCTL commands to the kernel.

The model and delegate usage is as follows:

- To use a model, provide the absolute path of the model through the model
                    property.
    After it's loaded, the model file provides the input and output
                    capabilities:

    - Number of tensors
    - Dimensions
    - Type
- If a delegate isn't specified, the plugin executes the model operations on CPU.
- To select a different delegate, set the delegate property accordingly. For more
                information, see the [Table : Element properties for qtimltflite](https://docs.qualcomm.com/doc/80-70022-50/topic/qtimltflite.html#qtimltflite__table_txf_2k4_myb).

Figure : GstBuffer workflow with qtimltflite
            
            <!--?xml version="1.0" encoding="UTF-8"?-->
<svg xmlns="http://www.w3.org/2000/svg" width="1113.368011474609375" height="599.267288208007812" viewbox="0 0 1113.368011474609375 599.267288208007812">
  <g id="Layer_1" data-name="Layer 1">
    <g>
      <rect x=".499847412109375" y=".499893188476562" width="1112.36767578125" height="598.267578125" rx="7.5" ry="7.5" style="fill: #fafafa;"></rect>
      <path d="M1105.368011474609375,1c3.85986328125,0,7,3.14013671875,7,7v583.267288208007812c0,3.85986328125-3.14013671875,7-7,7H8.000137329101562c-3.85986328125,0-7.000137329101562-3.14013671875-7.000137329101562-7V8c0-3.85986328125,3.140274047851562-7,7.000137329101562-7h1097.367874145507812M1105.368011474609375,0H8.000137329101562C3.58184814453125,0,0,3.58184814453125,0,8v583.267288208007812c0,4.41827392578125,3.58184814453125,8,8.000137329101562,8h1097.367874145507812c4.41827392578125,0,8-3.58172607421875,8-8V8c0-4.41815185546875-3.58172607421875-8-8-8h0Z" style="fill: #d2d7e1;"></path>
    </g>
    <text transform="translate(526.289520263671875 31.536199443042278)" style="font-family: Roboto-Bold, Roboto; font-size: 16px; font-weight: 700;"><tspan x="0" y="0">GST BIN</tspan></text>
    <g>
      <rect x="376.094220579036119" y="49.733135925414899" width="361.179417728646513" height="214.270053161500073" rx="4" ry="4" style="fill: #007884;"></rect>
      <text transform="translate(520.20367431640625 70.405319213867188)" style="fill: #fff; font-family: Roboto-Medium, Roboto; font-size: 16px; font-weight: 500;"><tspan x="0" y="0">GstBuffer </tspan></text>
      <text transform="translate(389.17926025390625 100.421737670898438)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0" style="font-family: Roboto-Medium, Roboto; font-weight: 500;">+ GstMemory:</tspan><tspan x="100.609375" y="0" xml:space="preserve" style="font-family: Roboto-Regular, Roboto;"> Contains a single tensor</tspan><tspan style="font-family: Roboto-Regular, Roboto;"><tspan x="10.171875" y="19.2001953125" xml:space="preserve">                       Example: 1x513x513x3</tspan></tspan></text>
      <text transform="translate(389.17926025390625 143.066085815429688)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0" style="font-family: Roboto-Medium, Roboto; font-weight: 500;">+ GstMemory:</tspan><tspan x="100.609375" y="0" xml:space="preserve" style="font-family: Roboto-Regular, Roboto;"> Next tensor and so on...</tspan></text>
      <text transform="translate(389.108963012695312 203.575973510742188)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0" style="font-family: Roboto-Medium, Roboto; font-weight: 500;">+ GstVideoMeta:</tspan><tspan x="119.125" y="0" xml:space="preserve" style="font-family: Roboto-Regular, Roboto;"> Describes the raw data </tspan><tspan style="font-family: Roboto-Regular, Roboto;"><tspan x="0" y="19.2001953125" xml:space="preserve" style="letter-spacing: 2.00244140625em;">		</tspan><tspan x="72" y="19.2001953125" xml:space="preserve">             of a single tensor</tspan></tspan></text>
      <text transform="translate(389.108963012695312 245.649459838867188)" style="fill: #fff; font-size: 16px;"><tspan x="0" y="0" style="font-family: Roboto-Medium, Roboto; font-weight: 500;">+ GstVideoMeta:</tspan><tspan x="119.125" y="0" xml:space="preserve" style="font-family: Roboto-Regular, Roboto;"> Meta for the next tensor entry</tspan></text>
      <text transform="translate(389.108955383300781 168.162307739257812)" style="fill: #fff; font-family: Roboto-Medium, Roboto; font-size: 16px; font-weight: 500;"><tspan x="0" y="0">+ ...</tspan></text>
      <line x1="376.094220579036119" y1="79.737678981740828" x2="737.273638307682631" y2="79.737678981740828" style="fill: none; stroke: #b3b7bf; stroke-miterlimit: 10;"></line>
      <line x1="376.094220579036119" y1="178.146369404158577" x2="737.273638307682631" y2="178.146369404158577" style="fill: none; stroke: #b3b7bf; stroke-miterlimit: 10;"></line>
    </g>
    <line x1="556.684020996108302" y1="280.104256958065889" x2="556.684020996108302" y2="264.003189086914972" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <g>
      <g>
        <text transform="translate(912.5238037109375 575.3587646484375)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Qualcomm </tspan></text>
        <rect x="892.272803538213338" y="563.267288208007812" width="16" height="16" rx="2" ry="2" style="fill: #2a2aea;"></rect>
      </g>
      <g>
        <text transform="translate(1011.1055908203125 575.3587646484375)" style="font-family: Roboto-Regular, Roboto; font-size: 14px;"><tspan x="0" y="0">Open source</tspan></text>
        <rect x="990.854584951071956" y="563.267288208007812" width="16" height="16" rx="2" ry="2" style="fill: #007884;"></rect>
      </g>
    </g>
  </g>
  <g id="Layer_2" data-name="Layer 2">
    <g>
      <rect x="20.000071230711896" y="295.641959108905212" width="180" height="50" rx="4.000000000000003" ry="4.000000000000003" style="fill: #007884;"></rect>
      <text transform="translate(30.992355346679688 325.318099975585938)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">ML pre-process plugin</tspan></text>
    </g>
    <g>
      <line x1="200.500095367431641" y1="320.641952514648438" x2="459.785369873047784" y2="320.641952514648438" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="458.618179321289062 324.631027221679688 465.526351928710938 320.641952514648438 458.618179321289062 316.652908325195312 458.618179321289062 324.631027221679688"></polygon>
    </g>
    <g>
      <line x1="649.68402099609375" y1="320.641952514648438" x2="905.126983642578125" y2="320.641952514648438" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
      <polygon points="903.959747314453125 324.631027221679688 910.867950439453125 320.641952514648438 903.959747314453125 316.652908325195312 903.959747314453125 324.631027221679688"></polygon>
    </g>
    <g>
      <rect x="466.684020996108302" y="295.641959108905212" width="180" height="50" rx="4" ry="4" style="fill: #2a2aea;"></rect>
      <text transform="translate(522.504425048828125 325.317672729492188)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">qtimltflite</tspan></text>
    </g>
    <text transform="translate(265.388870239257812 341.242324829101562)" style="font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">neural-network/tensors</tspan></text>
    <text transform="translate(712.073089599609375 341.242324829101562)" style="font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">neural-network/tensors</tspan></text>
    <g>
      <rect x="209.014176859149302" y="391.737572879545041" width="695.339688273918" height="151.186655053183131" rx="4" ry="4" style="fill: #d2d7e1;"></rect>
      <text transform="translate(221.484630584716797 414.406448364257812)" style="font-size: 16px;"><tspan x="0" y="0" style="font-family: Roboto-Medium, Roboto; font-weight: 500;">neural-network/tensors</tspan><tspan x="168.1796875" y="0" xml:space="preserve" style="font-family: Roboto-Regular, Roboto;"> have the following common rules: </tspan><tspan x="0" y="19.2001953125" style="font-family: Roboto-Medium, Roboto; font-weight: 500;">dimensions: (</tspan><tspan x="96.7734375" y="19.2001953125" style="font-family: Roboto-Regular, Roboto;">GstArray) - format is tensor dimension values separated by ',' and marked with </tspan><tspan style="font-family: Roboto-Regular, Roboto;"><tspan x="0" y="38.39990234375">delimiters ‘&lt;’ for beginning and ‘&gt;’ for end. </tspan></tspan><tspan style="font-family: Roboto-Regular, Roboto;"><tspan x="0" y="57.60009765625" xml:space="preserve"># Example-&gt;  &lt; &lt;5, 300, 300, 1&gt;, &lt;1, 1, 1000, 1&gt; &gt;</tspan></tspan><tspan style="font-family: Roboto-Regular, Roboto;"><tspan x="0" y="76.7998046875">#</tspan></tspan><tspan style="font-family: Roboto-Regular, Roboto;"><tspan x="0" y="96">#</tspan></tspan><tspan x="0" y="115.2001953125" style="font-family: Roboto-Medium, Roboto; font-weight: 500;">type: </tspan><tspan x="38.921875" y="115.2001953125" style="font-family: Roboto-Regular, Roboto;">(string) {UINT8, INT8, UINT16, INT16, UINT32, INT32, UINT64, INT64, FLOAT32, FLOAT64} </tspan></text>
      <g>
        <line x1="369.012443542480469" y1="475.254531860351562" x2="369.012443542480469" y2="493.008071899414062" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="365.02337646484375 491.840835571289062 369.012443542480469 498.749038696289062 373.001510620117188 491.840835571289062 365.02337646484375 491.840835571289062"></polygon>
      </g>
      <g>
        <line x1="491.51025390625" y1="475.254531860351562" x2="491.51025390625" y2="493.008071899414062" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
        <polygon points="487.521194458007812 491.840835571289062 491.51025390625 498.749038696289062 495.49932861328125 491.840835571289062 487.521194458007812 491.840835571289062"></polygon>
      </g>
      <text transform="translate(324.687469482421875 510.406143188476562)" style="font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">First tensor</tspan></text>
      <text transform="translate(435.818572998046875 510.565750122070312)" style="font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">Second tensor</tspan></text>
    </g>
    <g>
      <polyline points="795.025970458984375 313.106674194335938 795.025970458984375 280.104263305664972 318.046234130859375 280.104263305664972 318.046234130859375 313.106674194335938" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
      <polygon points="799.015045166015625 311.939498901367188 795.025970458984375 318.847671508789062 791.036956787109375 311.939498901367188 799.015045166015625 311.939498901367188"></polygon>
      <polygon points="314.057170867919922 311.939498901367188 318.046234130859375 318.847671508789062 322.035297393798828 311.939498901367188 314.057170867919922 311.939498901367188"></polygon>
    </g>
    <line x1="556.684020996108302" y1="373.636505008393215" x2="556.684020996108302" y2="391.737572879545041" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></line>
    <g>
      <polyline points="795.025970458984375 352.634078979492188 795.025970458984375 373.636489868164062 318.046234130859375 373.636489868164062 318.046234130859375 352.634078979492188" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></polyline>
      <polygon points="791.036956787109375 353.801284790039062 795.025970458984375 346.893112182617188 799.015045166015625 353.801284790039062 791.036956787109375 353.801284790039062"></polygon>
      <polygon points="322.035297393798828 353.801284790039062 318.046234130859375 346.893112182617188 314.057170867919922 353.801284790039062 322.035297393798828 353.801284790039062"></polygon>
    </g>
    <rect x="939.464726240405071" y="336.786942606351658" width="127.806489042197427" height="29.362132395812296" rx="4" ry="4" style="fill: #007884;"></rect>
    <g>
      <rect x="913.367970761504694" y="295.641959108905212" width="180" height="77.994545899488003" rx="4" ry="4" style="fill: none; stroke: #000; stroke-miterlimit: 10;"></rect>
      <text transform="translate(934.922760009765625 325.317672729492188)" style="font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">Postprocess plugin</tspan></text>
      <text transform="translate(961.066741943359375 357.143661499023438)" style="fill: #fff; font-family: Roboto-Regular, Roboto; font-size: 16px;"><tspan x="0" y="0">Sub module</tspan></text>
    </g>
  </g>
</svg>

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

The following tables provide information on pad templates and element properties of
                qtimltflite. For use cases, see [LiteRT use cases](https://docs.qualcomm.com/doc/80-70022-50/topic/tensorflow-lite-use-cases.html).

## Pad configuration

| Pad Name | Capabilities | Capabilities | Capabilities |
| --- | --- | --- | --- |
| SINK template: 'sink'<br><ul class="ul" id="qtimltflite__ul_ccv_n4v_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> sink</li><br><br>                                </ul> | neural-network/tensors | type: | { (string)UINT8, (string)INT32, (string)FLOAT32 } |
| SRC template: 'src'<br><ul class="ul" id="qtimltflite__ul_s51_44v_q1c"><br>                                    <li class="li"><em class="ph i">Availability:</em> Always</li><br><br>                                    <li class="li"><em class="ph i">Direction:</em> source</li><br><br>                                </ul> | neural-network/tensors | type: | { (string)UINT8, (string)INT32, (string)FLOAT32 } |

##  Element configuration

Table : Element properties for qtimltflite

| Property | Description |
| --- | --- |
| name | The name of the object.<ul class="ul" id="qtimltflite__ul_uxf_2k4_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">String. Default: "mlTFLite0"</li><br><br>                                </ul> |
| parent | The parent of the object.<ul class="ul" id="qtimltflite__ul_vxf_2k4_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Object of type "GstObject"</li><br><br>                                </ul> |
| model | Model filename.<ul class="ul" id="qtimltflite__ul_xxf_2k4_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">String. Default: null</li><br><br>                                </ul> |
| delegate | Delegate part or all graph execution to another executor.<ul class="ul" id="qtimltflite__ul_yxf_2k4_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Enum "GstMLTFLiteDelegate" Default: 0, "none"<ul class="ul" id="qtimltflite__ul_kxb_fk4_myb"><br>                                            <li class="li">(0): none - No delegate, CPU is used for all<br>                                                operations</li><br><br>                                            <li class="li">(1): nnapi-dsp - Run the processing on the DSP<br>                                                through the NN API. Unsupported operations fall back<br>                                                on NPU, GPU or CPU</li><br><br>                                            <li class="li">(2): nnapi-gpu - Run the processing on the GPU<br>                                                through the NN API. Unsupported operations fall back<br>                                                on DSP, NPU or CPU</li><br><br>                                            <li class="li">(3): nnapi-npu - Run the processing on the NPU<br>                                                through the NN API. Unsupported operations fall back<br>                                                on DSP, GPU, or CPU</li><br><br>                                            <li class="li">(4): hexagon - Run the processing directly on the<br>                                                Hexagon DSP</li><br><br>                                            <li class="li">(5): gpu - Run the processing directly on the<br>                                                GPU</li><br><br>                                            <li class="li">(6): xnnpack - Run inferences using xnnpack cpu<br>                                                runtime</li><br><br>                                        </ul><br></li><br><br>                                </ul> |
| threads | Number of threads when running operations on the CPU delegate.<ul class="ul" id="qtimltflite__ul_zxf_2k4_myb"><br>                                    <li class="li">flags: readable, writable</li><br><br>                                    <li class="li">Unsigned Integer. Range: 1 - 4 Default: 1</li><br><br>                                </ul> |

**Parent Topic:** [Configure ML plugins](https://docs.qualcomm.com/doc/80-70022-50/topic/inferencing-plugins.html)

Last Published: Feb 20, 2026

[Previous Topic
qtimlsnpe](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/qtimlsnpe.md) [Next Topic
qtimlqnn](https://docs.qualcomm.com/bundle/publicresource/80-70022-50/topics/qtimlqnn.md)