• Hardware Platform (Jetson / GPU)
Xavier NX
• DeepStream Version
6.0
• JetPack Version (valid for Jetson only)
4.6.4
Hi there, I have a had a great deal of trouble trying to use the plugin nvdrmvideosink
for display in my company’s robotic surgery deepstream application. New issues keep arising, and whenever I fix one a new issue pops up.
My general question for anyone who has explicit knowledge of the plugin nvdrmvideosink
and/or the commits to said plugin, is this plugin’s performance improved from JetPack 4.6.4 to JetPack 5.1.3?
If not, is it possible to build and use the deprecated plugin nvoverlaysink
on JetPack 5.1.3? I understand it is deprecated, but this plugin did not cause us any issues before, and now nvdrmvideosink
does.
To be clear about the issues we are facing in case they are helpful, here is some background information:
We are on JetPack 4.6.4, using Xavier NX, on a custom carrier board using a custom Yocto/BusyBox build. Our carrier board has 2 HDMI outputs which we need to display video to in RGBA format. We are going to move to JetPack 5.1.3 in the near future, but for now it is not possible, and so I am unable to test whether nvdrmvideosink
is improved or not. A simplified version of our pipeline regarding the sink pieces looks something like:
nvarguscamerasrc ee-mode=1 ee-strength=.1 tnr-mode=1 tnr-strength=0.1 wbmode=fluorescent ispdigitalgainrange='1 1' bufapi-version=1
! video/x-raw(memory:NVMM),width=1920,height=1080,format=NV12 ! tee name=input_t
input_t. ! other branch...
input_t. ! other branch...
input_t. ! queue ! nvvideoconvert ! video/x-raw,width=1920,height=1080,format=RGBA ! queue max-size-buffers=1 leaky=downstream ! custom plugin ! tee name=disp_t
disp_t. ! queue ! nvdrmvideosink conn-id=0 plane-id=1 sync=false set-mode=0
disp_t. ! queue ! nvdrmvideosink conn-id=1 plane-id=1 sync=false set-mode=0
The specific order of issues with nvdrmvideosink
is as follows:
- Single
nvdrmvideosink
has no issues - Adding a second
nvdrmvideosink
in parallel, withset-mode=0
causes increased latency of 20-40 ms, which is not acceptable for our live surgery video feed application (nvoverlaysink
does not do this) - Changing
set-mode=1
improves the latency, but causes “tearing” along parts of the image - Adding
nvvideoconvert
element upstream ofnvdrmvideosink
in the pipeline fixes the tearing, but then the program crashes randomly after 20-30 minutes (strange that it takes so long, and that it’s so random)
If anyone has knowledge of whether there is a way to improve the behavior of nvdrmvideosink
I would love to know. If anyone has explicit knowledge of the nvdrmvideosink
plugin and it’s code changes I would also love to know. Since it is closed source I cannot yet determine whether this is fixed in JetPack 5.1.3 or not, especially since we are on a custom carrier board and build. Alternatively, is it possible to build nvoverlaysink
for JetPack 5.1.3, and if so, how can I do that?