# Software

The video software modules and the corresponding binaries are available in the `meta-qcom-multimedia` image as part of the entire software build package. For more information on the procedure to sync and build the `meta-qcom-multimedia` image, see [Qualcomm Linux Build Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/introduction.html). Information on the video software, GStreamer plugins, and the V4L2 build instructions are described in the following sections.

## GStreamer plugins for video

The GStreamer plugins for video decoder and encoder are part of the IM SDK. Download the IM SDK to use the `v4l2h264dec`, `v4l2h265dec`, `v4l2h264enc`, `v4l2h265enc`, and the `v4l2vp9dec` GStreamer plugins.

The following table lists the GStreamer plugins and their corresponding reference links:

| Plug-in | Description/Reference link |
| --- | --- |
| `v4l2h264dec` | [Decode the H.264 video stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-50/v4l2h264dec.html) |
| `v4l2h265dec` | [Decode the H.265 video stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-50/v4l2h265dec.html) |
| `v4l2h264enc` | [Encode the H.264 video stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-50/v4l2h264enc.html) |
| `v4l2h265enc` | [Encode the H.265 video stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-50/v4l2h265enc.html) |
| `v4l2vp9dec` | [Decode the VP9 video stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-50/v4l2vp9dec.html) |

For more information on the steps to download and build, see [Qualcomm Intelligent Multimedia Product (QIMP) SDK](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-51/introduction.html).

## V4L2 for video

The following is the information related to the source tree, VPU driver build instructions, and the commands that help push the video firmware.

**Source tree**

The video software modules include the Adreno VPU driver, the video device tree, and the firmware binary.

- Adreno VPU driver BitBake recipe file.

    | Chip product | VPU driver BitBake recipe file path |
    | --- | --- |
    | QCS6490 | <br>`<workspacepace-path>/layers/meta-qcom-hwe/recipes-multimedia/video/qcom-videodlkm_1.0.bb` |
    | QCS9075/QCS8275 | <br>`<workspacepace-path>/layers/meta-qcom-hwe/recipes-multimedia/video/qcom-videodlkm_1.0.bb` |
    |  |  |
- Video device tree BitBake recipe file: The video device tree node is a part of the root device tree file.

    | Chip product | Device tree BitBake recipe file path |
    | --- | --- |
    | QCS6490 | <br>`<workspace-path>/layers/meta-qcom-hwe/recipes-multimedia/video/qcom-videodtb_1.0.bb` |
    | QCS9075/QCS8275 | <br>`<workspace-path>/layers/meta-qcom-hwe/recipes-multimedia/video/qcom-videodtb_1.0.bb` |
    |  |  |

**VPU driver build instructions**

Use `devtool` to add the debug changes and compile the VPU driver (`iris_vpu.ko`). To build the VPU driver, do the following:

1. To access the source code for VPU drivers, run the following BitBake command:

devtool modify qcom-videodlkm
        Copy to clipboard
2. Make the required debug changes to the VPU driver code available at: `<workspace-path>/build-qcom-wayland/workspace/sources/videodlkm`. After making the debug changes, build the VPU using the following command:

devtool build qcom-videodlkm
        Copy to clipboard
3. After compilation, the corresponding `iris_vpu.ko` will be available at: `<workspace-path>/build-qcom-wayland/workspace/sources/videodlkm/iris_vpu.ko`.
4. Push the compiled library to the device using the following command after you enter the SSH shell:

Note

You must enable SSH to access your Linux host. For instructions, see [Use SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/how_to.html#use-ssh).

mount -o rw,remount /
        Copy to clipboard
5. Change the following command according to your &lt;workspace-path&gt;, and the &lt;IP address of the device&gt;, and run the command on the Linux host:

scp <workspace-path>/build-qcom-wayland/workspace/sources/videodlkm/iris_vpu.ko root@<IP address of the device>/lib/modules/6.6.38-02695-g9d53679ea3d3/updates/
        Copy to clipboard

Note

When prompted for a password, enter `oelinux123`.
6. To see the updated debug changes, power OFF and then power ON the device.

**Video device tree**

The video device tree node is a part of the root device tree file. To access the VPU device tree, do the following:

1. To access the source code for the VPU device tree, use the following BitBake command:

devtool modify qcom-videodtb
        Copy to clipboard
2. Make the required debug changes to the VPU driver code available at: `<workspace-path>/build-qcom-wayland/workspace/sources/videodlkm`. After making the debug changes, build the VPU using the following command:

devtool build qcom-videodlkm
        Copy to clipboard

The VPU device tree code is available at: `<workspace-path>/build-qcom-wayland/workspace/sources/videodtb`

**Video firmware**

The video firmware binary is a prebuilt image from Qualcomm. Use the following command to push the video firmware binary to your device:

| Chip product | Command |
| --- | --- |
| QCS6490 | cd <workspace-path>/build-qcom-wayland/tmp-glibc/work/qcs6490_rb3gen2_vision_kit-qcom-linux/qcom-multimedia-image/1.0-r0/rootfs/lib/firmware/qcom/vpu-2.0<br>    Copy to clipboard<br><br><br>scp vpu20_1v.mbn root@<IP address of the device>/lib/firmware/qcom/vpu-2.0/<br>    Copy to clipboard<br><br><br>scp vpu20_1v_unsigned.mbn root@<IP address of the device>/lib/firmware/qcom/vpu-2.0/<br>    Copy to clipboard |
| QCS9075/QCS8275 | cd <workspace-path>/build-qcom-wayland/tmp-glibc/work/qcs9100_ride_sx-qcom-linux/qcom-multimedia-image/1.0-r0/rootfs/lib/firmware/qcom/vpu-3.0<br>    Copy to clipboard<br><br><br>scp vpu30_4v.mbn root@<IP address of the device>/lib/firmware/qcom/vpu-3.0/<br>    Copy to clipboard<br><br><br>scp vpu30_4v_unsigned.mbn root@<IP address of the device>/lib/firmware/qcom/vpu-3.0/<br>    Copy to clipboard |

Note

When prompted for a password, enter `oelinux123`.

Last Published: Dec 30, 2024

[Previous Topic
APIs and sample applications](https://docs.qualcomm.com/bundle/publicresource/80-70017-20/topics/interfaces.md) [Next Topic
Verify and debug](https://docs.qualcomm.com/bundle/publicresource/80-70017-20/topics/bring-up.md)

Source: [https://docs.qualcomm.com/doc/80-70017-20/topic/software.html](https://docs.qualcomm.com/doc/80-70017-20/topic/software.html)