Skip to main content
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-proprietary-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.

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-proprietary-image:
<meta-qcom workspace>/recipes-kernel/iris-video-module/iris-video-dlkm_git_<version>.bb

Note:

version is the latest tag of the recipe. For example: 1.0.10, i.e., iris-video-dlkm_git_1.0.10.bb.

VPU driver build instructions - qcom-multimedia-proprietary-image

Following are the instructions to apply code changes to the video driver:
  1. Follow the steps to create a patch file:
    a. Clone the video driver repository using the following command:
    git clone https://github.com/qualcomm-linux/video-driver.git -b video.qclinux.main
    
    b. Change to the cloned repository directory using the following command:
    cd video-driver
    
    c. Make the required code changes and commit the changes locally. d. Create a patch file from the latest commit using the following command:
    git format-patch HEAD~1
    
    e. Open the generated patch file and add the following line after signed-off:
    Upstream-Status: Pending
    
    f. Copy the patch file to following location in the iris-video-dlkm recipe.
    recipes-kernel/iris-video-module/iris-video-dlkm/
    
  2. Update the SRC_URI in the recipes-kernel/iris-video-module/iris-video-dlkm_<version>.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 \
    "
    
  3. To build the Adreno video driver, run the following commands :
    kas shell meta-qcom/ci/<MACHINE>:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/linux-qcom-6.18.yml
    bitbake iris-video-dlkm
    
    For example:
    kas shell meta-qcom/ci/rb3gen2-core-kit.yml:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/linux-qcom-6.18.yml:meta-qcom/ci/lock.yml
    bitbake iris-video-dlkm
    

    Note:

    For various <machine> combinations, see Release Notes.

  4. After compilation, the corresponding iris_vpu.ko is available at: <meta-qcom workspace>\build\tmp\sysroots-components\<MACHINE>\iris-video-dlkm\usr\lib\modules\<kernel version>\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

    mount -o rw,remount /
    
  6. Change the following command according to your <workspace-path>, and the <IP address of the device>, and run the following command on the Linux host computer:
    scp <meta-qcom workspace>\build\tmp\sysroots-components\<MACHINE>\iris-video-dlkm\usr\lib\modules\<kernel version>\updates\video\iris_vpu.ko root@<IP address of the device>/lib/modules/<kernel version>/updates/video/
    

    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

Follwing are the instructions to apply code changes to the video driver:
  1. Follow the steps to create a patch file:
    a. Clone kernel where the video driver is available:
    git clone https://github.com/qualcomm-linux/kernel.git
    
    b. Change to the cloned repository directory:
    cd drivers/media/platform/qcom
    
    • QCS615 uses: drivers/media/platform/qcom/venus.
    • Dragonwing IQ-8275/Dragonwing IQ-9075/QCS6490 uses: drivers/media/platform/qcom/iris
    c. Make the required code changes and commit the changes locally. d. Create a patch file from the latest commit:
    git format-patch HEAD~1
    
    e. Open the generated patch file and add the following line after Signed-off:
    Upstream-Status: Pending
    
    f. Copy the patch file to below location in the kernel recipe.
    <meta qcom workspace>\recipes-kernel\linux\linux-qcom-<kernel version>_git.bb
    
  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"
    
  3. To build the Adreno video driver, run the following commands:
    kas shell meta-qcom/ci/<MACHINE>:meta-qcom/ci/qcom-distro-image.yml:meta-qcom/ci/linux-qcom-6.18.yml
    bitbake qcom-multimedia-image
    
    For example:
    kas shell meta-qcom/ci/rb3gen2-core-kit.yml:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/linux-qcom-6.18.yml:meta-qcom/ci/lock.yml
    bitbake qcom-multimedia-image
    

    Note:

    For different <machine> combinations, see Release Notes.

  4. Flash the qcom-multimedia-image. For more information, see Qualcomm Linux Build Guide.

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
For information on the steps to download and build, see Qualcomm Intelligent Multimedia SDK (IM SDK) quickstart.

Next steps