# 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` or `qcom-multimedia-prop-image` 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-80022-254/build_landing_page.html). ## Verify video software This section provides information on the video recipe and the steps required to build the VPU driver. The following BitBake recipe file is used to build the Adreno VPU driver in the `qcom-multimedia-prop-image`: > > > `/recipes-kernel/iris-video-module/iris-video-dlkm_git.bb` ### VPU driver build instructions - qcom-multimedia-prop-image 1. To apply code changes to the video driver, place your patch files in the following directory: recipes-kernel/iris-video-module/iris-video-dlkm/ Copy to clipboard Follow the steps to create a patch file: > > > 1. Clone the video driver repository using the following command: > > > git clone https://github.com/qualcomm-linux/video-driver.git > Copy to clipboard > 2. Change to the cloned repository directory using the following command: > > > cd video-driver > Copy to clipboard > 3. Make the required code changes and commit the changes locally. > 4. Create a patch file from the latest commit using the following command: > > > git format-patch HEAD~1 > Copy to clipboard > 5. Open the generated patch file and add the following line: > > > Upstream-Status: Pending > Copy to clipboard > 6. Copy the patch file to the location specified in the `iris-video-dlkm` recipe. 2. Update the `SRC_URI` in the `recipes-kernel/iris-video-module/iris-video-dlkm_.bb` file to include the patch files as follows: SRC_URI = " \ git://github.com/qualcomm-linux/video-driver.git;protocol=https;branch=video.qclinux.main \ file://0001-video-driver-follow-v4l2_fh_add-_del-API-changes.patch \ file://0001-video-driver-stop-playing-tricks-with-Kbuild.patch \ " Copy to clipboard 3. To build the Adreno video driver, run the following commands : kas shell meta-qcom/ci/:meta-qcom/ci/qcom-distro-prop-image.yml:meta-qcom/ci/linux-qcom-6.18.yml bitbake iris-video-dlkm Copy to clipboard Note For various `` combinations, see [Release Notes](https://docs.qualcomm.com/doc/80-80022-300). 4. After compilation, the corresponding `iris_vpu.ko` is available at: `\build\tmp\sysroots-components\\iris-video-dlkm\usr\lib\modules\\updates\video\>` 5. Enter the SSH shell and transfer the compiled library to the device using the following command: Note You must start the SSH shell to access your Linux host computer. For instructions, see [Sign in using SSH](https://docs.qualcomm.com/bundle/publicresource/topics/80-80022-254/how_to.html#use-ssh). mount -o rw,remount / Copy to clipboard 6. Change the following command according to your ``, and the ``, and run the following command on the Linux host computer: scp \build\tmp\sysroots-components\\iris-video-dlkm\usr\lib\modules\\updates\video\iris_vpu.ko root@/lib/modules//updates/video/ Copy to clipboard Note When prompted for a password, enter `oelinux123`. 7. To see the updated debug changes, power OFF and then power ON the device. ### VPU driver build instructions - qcom-multimedia-image 1. To apply code changes to the video driver, place your patch files in the following directory : \recipes-kernel\linux\linux-qcom-_git.bb Copy to clipboard Follow the steps to create a patch file: > > > 1. Clone kernel where the video driver is available: > > > git clone https://github.com/qualcomm-linux/kernel.git > Copy to clipboard > 2. Change to the cloned repository directory: > > > cd drivers/media/platform/qcom > Copy to clipboard > > - QCS6490 uses: `drivers/media/platform/qcom/venus`. > - Dragonwing IQ-8275/Dragonwing IQ-9075 uses: `drivers/media/platform/qcom/iris` > 3. Make the required code changes and commit the changes locally. > 4. Create a patch file from the latest commit: > > > git format-patch HEAD~1 > Copy to clipboard > 5. Open the generated patch file and add the following line: > > > Upstream-Status: Pending > Copy to clipboard > 6. Copy the patch file to the location specified in the kernel recipe. 2. Update the `SRC_URI` in the recipe `(.bb)` file to include the patch files as the following: SRC_URI = "git://github.com/qualcomm-linux/kernel.git;${SRCBRANCH};protocol=https" SRC_URI += "file://0001-tools-use-basename-to-identify-file-in-gen-mach-type.patch" SRC_URI += "file://0001-PR_308.patch" Copy to clipboard 3. To build the Adreno video driver, run the following commands: kas shell meta-qcom/ci/:meta-qcom/ci/qcom-distro-image.yml:meta-qcom/ci/linux-qcom-6.18.yml bitbake qcom-multimedia-image Copy to clipboard Note For different `` combinations, see [Release Notes](https://docs.qualcomm.com/doc/80-80022-300). 4. Flash the `qcom-multimedia-image`. For more information, see [Qualcomm Linux Build Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-80022-254/build_landing_page.html). ## GStreamer plugins for video The Qualcomm IM SDK includes GStreamer plugins for video decoding and encoding. Download the Qualcomm IM SDK to use the `v4l2h264dec`, `v4l2h265dec`, `v4l2h264enc`, `v4l2h265enc`, and `v4l2vp9dec` plugins. The following table lists the GStreamer plugins and their corresponding reference links: Table: GStreamer plugins for video | Plug-in | Description/reference link | | --- | --- | | `v4l2h264dec` | [Decode the H.264 video stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-80022-50/v4l2h264dec.html) | | `v4l2h265dec` | [Decode the H.265 video stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-80022-50/v4l2h265dec.html) | | `v4l2h264enc` | [Encode the H.264 video stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-80022-50/v4l2h264enc.html) | | `v4l2h265enc` | [Encode the H.265 video stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-80022-50/v4l2h265enc.html) | | `v4l2vp9dec` | [Decode the VP9 video stream](https://docs.qualcomm.com/bundle/publicresource/topics/80-80022-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-80022-51/qmi-sdk-qsg-landing-page.html). ## Next steps - [Troubleshoot video](https://docs.qualcomm.com/doc/80-80022-20/topic/bring-up.html#concept-lkc-ny3-bzb) Last Published: May 14, 2026 [Previous Topic Video architecture](https://docs.qualcomm.com/bundle/publicresource/80-80022-20/topics/architecture.md) [Next Topic Explore video sample applications](https://docs.qualcomm.com/bundle/publicresource/80-80022-20/topics/interfaces.md)