I am developing a TX2 driver for a camera “os08a10”, I was able to capture with three single cameras but when I try to capture with the three cameras at same time I get a crash. Do you know if the TX2 supports multiple cameras capturing? I’m using JetPack 3.1. The output below is running a gstreamer pipeline capturing with v4l2 for the device 0 and at same time running same pipeline for the device 1 is when the crash appears. Do you know about this issue?
Thanks for the information, I tested with the steps to maximize the VI clock but the issue is still happening.
I am capturing with V4L2:
first I set up a stream with this command:
v4l2-ctl -d /dev/video0 --set-fmt-video=width=3840,height=2160,pixelformat=RG12 --set-ctrl bypass_mode=0 --stream-mmap
and then I set up other stream with this commmand while the other stream is running:
v4l2-ctl -d /dev/video1 --set-fmt-video=width=3840,height=2160,pixelformat=RG12 --set-ctrl bypass_mode=0 --stream-mmap
Have you ever tested multiple capture with 4K resolution?
We were able to capture from three cameras simultaneously on the TX2 using nvcamerasrc, we noticed if only two of the three cameras were phsically connected and if we try a dual capture, it failed. We reduced the DTB to 2 cameras to check if the number of cameras connected to the board was the problem and that test was successful. Another test that we ran was to disable the module in the tegra-camera-platform that we are not using when the DTB was for three cameras, then trying a Dual capture ran succesfully too.
So as a summary, having 3 modules enabled in tegra-camera-platform (Device Tree), but only 2 cameras phsically connected, triggers an issue in the nvcamera-deamon. So that in order to have all the cameras nodes in the device tree but a different number of cameras connected, you would need to enable or disable the corresponding modules to match the correct configuration.
@ACervantes
That’s a known defeat. You have to connect all sensor you define in the tegra-camera-platform otherwise you need modify the sensor driver to do the detection and don’t register the video node to avoid it.
Just want to share that I have also experienced this issue with less cameras connected then what’s specified in plugin manager, it seems to have a problem enumerating the video devices correctly.
Can I ask what command you used to capture three CSI cameras simultaneously using nvcamerasrc? Right now I have 3 cameras all detected and bound (video0,video1,video2) However, I can only stream them one at a time. Except when I specify sensor-id=2 (video2) it shows the same feed as sensor-id=0. Doesn’t matter which CSI port the 3 cameras are on. (Tested on all combinations of CSI1,CSI2,CSI3,CSI4)
How can I have argus_camera launch multiple sessions? What kind of command? We are using a RAW BAYER Sensor and I found in the Accelerated GStreamer User Guide, page 45 "Jetson TX1 and Jetson TX2 currently support 2 CSI RAW BAYER sensors.
Okay thank you. I’m still having the main issue which is that I have 3 cameras connected (video0, video1, video2) , but when I stream all 3 at the same time I only have 2 unique feeds and 1 duplicate feed. video2 always replicates the video0 feed. This happens when using gstreamer/nvcamerasrc and argus_camera.
There are no position duplicates. I’ve had issues before with the position property where some positions would cause the camera to fail with argus.
I’ve also tried running ./jetson_clocks and also the steps to maximize VI clk that you listed in this thread. I’ll test some more positions and see if that helps. I also read that “discontinuous_clk” should try to be toggled. Right now I have that set to no.