# Software
Source: [https://docs.qualcomm.com/doc/80-70014-20/topic/software.html](https://docs.qualcomm.com/doc/80-70014-20/topic/software.html)
The video software modules are compiled as part of the entire software build package, and
the corresponding binaries are available in the `meta-qcom-multimedia`
image. For more information on the steps to sync and build the
`meta-qcom-multimedia` image, see [Qualcomm Linux Build Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-254/introduction.html). Information
related to the video software, V4L2 build instructions, and the GStreamer plugins is
provided here.
## V4L2 for video
The following is the information related to the source tree and build instructions
for the VPU driver, 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
| Product | VPU driver BitBake recipe file path |
| --- | --- |
| QCS6490 | <workspace-path>/layers/meta-qcom-hwe/recipes-multimedia/video/videodlkm\_1.0.bb |
- Video device tree BitBake recipe file: The video device tree node is a part
of the root device tree file.
| Product | Device tree BitBake recipe file path |
| --- | --- |
| QCS6490 | <workspace-path>/layers/meta-qcom-hwe/recipes-multimedia/video
/videodtb\_1.0.bb |
**VPU driver build instructions**
Use `devtool` to add the debug changes and compile the VPU driver
(`iris_vpu.ko`). Following are the instructions:
- The source code for VPU drivers is available for access with the following
BitBake command:
devtool modify videodlkmCopy to clipboard
You
can make the required debug changes to the VPU driver code that is
synced at:
<workspace-path>/build-qcom-wayland/workspace/sources/videodlkm.
After making the debug changes, use the following command to build the
VPU
driver:
devtool build videodlkmCopy to clipboard
- After the compilation is complete, the corresponding
`iris_vpu.ko` is created at:
<workspace-path>/build-qcom-wayland/workspace/sources/videodlkm/iris\_vpu.ko.
- Push the compiled library to the device using the following command after
you enter into the SSH shell:
Note: Before an SSH
command is run, ensure that you enable SSH in the Permissive mode. For
instructions, see [How to
SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-254/how_to.html#how-to-ssh-).
mount -o rw,remount /Copy to clipboard
Change
the following command according to your <workspace-path> and the
<IP address of the device> and run on the
host:
scp /build-qcom-wayland/workspace/sources/videodlkm/iris_vpu.ko root@/lib/modules/6.6.28/updates/Copy to clipboard
Note: When prompted for a
password, enter `oelinux123`.
- After executing the preceding commands, power Off and power On the target to
reflect the updated debug changes.
**Video device tree**
The video device tree node is a part of the root device tree file. The source code
for VPU device tree is available for access with the following BitBake command:
devtool modify videodtbCopy to clipboard
The VPU device tree code is synced 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:
| Product | Command |
| --- | --- |
| QCS6490 | cd /build-qcom-wayland/tmp-glibc/work/qcm6490-qcom-linux/qcom-multimedia-image/1.0-r0/rootfs/lib/firmware/qcom/vpu-2.0/Copy to clipboard
scp vpu20_1v.mbn root@/lib/firmware/qcom/vpu-2.0/Copy to clipboard
scp vpu20_1v_unsigned.mbn root@/lib/firmware/qcom/vpu-2.0/Copy to clipboard |
Note: When prompted for a
password, enter `oelinux123`.
## GStreamer plugins for video
The GStreamer plugins for video decoder and encoder are part of the QIM SDK. Download
the entire QIM SDK to use the `v4l2h264dec`,
`v4l2h265dec`, `v4l2h264enc`,
`v4l2h265enc`, and the `v4l2vp9dec` plugins. For
more information on the steps to download and build the QIM SDK, see [Qualcomm Linux Intelligent Multimedia SDK (QIM
SDK) Quick Start Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-51/introduction.html).
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-70014-50/v4l2h264dec.html) |
| `v4l2h265dec` | [Decode the H.265 video
stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-50/v4l2h265dec.html) |
| `v4l2h264enc` | [Encode the H.264 video
stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-50/v4l2h264enc.html) |
| `v4l2h265enc` | [Encode the H.265 video
stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-50/v4l2h265enc.html) |
| `v4l2vp9dec` | [Decode the VP9 video
stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-50/v4l2vp9dec.html) |
Last Published: Jul 12, 2024
[Previous Topic
Interfaces](https://docs.qualcomm.com/bundle/publicresource/80-70014-20/topics/interfaces.md) [Next Topic
Verify](https://docs.qualcomm.com/bundle/publicresource/80-70014-20/topics/bring-up.md)