RidgeRun / gst-interpipe

GStreamer plug-in for interpipeline communication
Other
143 stars 64 forks source link

Issues with Deepstream pipelines #71

Open TheophileBlard opened 3 years ago

TheophileBlard commented 3 years ago

I'm using Gst-interpipe with Deepstream SDK (5.0), following this example, but instead of having all nvstreammux, nvinfer and nvtracker elements in the same pipeline, I want to have them in independent pipelines. However this does not seem to work, as nvtracker fails with the following error:

gstnvtracker: NvBufSurfaceTransform failed with error -3 while converting buffergstnvtracker: Failed to convert input batch.

I did some digging, and found out that nvtracker also outputs:

gstnvtracker: numStreams not set. so setting default to 1
gstnvtracker: batchSize not set. so setting default to 1
gstnvtracker: surfaceSize not set. so setting default to 1

Without gst-interpipe, nvtracker does not output these lines , and works properly. With gst-interpipe, nvtracker crash (if batch-size > 1).

After some more digging, I found out that Deepstream might be using these queries, in nvtracker to get batch-size (as this plugin does not have a batch-size property). Does gst-interpipe handles this kind of queries ? I not, is this something that can be implemented ?

If you want to reproduce this error, using your example, and splitting out the deepstream pipeline in two parts should do the trick !