This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] TDA4VM: Run Capture - Display usecase on Linux in SDK

Part Number: TDA4VM

How could we run the capture-display usecase on Linux in SDK?

  • This cannot be directly displayed without processing it in VISS, as DSS does not support raw format.
    You would have to use the VISS from R5 to do the processing, as VISS drivers are not available on Linux
    Else you could use a camera that outputs UYVY format and then directly connect in to display as mentioned in the below document
    3.2.2.3. CSI2RX — Processor SDK Linux for J721e Documentation

    For raw frames, please find the demo details in the link below.
    Data Flows — Processor SDK Linux for Edge AI Documentation

    For this usecase, EdgeAI has some tiovx plugins which is used along with gstreamer in order to satify the usecase

    On an SK board, with EdgeAI SDK, you could run the demo as shown in the below link

    Running Simple demos — Processor SDK Linux for Edge AI Documentation

    The IMX390 camera could be setup as shown in the documentation below
    Getting Started — Processor SDK Linux for Edge AI Documentation

    It possible to run this on TI-EVM.
    But this would require few edge-AI plugins to be installed in the SD card.

    You could follow the below steps to do the same.

    Please ensure that the Linux capture and display are working individually by referring below FAQs

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1173511/faq-tda4vm-steps-for-executing-linux-csi-on-sdk

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1173507/faq-tda4vm-steps-for-executing-linux-dss-on-sdk

    1. Ensure csi and dss linux drivers are used and working as mentioned in the previous steps provided. (Kill the weston background task if running, before proceeding to next step using "killall weston")

    2. On the target, ensure that network is connected and clone the edge_ai repo into rootfs/opt/ path.
    Please find the edgeAI repo here (https://git.ti.com/cgit/edgeai/edge_ai_apps)

    git clone https://git.ti.com/git/edgeai/edge_ai_apps.git

    3. Once cloned, run ./setup_script.sh in the path rootfs/opt/edge_ai_apps/

    4. This should install all the plugins required (especially tiovx)

    5. Once the script execution is completed, confirm the tiovx plugins are installed by running "gst-inspect-1.0 tiovx" as shown below

    root@j7-evm:~# gst-inspect-1.0 tiovx
    Plugin Details:
     Name                    tiovx
     Description             GStreamer plugin for TIOVX
     Filename                /usr/lib/gstreamer-1.0/libgsttiovx.so
     Version                 0.7.0
     License                 Proprietary
     Source module           GstTIOVX
     Binary package          GstTIOVX source release
     Origin URL              http://ti.com
    
     tiovxsdeviz: TIOVX SdeViz
     tiovxsde: TIOVX Sde
     tiovxdofviz: TIOVX DofViz
     tiovxdof: TIOVX DOF
     tiovxdlpreproc: TIOVX DL PreProc
     tiovxdlcolorblend: TIOVX DL ColorBlend
     tiovxdlcolorconvert: TIOVX DL ColorConvert
     tiovxcolorconvert: TIOVX ColorConvert
     tiovxmemalloc: TIOVX Mem Alloc
     tiovxdelay: TIOVX Delay
     tiovxpyramid: TIOVX Pyramid
     tiovxmux: TIOVX Mux
     tiovxmultiscaler: TIOVX MultiScaler
     tiovxmosaic: TIOVX Mosaic
     tiovxldc: TIOVX LDC
     tiovxisp: TIOVX ISP
     tiovxdemux: TIOVX Demux
    
     17 features:
     +-- 17 elements

    6. Run the command ./setup_cameras.sh in the path /opt/edge_ai_apps/scripts/ to setup the camera as shown below

    root@j7-evm:/opt/edge_ai_apps/scripts# ./setup_cameras.sh 
    IMX390 Camera 0 detected
       device = /dev/video2
       name = imx390 10-001a
       format = [fmt:SRGGB12_1X12/1936x1100 field: none]
       subdev_id = /dev/v4l-subdev4
       isp_required = yes
       ldc_required = yes

    7. Run the demo using the below gstreamer command and the camera will display on the screen.

    gst-launch-1.0 v4l2src device=/dev/video2 ! queue leaky=2 ! video/x-bayer, width=1936, height=1100, format=rggb12 ! tiovxisp sink_0::device=/dev/v4l-subdev4 sensor-n
    ame=SENSOR_SONY_IMX390_UB953_D3 dcc-isp-file=/opt/imaging/imx390/dcc_viss.bin sink_0::dcc-2a-file=/opt/imaging/imx390/dcc_2a.bin format-msb=11 ! video/x-raw, format=NV12 ! tiovxldc dcc-file=/opt/imaging/i
    mx390/dcc_ldc.bin sensor-name=SENSOR_SONY_IMX390_UB953_D3 ! video/x-raw, format=NV12, width=1920, height=1080 ! kmssink sync=false driver-name=tidss

    Note: Change the /dev/videoX and v4l-subdevX as per the data in step 6.

    Regards,
    Nikhil