• Hardware Platform (Jetson / GPU) GPU • DeepStream Version 6.1.1 • TensorRT Version 8.4.3.1
**• NVIDIA GPU Driver Version 515.105.01 • Issue Type( questions, new requirements, bugs) bug
**• How to reproduce the issue ? Dynamically add an nvstreamdemux to a running pipeline (use block pad probes), and request src_0 pad, you will find that no data comes out it
Dynamically added nvstreamdemux used to work fine in DS 6.0 but didn’t work in DS 6.1.1 when added dynamically yet it works fine it is added at the beginning. I think it doesn’t negotiate/set the src caps properly in such case.
We also tried to start the pipeline with an already existing nvstreamdemux and it worked but the dynamically added one didn’t work and the upcoming graph shows a caps issue.
Kindly, Find the demo code attached below tested against DS 6.1.1:
The code adds at most one additional source to the pipeline as well as a new branch containing nvstreamdemux. runtime_source_add_delete.zip (80.1 KB)
Also here’s the full graph, you will find that the src caps of nvstreamdemux is not properly negotiated as showed earlier. pipeline.dot (44.5 KB)
I would like to hear your opinion about this before testing against DS 6.2
Sorry for the late reply. the input supported is a h264 elementary stream video file uri.
So you can use the following cli args ./deepstream-test-rt-src-add-del file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.h264 0 nveglglessink 0
I know you are referring to our source code, and the source code runs properly in our docker. But when I use the code you attached(the zip file) with the command line: ./deepstream-test-rt-src-add-del file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.h264 0 nveglglessink 0. It cannot run properly and it’s not the issue about nvstreamdemux.
Is the code you attached that you actually used?
Additionally, from the code you attached. You don’t need to create multiple nvstreamdemux, you just need to create one plugin and add new “src_%u” pads on it.
What do you mean by it doesn’t run properly? what log did you see? What version did you run against?
Also I am not creating multiple nvstreamdemux. The only one being created is the one being added in add_sources at runtime and the total sources set to 2.
The app starts by showing 1 stream, a few seconds later, another source is added as well as the branch in which the nvstreademux is present which is later attached to a different nveglglessink. Problem is that this sink never receives any frames. This is shown by the caps being no set/negotiated in the fully attached graph below.
To Clarify the use case, it’s an on-demand separation of a particular stream at runtime so that it can be served over a udpsink and later by an rtsp server.
Because we will not provide patches separately on previous DeepStream version, I run that on DeepStream6.2. It reports Fatal Error in nvmultistreamtiler plugin.
Hi @eslam.ahmed, I modified your source code: tiler_rows = 1; tiler_columns=MAX_NUM_SOURCES. It work well with DeepStream 6.2. So we suggest you use the DeepStream 6.2 and set the right parameters for nvmultistreamtiler plugin. Thanks
Again there is no issue with the nvmultistreamtiler Who said that there was one to begin with?
I am talking about the second branch being added in the get_branch_bin method which as the nvstreamdemux and the additional nveglglessink. The expected output of this app is to see 2 separate nveglglessink windows and not one!
Also, I have tested against Deepstream 6.2 and the issue persists!
OK. We’ll analyze the issue of nvstreamdemux not being able to linked correctly in this scenario. And we’ll updated promptly once it is resolved. Thanks