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.

TDA4VH-Q1: Multicamera streaming Issue

Part Number: TDA4VH-Q1
Other Parts Discussed in Thread: TDA4VH

Tool/software:

Hello all ,

We are using ar0234 sensor in TDA4VH (sdk version - 09_02_00_05 ) with the native serializer (ds90ub953.c) and deserializer (ds90ub960.c) drivers .

1. Gstreamer case : When using four cameras, the stream is proper for each individual camera. The gstreamer command used for 4 cam is,

   gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1920, height=1080 ! tiovxldc out-block-width=128 ! "video/x-raw,format=NV12" ! queue ! mosaic.sink_0 v4l2src device=/dev/video1 ! video/x-raw,width=1920, height=1080 ! tiovxldc out-block-width=128 ! "video/x-raw,format=NV12" ! queue ! mosaic.sink_1 v4l2src device=/dev/video2 ! video/x-raw,width=1920, height=1080 ! tiovxldc out-block-width=128 ! "video/x-raw,format=NV12" ! queue ! mosaic.sink_2 v4l2src device=/dev/video3 ! video/x-raw,width=1920, height=1080 ! tiovxldc out-block-width=128 ! "video/x-raw,format=NV12" ! queue ! mosaic.sink_3 tiovxmosaic name=mosaic sink_0::startx="<0>" sink_0::starty="<0>" sink_1::startx="<1920>" sink_1::starty="<0>" sink_2::startx="<0>" sink_2::starty="<1080>" sink_3::startx="<1920>" sink_3::starty="<1080>" ! kmssink sync=false driver-name=tidss -e -v

  The gstreamer command used for 1 cam is,

gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1920, height=1080 ! tiovxldc out-block-width=128 ! "video/x-raw,format=NV12" ! queue ! mosaic.sink_0 tiovxmosaic name=mosaic sink_0::startx="<0>" sink_0::starty="<0>" ! kmssink sync=false driver-name=tidss -e -v

However, when connecting only two cameras and checking the stream for each camera individually, the streams appear merged between the two camera devices. The stream is proper only when both cameras are connected to deserializer port 0 and port 1. For any other combination, the streams get merged. The same issue occurs when three cameras are connected.

2. v4l2 case : When using four cameras , there is no issue in parallel streaming . But when using two cameras and streaming the second camera , the stream is not coming from second camera and also stream is halted for first camera . The parallel stream is proper only when both cameras are connected to deserializer port 0 and port 1. For any other combination, the streams get halted.

3. https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1366626/tda4vm-sk-tda4vm-issue-using-tiovxmosaic-plugin-on-gstreamer -> In this link, at last you have said:

"There is a known issue where we see the CSI2RX SHIM DMA context channel 0 accepts all handled data. Due to the driver implementation, all of the other sensors are still streaming so when one (or a subset) of cameras in a multi-camera system is streaming, DMA context 0 accepts frames from different virtual channels. This issue is being addressed internally but for the time being, streaming from one or a subset of cameras in a multi-camera system is not supported."

Kindly explain this context, and is this anywhere related to the issue we have reported above ?