# qtimlvsegmentation
The qtimlvsegmentation plugin processes output tensors of an image segmentation/depth estimation model from the ML inference plugin (such as qtimltflite, qtimlsnpe, and qtimlqnn) into result of predictions.
Note
This plugin is going to be deprecated.
The processed output is an image mask (GstCaps: video/x-raw). [GstCaps](https://gstreamer.freedesktop.org/documentation/gstreamer/gstcaps.html) determines the dimensions and format, which is applied over the original image using qtivcomposer.
For this mask, the element uses the CPU based [Cairo](https://www.cairographics.org) 2D graphics library to draw the prediction results in ION/DMA buffers. The GstImageBufferPool custom buffer pool class allocates the ION/DMA buffers through IOCTL commands to the kernel.
The module and labels properties of the plugin determine the method for the postprocessing operations.
- The module property specifies the postprocessing module. It's populated dynamically at runtime with the libraries available in `/usr/lib/gstreamer-1.0/ml/modules/` containing the prefix "`ml-vsegmentation-`-".
- The labels property is a customized text file different for each machine learning detection model that you must provide for the prediction labels.
**Figure : GstBuffer workflow with qtimlvsegmentation**
## 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) → GstMLVideoSegmentation
The following tables provide information on pad templates and element properties of qtimlvsegmentation. For use cases, see the segmentation use cases in [LiteRT use cases](https://docs.qualcomm.com/doc/80-70029-50/topic/tensorflow-lite-use-cases.html) and [Qualcomm Neural Processing SDK use cases](https://docs.qualcomm.com/doc/80-70029-50/topic/qualcomm-neural-processing-sdk-use-cases.html).
## Pad configuration
| Pad Name | Capabilities | Capabilities | Capabilities |
| --- | --- | --- | --- |
| SINK template: 'sink'
Availability: On request
Direction: sink
Availability: Always
Direction: source
Availability: Always
Direction: source
flags: readable, writable
String. Default: "mlvideosegmentation0"
flags: readable, writable
Object of type "GstObject"
flags: readable, writable
Boolean. Default: false
flags: readable, writable
Enum "GstMLVideoSegmentationModules" Default: 0, "none"
(0): none - No module, default invalid mode
(1): deeplab-argmax - ml-vsegmentation-deeplab-argmax
(2): midas-v2 - ml-vsegmentation-midas-v2
flags: readable, writable
String. Default: null