Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU) GPU T4, Titan V
• DeepStream Version 6.2, 6.1.1
• JetPack Version (valid for Jetson only)
• TensorRT Version 8.5.2
• NVIDIA GPU Driver Version (valid for GPU only)
525.85.12
• Issue Type( questions, new requirements, bugs)
Some possibly defective video files (observed for h264, vp9) cause nvv4l2decoder to block indefinitely.
Reproduce like this:
gst-launch-1.0 uridecodebin uri=https://github.com/webmproject/libwebm/blob/libwebm-1.0.0.29/testing/testdata/accurate_cluster_duration_last_frame.webm?raw=true ! fakesink
This blocks indefinitely, and when pressing Ctrl+C, one sees that setting the pipeline to NULL also blocks. This is a huge problem in our application, as it can effectively block the application.
One can reduce the problem to
gst-launch-1.0 filesrc location=testdata/accurate_cluster_duration_last_frame.webm ! typefind ! matroskademux ! multiqueue ! nvv4l2decoder ! fakesink
Replacing nvv4l2decoder
by vp9dec
gives an error, but at least does not block.
Attaching gdb to the blocked process shows the following:
(gdb) thread apply all bt
Thread 8 (Thread 0x7f1cb37fe700 (LWP 5248)):
#0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7f1c90004810) at ../sysdeps/nptl/futex-internal.h:183
#1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x7f1c900047c0, cond=0x7f1c900047e8) at pthread_cond_wait.c:508
#2 __pthread_cond_wait (cond=0x7f1c900047e8, mutex=0x7f1c900047c0) at pthread_cond_wait.c:647
#3 0x00007f1cc632e093 in NvOsSemaphoreWait(NvOsSemaphoreRec*) () at ///opt/nvidia/deepstream/deepstream-6.2/lib/libcuvidv4l2.so
#4 0x00007f1cc633d057 in cuvidv4l2_dec_thread_func(void*) () at ///opt/nvidia/deepstream/deepstream-6.2/lib/libcuvidv4l2.so
#5 0x00007f1cc632deb0 in () at ///opt/nvidia/deepstream/deepstream-6.2/lib/libcuvidv4l2.so
#6 0x00007f1cc80fc609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#7 0x00007f1cc8021133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
It appears nvv4l2decoder is deadlocked.
The libwebm repository contains more files which cause this behavior (GitHub - webmproject/libwebm: Mirror only. Please do not send pull requests., testing/testdata
)