Gst-stream-error-quack

Please provide complete information as applicable to your setup.

• Hardware Platform : Nvidia GeForce GTX 1650
• DeepStream Version : 6.0
• NVIDIA GPU Driver Version (valid for GPU only) : 510.73.05

I am currently using the devel docker on a ubuntu machine (22.04)

I have a piece of code which runs perfectly fine when running in Deepstream 5.1 but the same piece of code when executed in Deepstream 6.0 or above throws the following error

I looked into the other similar posts available but none of them provide me the solution for my problem

I am new to the Deepstream SDK so any leads would be appreciated

What sink you are using?

I am using multifilesink

Can you enable gst debug to get more debug log?
GST_DEBUG=***:5 app
Try to triage which components caused the issue.

I tried doing that with the whole log popping up from what I could understand this is the reason not 100% sure

0:00:31.059939940 38960      0x2eaa320 DEBUG          basetransform gstbasetransform.c:1212:gst_base_transform_find_transform:<nvtracker0> FAILED to get peer of <nvtracker0:src> to accept video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)30/1, multiview-mode=(string)mono, format=(string)NV12, block-linear=(boolean)false, batch-size=(int)1, num-surfaces-per-frame=(int)1
0:00:31.059960121 38960      0x2eaa320 WARN           basetransform gstbasetransform.c:1355:gst_base_transform_setcaps:<nvtracker0> transform could not transform video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)30/1, multiview-mode=(string)mono, format=(string)NV12, block-linear=(boolean)false, batch-size=(int)1, num-surfaces-per-frame=(int)1 in anything we support
0:00:31.059973113 38960      0x2eaa320 DEBUG               GST_PADS gstpad.c:5776:gst_pad_send_event_unchecked:<nvtracker0:sink> sent event, ret not-negotiated
0:00:31.059984882 38960      0x2eaa320 DEBUG               GST_PADS gstpad.c:3959:push_sticky:<nvinfer-detector-person:src> result not-negotiated, mark pending events
0:00:31.060040081 38960      0x2eaa320 DEBUG             GST_BUFFER gstbuffer.c:2384:gst_buffer_foreach_meta: remove metadata 0x2e79f08 (NvDsMeta)
0:00:31.060072306 38960      0x2eaa320 DEBUG               nvdspool gstnvdsbufferpool.c:538:gst_nvds_buffer_pool_release_buffer:<nvdsbufferpool2> release_buffer
0:00:31.060084921 38960      0x2eaa320 DEBUG             GST_BUFFER gstbuffer.c:1375:gst_buffer_is_memory_range_writable: idx 0, length -1
0:00:31.060097841 38960      0x2eaa320 DEBUG             GST_BUFFER gstbuffer.c:1375:gst_buffer_is_memory_range_writable: idx 0, length -1
0:00:31.060129670 38960      0x2eaa320 WARN                 nvinfer gstnvinfer.cpp:2288:gst_nvinfer_output_loop:<nvinfer-detector-person> error: Internal data stream error.
0:00:31.060140076 38960      0x2eaa320 WARN                 nvinfer gstnvinfer.cpp:2288:gst_nvinfer_output_loop:<nvinfer-detector-person> error: streaming stopped, reason not-negotiated (-4)
0:00:31.060155965 38960      0x2eaa320 DEBUG            GST_MESSAGE gstelement.c:2114:gst_element_message_full_with_details:<nvinfer-detector-person> start
0:00:31.060176916 38960      0x2eaa320 INFO        GST_ERROR_SYSTEM gstelement.c:2145:gst_element_message_full_with_details:<nvinfer-detector-person> posting message: Internal data stream error.
0:00:31.060203376 38960      0x2eaa320 WARN               structure gststructure.c:1832:priv_gst_structure_append_to_gstring: No value transform to serialize field 'gerror' of type 'GError'
0:00:31.060221750 38960      0x2eaa320 DEBUG                GST_BUS gstbus.c:318:gst_bus_post:<bus0> [msg 0x2ebbe00] posting on bus error message: 0x2ebbe00, time 99:99:99.999999999, seq-num 417, element 'nvinfer-detector-person', GstMessageError, gerror=(GError)NULL, debug=(string)"gstnvinfer.cpp\(2288\):\ gst_nvinfer_output_loop\ \(\):\ /GstPipeline:pipeline0/GstNvInfer:nvinfer-detector-person:\012streaming\ stopped\,\ reason\ not-negotiated\ \(-4\)";

How about remove the tracker?

I can’t
The thing is I have a custom faceblur plugin which I have to use to blur the face of the people detected in the video frame so to do that I need to be able to detect people and track them till they leave the frame so that their face is blurred the whole time and the problem I am facing is that this custom plugin works well in DS 5.1 but when used in DS 6.0 and above it fails and result in the error you see above

Update :
I removed the tracker as well but it didn’t solve the issue

Did it working if you remove the custom faceblur plugin?

Besides, tracker changed from DS 6.0, the tracker algorithm unified in one low level library, you also need to change the tracker config file.

Yes when I remove the custom faceblur plugin it does work

[tracker]
tracker-width=1280
tracker-height=704
gpu-id=0
ll-lib-file=/opt/nvidia/deepstream/deepstream-6.0/lib/libnvds_nvmultiobjecttracker.so
ll-config-file=/opt/nvidia/deepstream/deepstream-6.0/sources/backend/tracker_config.yml
enable-batch-process=1

This is how my tracker_config.ini file looks right now. Cross referenced it with what I had in the deepstream_python_app repo from github and most of it looks the same

Then it related to your plugin, you need to debug on your side.

I tried doing it. Cross referenced it with the latest dsexample plugin files and added the needed part in the 6.0 file but it still won’t work. Is there any way to you know port a plugin which was working in 5.1 to 6.0 and above?