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.

TDA4VM:multiple cameras qustion

Part Number: TDA4VM
Other Parts Discussed in Thread: TEST2

Hi, TI experts:

We use J721E board to testing oToBrite's IMX390.(linux SDK version is 08.06.01.02)

Follow "TDA4VM: Some errors when using IMX390 from oToBrite on Linux" to drive a single camera successfully.

But when using multiple cameras have some issues.

The device is video19 and video20: 

Test1:

1. start 2 cams with the command v4l2-ctl at the same time (look normal)
v4l2-ctl -d /dev/video19 --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap --stream-count=1000
v4l2-ctl -d /dev/video20 --set-fmt-video=width=1920,height=1080,pixelformat=UYVY --stream-mmap --stream-count=1000

2.Ctrl+c with video19 then Ctrl+c with video20

3. use the start video20 command then use the video19 command (look normal)

4.Ctrl+c with video19 and video20
5. use the start video19 command (video19 does not start), but when using the start video20 command, in addition to video 20 starting video 19 will also start.

as shown in the video (multiple_cameras_test1.mp4)

Test2:

1. reboot

2. use Gstreamer to display video19(successfully display),then Ctrl+c
gst-launch-1.0 v4l2src device=/dev/video19 ! 'video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080' ! videoconvert ! autovideosink

3. use Gstreamer to display video20(display is fail)
gst-launch-1.0 v4l2src device=/dev/video20 ! 'video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080' ! videoconvert ! autovideosink

4. reboot

5. use Gstreamer to display video20(successfully display),then Ctrl+c
gst-launch-1.0 v4l2src device=/dev/video20 ! 'video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080' ! videoconvert ! autovideosink

6. use Gstreamer to display video19(display is fail)
gst-launch-1.0 v4l2src device=/dev/video19 ! 'video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080' ! videoconvert ! autovideosink



We have seen this "TDA4VM-Q1: CSI2RX can't be re-used with multiple cameras.", but we already use SDK 8.6 and we also checked "/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c" is same like patch

Question:

1. Why we can't start two cameras? Where could the problem occur?

2. Can the problem be solved by using SDK 09.00.01?(Release notes version 09.00.01(New in this Release)

  • Hi,

    . reboot

    2. use Gstreamer to display video19(successfully display),then Ctrl+c
    gst-launch-1.0 v4l2src device=/dev/video19 ! 'video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080' ! videoconvert ! autovideosink

    3. use Gstreamer to display video20(display is fail)
    gst-launch-1.0 v4l2src device=/dev/video20 ! 'video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080' ! videoconvert ! autovideosink

    4. reboot

    5. use Gstreamer to display video20(successfully display),then Ctrl+c
    gst-launch-1.0 v4l2src device=/dev/video20 ! 'video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080' ! videoconvert ! autovideosink

    6. use Gstreamer to display video19(display is fail)
    gst-launch-1.0 v4l2src device=/dev/video19 ! 'video/x-raw, format=(string)UYVY, width=(int)1920, height=(int)1080' ! videoconvert ! autovideosink

    Could you please check the same with fakesink instead of autovideosink?
    Could you confirm if it works with fakesink?

    Regards,

    Nikhil

  • Hi,
    I tried to change it to fakesink, and it looks normal.


    However,  in my previous attempts used autovideosink, and it looked normal, just like with fakesink, but video20 will not show on the screen.
    (Note: "display is fail" means not show on the screen)

    Best Regards.

  • Hi,

    The Test 1 seems to be a known issue. The current workaround available is to avoid using context 0. when Context 1 and 2 are used, this shouldn't be seen.

    For the Test 2, you would require a mosaic plugin in order to display both the pipes. Could you integrate the mosaic plugin as well in the gstreamer command?

    Regards,

    Nikhil