Integrating the VDU and GStreamer Patches - 2023.2 English

H.264/H.265 Video Decode Unit Solutions LogiCORE IP Product Guide (PG414)

Document ID
PG414
Release Date
2024-03-29
Version
2023.2 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}/ kernel-module-vdu:"
        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 VDU patches, follow these steps:
    1. Create a vdu directory in the recipe-multimedia folder.
      cd project-spec/meta-user/recipe-multimedia 
      mkdir vdu
      
    2. There are four different recipes files for VDU that downloads the code and compile
      • kernel-module-vdu_%.bbappend
      • vdu-firmware_%.bbappend
      • libvdu-xlnx_%.bbappend
      • libomxil-xlnx_%.bbappend
    3. Depending upon patches to which VDU 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 VDU drivers, follow these steps:
      1. Create a kernel-module-vdu directory in the recipe-multimedia/vdu folder
        cd vdu
        mkdir kernel-module-vdu
        
      2. Copy VDU driver patches to the kernel-module-vdu directory.
        cp test1.patch recipe-multimedia/vdu/kernel-module-vdu 
        cp test2.patch recipe-multimedia/vdu/kernel-module-vdu
        
      3. Create a kernel-module-vdu_%.bbappend file in the recipe- multimedia/vdu folder:
        vi kernel-module-vdu_%.bbappend
      4. Append the following lines to the kernel-module-vdu_%.bbappend file.
        FILESEXTRAPATHS_prepend: = "${THISDIR}/ kernel-module-vdu:"
        SRC_URI_append = " \ 
        file://test1.patch \
        file://test2.patch \“
        

        Create similar bbappend files and folder for other VDU 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.