I am trying to use my TX2 to display analog video. I am using a chip that digitizes the video and transmits it over CSI to the Jetson. I have a driver and device tree that work for 1080p and 720p, but now I am also trying to add NTSC and PAL cameras. The issue is that these cameras have interlaced output, and I am having some issues with them.
In the device tree, I added the fields "is_interlaced=‘1’; and interlace_type=interleaved to one of the sensor modes.
When I swap to this sensor mode with v4l2-ctl and test my gstreamer pipeline, there’s no video. The real problem though is that when I close the pipeline, it doesn’t actually close. I know this because it keeps /dev/video0 busy. I can not kill the process (with kill or kill-9), and when I try to reboot, VI holds up the kernel trying to reset the capture channel for ~5 minutes until it times out.
I do not observe similar behavior on the other modes, and I don’t understand why the interlaced video would cause this. please help!
Could you remove the recovery code from the driver to check.
I made the error_recovery function in vi4_fops a dummy function (simply prints that is trying to reset the channel then returns), but I am still seeing the same errors
You have remove the called instead of make it as dummy.
I completely removed the recover function, but I am still getting the PXL_SOF timeout continuously after closing the stream, and the thread remains unkillable
Sorry for the late response, is this still an issue to support? Thanks
I figured out that it was a loop in vi4_fops.c. It never got the interlaced_type from the device tree, so it was stuck in the capture thread in the top_bottom section. There is a for loop that decrements the counting variable inside the loop, meaning the thread never gets to the point where it checks if it should stop. I just made sure that it always takes the “interleaved” path instead, and that fixed that problem
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.