# Build video source components

The video software stack consists of GStreamer plugins and V4L2 components.

- V4L2 source components 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-70023-254/build_landing_page.html).
- GStreamer plugins are part of Qualcomm IM SDK.

## Verify video software

This section provides information on the video source tree and device tree locations, steps to build the VPU driver, commands to transfer the video firmware binary to your device, and also know about the encode and decode video APIs in GStreamer plugins.

### V4L2 for video

This section provides information related to the source tree, instructions to build the VPU driver, and the commands that help push the video firmware.

**Video 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 / Dragonwing IQ-8275 / Dragonwing IQ-9075 | <br>`<workspace-path>/layers/meta-qcom-hwe/recipes-multimedia/video/qcom-videodlkm_1.0.bb` |
    |  | <br>`<workspace-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 / Dragonwing IQ-8275 / Dragonwing IQ-9075 | <br>`<workspace-path>/layers/meta-qcom-hwe/recipes-multimedia/video/qcom-videodtb_1.0.bb` |
    |  | <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, follow the steps:

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

MACHINE=<machine> DISTRO=qcom-wayland source setup-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-wayland source setup-environment
        # source setup-environment: Sets the environment, creates the build directory build-qcom-wayland,
        # and enters into build-qcom-wayland directory.
        Copy to clipboard

Note

For various `<machine>` and `<override>` combinations, see [Release Notes](https://docs.qualcomm.com/doc/80-70023-300).

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/qcom-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` is available at: `<workspace-path>/build-qcom-wayland/workspace/sources/qcom-videodlkm/qcom/opensource/video-driver/iris_vpu.ko`.
4. After you enter the SSH shell, transfer the compiled library to the device using this command:

Note

You must start SSH to access your Linux host computer. For instructions, see [Sign in using SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70023-254/how_to.html#use-ssh).

mount -o rw,remount /
        Copy to clipboard
5. Change the following command according to your `<workspace-path>`, and the `<IP address of the device>`, and run the command on the Linux host computer:

scp <workspace-path>/build-qcom-wayland/workspace/sources/qcom-videodlkm/qcom/opensource/video-driver/iris_vpu.ko root@<IP address of the device>/lib/modules/6.6.97-qli-1.6-ver.1.0-04996-g173807c10943-dirty/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 root device tree file includes the video device tree node. To access the VPU device tree, follow the steps:

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/qcom-videodtb`. After making the debug changes, build the VPU using the following command:

devtool build qcom-videodtb
        Copy to clipboard

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

**Video firmware**

Qualcomm provides the video firmware binary as a prebuilt image. Use the following commands to transfer the 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 |
| Dragonwing IQ-8275 | cd <workspace-path>/build-qcom-wayland/tmp-glibc/work/qcs8275_iq_8275_evk_pro_sku-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 |
| Dragonwing IQ-9075 | cd <workspace-path>/build-qcom-wayland/tmp-glibc/work/qcs9075_iq_9075_evk-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`.

### GStreamer plugins for video

The Qualcomm IM SDK includes GStreamer plugins for video decoder and encoder. Download the Qualcomm 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-70023-50/v4l2h264dec.html) |
| `v4l2h265dec` | [Decode the H.265 video stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-70023-50/v4l2h265dec.html) |
| `v4l2h264enc` | [Encode the H.264 video stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-70023-50/v4l2h264enc.html) |
| `v4l2h265enc` | [Encode the H.265 video stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-70023-50/v4l2h265enc.html) |
| `v4l2vp9dec` | [Decode the VP9 video stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-70023-50/v4l2vp9dec.html) |

For information on the steps to download and build, see [Qualcomm Intelligent Multimedia SDK (IM SDK) Quickstart](https://docs.qualcomm.com/bundle/publicresource/topics/80-70023-51/qmi-sdk-qsg-landing-page.html).

## Next steps

- [Troubleshoot video](https://docs.qualcomm.com/doc/80-70023-20/topic/bring-up.html#concept-lkc-ny3-bzb)

Last Published: Dec 23, 2025

[Previous Topic
Video architecture](https://docs.qualcomm.com/bundle/publicresource/80-70023-20/topics/architecture.md) [Next Topic
Explore video sample applications](https://docs.qualcomm.com/bundle/publicresource/80-70023-20/topics/interfaces.md)

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