Video display froze on TX2 platform

Hi,
The platform is TX2 + Custom Carrier Board
L4T is R32.4.3.
4 IMX219s connected to TX2’s CSI interfaces through TI’s DS90UB954s.2 IMX219s connected to TX2’s CSI interfaces directly.
The issue was:
To run the command
$ gst-launch-1.0 nvarguscamerasrc ! ‘video/x-raw(memory:NVMM),width=3264, height=2464, framerate=21/1, format=NV12’ ! nvvidconv flip-method=0 ! ‘video/x-raw,width=960, height=616’ ! nvvidconv ! nvegltransform ! nveglglessink -e.
The video could display a short time before to be frozen.The time was random and maybe be seconds or minutes.Then the video window had to be closed by pressing Ctrl+C.
The video failed to display to run the above command again.

The command
“v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=RG12 --stream-mmap --set-ctrl=sensor_mode=0 --stream-count=100 -d /dev/video” ran normally but failed after the display freezing.

Looks like signal problem. Suggest to probe the MIPI signal to make sure the it match MIPI spec.

Hi,
Was it possible to be caused by any configuration in the device tree?
1,As if the issue occurred only if to display the video stream passing through DS90UB954.But it didn’t occur if to display the video stream directly through CSI interface.

2,There was errors when the display froze:
" GST_ARGUS: Running with following settings:
Camera index = 0
Camera mode = 2
Output Stream W = 1920 H = 1080
seconds to Run = 0
Frame Rate = 29.999999
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
CONSUMER: Done Success
(Argus) Error EndOfFile: Unexpected error in reading socket (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 266)
(Argus) Error EndOfFile: Receiving thread terminated with error (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadWrapper(), line 368)"

3,Sometimes the phenomenon didn’t occurred even the video displayed 1 hour or more.

4,serdes_pix_clk_hz was set in device tree.

Don’t understand what’s your mean “As if the issue occurred only if to display the video stream passing through DS90UB954.But it didn’t occur if to display the video stream directly through CSI interface.”

What are the commands?

Hi,
Sorry for my poor english.
If I connected the camera with TX2 through CSI directly,the video display freezing didn’t happen.
If I connected the camera with TX2 through DS90UB954,the freezing phenomenon would occur randomly.
In both cases I executed the same command except the sensor-id
$ gst-launch-1.0 nvarguscamerasrc sensor-id=n ! ‘video/x-raw(memory:NVMM),width=3264, height=2464, framerate=21/1, format=NV12’ ! nvvidconv flip-method=0 ! ‘video/x-raw,width=960, height=616’ ! nvvidconv ! nvegltransform ! nveglglessink -e.

where the sensor-id value n could be 0~5.

Can v4l2-ctl capture well with the failed case.

v4l2-ctl --stream-mmap --stream-count=100 --set-ctrl bypass_mode=0 -d /dev/video0

Hi,
Yes v4l2-ctl captured well.
~$ v4l2-ctl --stream-mmap --stream-count=500 --set-ctrl bypass_mode=0 -d /dev/video0
<<<<<<<<<<<<<<<<<<< 17.14 fps
<<<<<<<<<<<<<<<<< 17.15 fps
<<<<<<<<<<<<<<<<< 17.16 fps
<<<<<<<<<<<<<<<<< 17.12 fps
<<<<<<<<<<<<<<<<< 17.13 fps
<<<<<<<<<<<<<<<<< 17.10 fps
Was the count number so small that the failure case didn’t occur?

Does it frozen at started or run a while?

  1. Could you add set_mode_delay_ms to the sensor mode scope in dts if the DS90UB954 need more time to initialize.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/camera_sensor_prog.html#wwpID0E0Q50HA

  1. Try to adjust the discontinuous_clk and cil_settletime

Hi,
It froze randomly.Just at the start of the gst-launch-1.0 command execution,or seveal minutes,or over 1 hour.
Is “discontinuous_clk,cil_settletime or set_mode_delay_ms” adjusted in dts? I’d like try.
Is it caused possibly by FPD-Link transmission CRC error?It’s hard to detect.Once CRC error occurs,could gst-launch-1.0 continue to run?
Thanks!

Need to check the trace log.

Hi,
Shall I execute dmesg to get the log when the failure case occurs?
Thanks!

Follow below link to enable the trace log then do the capture then cat the log again.

https://elinux.org/Jetson_TX2_Camera_BringUp