Integrating the VCU and GStreamer Patches - 2023.1 English

H.264/H.265 Video Codec Unit v1.2 Solutions LogiCORE IP Product Guide (PG252)

Document ID
PG252
Release Date
2023-05-16
Version
2023.1 English
  1. Extract PetaLinux BSP.
  2. Create "recipe-multimedia" folder in project-spec/meta-user folder.
    cd project-spec/meta-user
    mkdir recipe-multimedia
  3. For gstreamer patches, follow below steps
    1. Create “gstreamer” directory in recipe-multimedia folder.
      cd recipe-multimedia
      mkdir gstreamer
    2. There are 5 different recipes files for gstreamer that downloads the code and compile
      • gstreamer1.0_%.bbappend
      • gstreamer1.0-omx_%.bbappend
      • gstreamer1.0-plugins-bad_%.bbappend
      • gstreamer1.0-plugins-base_%.bbappend
      • gstreamer1.0-plugins-good_%.bbappend
    3. Depending upon patches to which gstreamer package it belongs to, bbappend file for that package needs to be created to get those patches applied and compiled on latest source code. For example, if patch fix is for gst-omx, follow these steps
      1. Create a gstreamer1.0-omx directory in the recipe-multimedia/gstreamer folder
        cd gstreamer
        mkdir gstreamer1.0-omx
        
      2. Copy gst-omx patches in gstreamer1.0-omx directory.
        cp test1.patch recipe-multimedia/gstreamer/gstreamer1.0-omx
        cp test2.patch recipe-multimedia/gstreamer/gstreamer1.0-omx
      3. Create a gstreamer1.0-omx_%.bbappend file in recipe-multimedia/gstreamer folder.
        vi gstreamer1.0-omx_%.bbappend
      4. Append the following lines in the gstreamer1.0-omx_%.bbappend file.
        FILESEXTRAPATHS_prepend: = "${THISDIR}/gstreamer1.0-omx:"
        SRC_URI_append = " \
        file://test1.patch \
        file://test2.patch \“

      Create similar bbappend files and folder for other gstreamer package to integrate any custom patches in PetaLinux build.

  4. For VCU patches, follow these steps:
    1. Create a vcu directory in the recipe-multimedia folder.
      cd project-spec/meta-user/recipe-multimedia
      mkdir vcu
    2. There are four different recipes files for VCU that downloads the code and compile
      • kernel-module-vcu_%.bbappend
      • vcu-firmware_%.bbappend
      • libvcu-xlnx_%.bbappend
      • libomxil-xlnx_%.bbappend
    3. Depending upon patches to which VCU source code it belongs to, bbappend file for that code base needs to be created to get those patches applied and compiled on latest source code. For example, if the patch fix is for VCU drivers, follow these steps:
      1. Create a kernel-module-vcu directory in the recipe-multimedia/vcu folder
        cd vcu
        mkdir kernel-module-vcu
      2. Copy VCU driver patches to the kernel-module-vcu directory.
        cp test1.patch recipe-multimedia/vcu/kernel-module-vcu
        cp test2.patch recipe-multimedia/vcu/kernel-module-vcu
      3. Create a kernel-module-vcu_%.bbappend file in the recipe-multimedia/vcu folder:
        vi kernel-module-vcu_%.bbappend
      4. Append the following lines to the kernel-module-vcu_%.bbappend file.
        FILESEXTRAPATHS_prepend: = "${THISDIR}/ kernel-module-vcu:"
        SRC_URI_append = " \
        file://test1.patch \
        file://test2.patch \“

      Create similar bbappend files and folder for other VCU component to integrate any custom patches in PetaLinux build.

  5. Follow PetaLinux build steps to generate updated binaries.
    Note: If you are not compiling with PetaLinux, review the recipes for additional files necessary for setting up GStreamer. For example, you must include the /etc/xdg/gstomx.conf in the root file system. This file tells gst-omx where to find the OMX integration layer library - libOMX.allegro.core.so.1.