How could we run the capture-display usecase on Linux in SDK?
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.
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