An weird output on a render(sink) which doesn't have any bbox overlay in a pipeline

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU)
RTX 3080 Ti
• DeepStream Version
6.2
• JetPack Version (valid for Jetson only)
• TensorRT Version
8.5.2-1+cuda11.8
• NVIDIA GPU Driver Version (valid for GPU only)
525.85.12
• Issue Type( questions, new requirements, bugs)
bugs
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)

The pipeline below consists of two sub-pipelines in which first sub one is for doing some processing on deepstream elements on frame and second sub one is doing nothing except rendering the input frame for comparison.

export SAMPLE=/opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.mp4
gst-launch-1.0 filesrc location=$SAMPLE ! qtdemux ! h264parse ! nvv4l2decoder cudadec-memtype=2 ! tee name=t ! queue ! m.sink_0 nvstreammux batch-size=1 width=1280 height=720 batched-push-timeout=40000 nvbuf-memory-type=3 name=m ! dsexample ! nvdslogger fps-measurement-interval-sec=1 ! nvvideoconvert nvbuf-memory-type=3 ! nvdsosd process-mode=1 display-text=1 ! nveglglessink sync=0 t. ! queue ! nvvideoconvert ! nveglglessink sync=1
  • Common: filesrc → demux → h264parse → decoder → tee
  • First sub pipeline: → queue → nvstreammux → dsexample → nvdslogger → nvvideoconvert → nvosd → nveglglessink.
  • Second sub pipeline: → queue → nvvideoconvert → nveglglessink.

However, the execution result of the pipeline above is very strange.
The renderer on second sub pipeline strangely shows ‘bboxes’ which seemed injected by the dsexample from the first sub pipeline even if both pipelines consumes it’s own source, here tee duplicates for separation from a single source. !

It is very weird for me because I cannot figure out where the bboxes on the second pipeline are from.

Where should I do something to do not show the bboxes on the render of second sub pipeline?
Could you explain why these can be happened?

• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)

The attached image shows both renderers draw bbox overlay whereas one should not have it.

Did you modify any source code? I use the deepstream-6.2 docker to run your pipeline, it works well.

No changes on any code. I didn’t use docker. I just ran the pipeline with deepstream-6.2 installed on linux machine.
Could you please check it again without running docker?

The issue should not have much to do with whether to run in Docker. As my device does not have a monitor, so I saved the file to mp4. Could you try to run the command below and check it?

gst-launch-1.0 filesrc location=/opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.mp4 ! qtdemux ! h264parse ! nvv4l2decoder cudadec-memtype=2 ! tee name=t ! queue ! m.sink_0 nvstreammux batch-size=1 width=1280 height=720 batched-push-timeout=40000 nvbuf-memory-type=3 name=m ! dsexample ! nvdslogger fps-measurement-interval-sec=1 ! nvvideoconvert nvbuf-memory-type=3 ! nvdsosd process-mode=1 display-text=1 ! nvvideoconvert ! nvv4l2h264enc ! h264parse ! mp4mux ! filesink location=seg0.mp4 t. ! queue ! nvvideoconvert ! nvv4l2h264enc ! h264parse ! mp4mux ! filesink location=seg1.mp4

I ran your pipeline and checked files saved, seg0.mp4 and seg1.mp4.
‘seg0.mp4’ have bbox overlay while’seg1.mp4’ doesn’t have it.
From this result, it works well if pipelines output to files.

However it still have problem if pipelines output to renderer on nveglglessink when one has set to sync=false and the other has set to sync=true.
I am now suspicious that abnormal behavior should be in nveglglessink.

It is hard for me to figure out where such difference is from.

Could you please reproduce this issue with ngeglglessink?

OK. We’ll check the problem. If there is a conclusion, we will reply in time.

Hi @intai.kim , if just use tee plugin, the gstbuffer is the same for both channels. So if you want to display it different ways, you need to copy the gstbuffer before nvosd plugin. The nvvideoconvert plugin can do this only if the format or resolution changes. So you can add a caps for nvvideoconvert to change the format or resolution.

It is understandable. With format change ofnvvideoconvert before osd, it works well as expected.

Thank you!

gst-launch-1.0 filesrc location=$SAMPLE ! qtdemux ! h264parse ! nvv4l2decoder ! tee name=t ! queue ! m.sink_0 nvstreammux batch-size=1 width=1280 height=720 batched-push-timeout=40000 name=m ! dsexample ! nvdslogger fps-measurement-interval-sec=1 ! nvvideoconvert ! video/x-raw\(memory:NVMM\),format=RGBA ! nvdsosd process-mode=1 display-text=1 ! nveglglessink sync=0 t. ! queue ! nvvideoconvert !  nveglglessink sync=1

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.