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.

J784S4XEVM: Can't able to capture image using ISP on gstreamer

Part Number: J784S4XEVM
Other Parts Discussed in Thread: TDA4VM, SK-AM69, , SK-TDA4VM, J721EXCPXEVM, TDA4VH, AM69

Hi,

I developed a V4L2 camera driver for ti boards. I can get a raw images using the following command: (on J784S4XG01EVM board)

```

gst-launch-1.0 -v v4l2src num-buffers=5 device=/dev/video4 io-mode=dmabuf ! video/x-bayer, width=3840, height=2160, framerate=30/1, format=rggb12 ! multifilesink location="camera-image-%d.raw"

```

We have no issues here.

However, when I try to get camera images using ISP with the following command:

```
gst-launch-1.0 v4l2src num-buffers=5 device=/dev/video4 io-mode=dmabuf-import ! video/x-bayer, width=3840, height=2160, framerate=30/1, format=rggb12 ! tiovxisp sink_0::device=/dev/v4l-media2 sensor-name="SENSOR_SAMSUNG_CAMERA" dcc-isp-file=/opt/imaging/camera/dcc_viss.bin sink_0::dcc-2a-file=/opt/imaging/camera/dcc_2a.bin format-msb=9 ! video/x-raw, format=NV12, width=3840, height=2160, framerate=30/1 ! jpegenc ! multifilesink location="camera-image-%d.jpg"

```

It just stucks waiting for image. Here is the full log:

```
APP: Init ... !!!
MEM: Init ... !!!
MEM: Initialized DMA HEAP (fd=6) !!!
MEM: Init ... Done !!!
IPC: Init ... !!!
IPC: Init ... Done !!!
REMOTE_SERVICE: Init ... !!!
REMOTE_SERVICE: Init ... Done !!!
2579.330551 s: GTC Frequency = 200 MHz
APP: Init ... Done !!!
2579.330596 s: VX_ZONE_INIT:Enabled
2579.330607 s: VX_ZONE_ERROR:Enabled
2579.330621 s: VX_ZONE_WARNING:Enabled
2579.331437 s: VX_ZONE_INIT:[tivxInitLocal:130] Initialization Done !!!
2579.332269 s: VX_ZONE_INIT:[tivxHostInitLocal:101] Initialization Done for HOST !!!
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
```

I've been informed by this topic that https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1339452/j784s4xevm-how-to-use-hw-isp-for-v4l2-cameras my J784S4XG01EVM board doesn't support edgeai. However I've been able to compile it for SOC=j784s4 from my TDA4VM board and then send the output files to my J784S4XG01EVM.

Please Note that, the above gstreamer command for ISP is working fine on TDA4VM board.

For reference I follow the "AM6xA ISP Tuning Guide.pdf" just changed the compilation part, for instance, I change the SOC variable from j721e to j784s4. And after that it's pretty much same basically I only changed the install dir. Then I copy the outputs to my J784S4XG01EVM board from TDA4VM.

  • Am I doing something wrong ? Or this operation cannot be done on TDA4VM ?
  • Also are there any ISP guides specifically for J784S4XG01EVM ?

Note: SDK => ti-processor-sdk-linux-adas-j784s4-evm-09_01_00_06-Linux-x86

Also I can see my camera when I execute gst-inspect-1.0 tiovxisp:

```
sensor-name : TIOVX camera sensor string ID. Below are the supported sensors
SENSOR_SONY_IMX390_UB953_D3
SENSOR_ONSEMI_AR0820_UB953_LI
SENSOR_ONSEMI_AR0233_UB953_MARS
SENSOR_SONY_IMX219_RPI
SENSOR_SAMSUNG_CAMERA
SENSOR_OV2312_UB953_LI
```

Thanks.

  • Hi Kaya,

    Your cross compiling process is a little confusing for me (as I am not familiar with gstreamer).

    From the H/W perspective, TDA4VM is J721E and is different from J784S4.
    TDA4VM has only one ISP (VPAC) and J784S4 has two.

    If you works with J784S4, the H/W platform that supports edgeai is SK-AM69.

    https://www.ti.com/tool/SK-AM69?keyMatch=SK-AM69

    • Also are there any ISP guides specifically for J784S4XG01EVM ?

    I don't think there is a dedicated one.

  • Hi Gang Hua,


    From the H/W perspective, TDA4VM is J721E and is different from J784S4.
    TDA4VM has only one ISP (VPAC) and J784S4 has two.

    How can I access this two ISP slots ? Like for example I need to write `tiovxisp2` to a gstreamer command to access it ? or sink_2 etc. ? Is there any guide related to this ?

    If you works with J784S4, the H/W platform that supports edgeai is SK-AM69.

    https://www.ti.com/tool/SK-AM69?keyMatch=SK-AM69

     

    I don't really get what you mean above, the SK-AM69 linux sdk also works on my J784S4 board ?

    Sorry for asking lots of questions but I kind of lost in this topic and need some information so I can finish my project. 

    Thanks

  • How can I access this two ISP slots ? Like for example I need to write `tiovxisp2` to a gstreamer command to access it ? or sink_2 etc. ? Is there any guide related to this ?

    I am not familiar with gstreamer and not sure about the answer.
    You may open a new thread with proper title if you need so that it can be assigned to the right person.

    You mentioned both TDA4VM (J721E) and J784XEVM, but J784XEVM does not have a TDA4VM processor.

    I don't really get what you mean above, the SK-AM69 linux sdk also works on my J784S4 board ?

    I don't think so as those are separately released for SK-AM69 and J784S4XEVM.

    Sorry for asking lots of questions but I kind of lost in this topic and need some information so I can finish my project. 

    No worries.
    I am also confused by many of these since I work much more on the ISP design than S/W.

    My understanding is that edgeai/gstreamer is only supported on SK-TDA4VM, SK-AM69A, SK-AM68A, and SK-AM62A boards.
    TDA4 EVMs including J721EXCPXEVM and J784S4XEVM support Linux+RTOS or QNX+RTOS, but not edgeai/gstreamer.

    I am copying my friend  for his comments.

  • Hi Gang and Kaya,

    It seems like there is confusion between the different processors and naming convention. To clarify:

    • J7xxxx naming convention is used by the software team. TDA4X are automotive customer oriented and AM6X are industrial customer oriented, but these are the actual product number for the hardware.
    • Software is shared between automotive TDA4X and industrial AM6X counterparts.
    • J784S4=AM69=TDA4VH
    • J721E=TDA4VM

    As Gang mentioned, EdgeAI/GStreamer is only supported on SK boards because these boards are targeted for industrial customers. Automotive customers usually use a different set of tools and API.

    However, since the software is shared between AM69 and TDA4VH/J784S4XEVM, technically the AM69 software should be functional for TDA4VH/J784S4XEVM. The disclaimer is that the software is less tested for the J784S4XEVM.

    In any case, if the J721E software is used for J784S4/AM69/TDA4VH, then it will not work since it is a different processor with different cores. As Gang suggested AM69 SDK will be a better choice.

    Regards,

    Takuma