So one source file, passed through nvstreammux, and then tee’d off into two branches for separate pgies with nvinfer. When I run this I get the following error:
ERROR: from element /GstPipeline:pipeline0/GstNvInfer:nvinfer1: Internal data stream error.
Somewhere I am wrong with the pipeline. I’m not sure if I have a misunderstanding of Gstreamer elements or my misunderstanding is around Deepstream/nvstreammux. I’m trying to run in parallel rather than in serial due to latency constraints + I will need to run other non-deepstream branches as well. I’ve been unsuccessful looking online and in these forums for an answer to my problem, though I am suspicious it is something simple. Thank you for the help!
tee (gstreamer.freedesktop.org)
The tee plugin will clone the GstBuffer for each branch, so the GstBuffers between different branches from tee src pads are sharing the same content. If you change the GstBuffer content in one branch, the other branches are changed too including metadata.
nvstreammux is the plugin to generate batched data. The nvstreamdemux is the plugin to get separated stream from the batch.
What if there is only 1 source, ie. 1 input video? It seems from that app that there are multiple sources, and those sources are separated before being passed into new separate nvstreammux plugins, at which point the inference modules run on those separate sources/streams.
After some more investigation this error ERROR: from element /GstPipeline:pipeline0/GstNvInfer:nvinfer1: Internal data stream error. looks to be due to the fact that there is no sink after the nvinfer module. Running the following pipeline works (two fakesink modules added after inference modules):
In trimming my pipeline down I got rid of the sinks and didn’t think it mattered.
I’m going to leave this thread up a little while longer since I may still have a related question for my original issue, which I will try and figure out now before posting anything more.
Just going to post an addendum here in case someone in the future finds it useful. I was getting the error ERROR: from element /GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstQTDemux:qtdemux0: Internal data stream error. with the following pipeline:
WITHOUT the nvvidconv plugins in the middle there, at which point it works. I’m not entirely sure why this is the case, as I’ve used nvvidconv modules at other times in similar ways with these plugins. Regardless this fixes it and maybe someone who sees this in the future will find it useful.