Msgconv : only getting data from 1st stream when there are more than 1 streams

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU)
• DeepStream Version
• JetPack Version (valid for Jetson only)
• TensorRT Version
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, 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)
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)

I have used 3 streams as input to the pipeline here.

Pipeline

streammux.link(pgie)
pgie.link(tracker)
tracker.link(nvvidconv1)
nvvidconv1.link(filter1)
filter1.link(tiler)
tiler.link(nvvidconv)
nvvidconv.link(nvosd)
nvosd.link(tee)
queue1.link(msgconv)
msgconv.link(msgbroker)
if is_aarch64():
    queue2.link(transform)
    transform.link(sink)
else:
    queue2.link(sink)

probe

        tiler_sink_pad = nvosd.get_static_pad("sink")
        if not tiler_sink_pad:
            logger.error(" Unable to get sink pad of tiler")

        tiler_sink_pad.add_probe(Gst.PadProbeType.BUFFER, self.tiler_sink_pad_buffer_probe, 0)

Issues :

  1. frame_meta.pad_index is always printing 0, but the meta data for all input streams printed under the 0th frame_meta.pad_index
Received {
      "version" : "4.0",
      "id" : 0,
      "@timestamp" : "2022-04-10T19:09:48.477Z",
      "sensorId" : "CAMERA_ID",
      "objects" : [
        "18446744073709551615|307.815|162.861|335.997|325.43|Person|#||0||||0.5011",
        "18446744073709551615|218.232|72.3314|316.644|240.005|Vehicle|#|||||||0.208985",
        "18446744073709551615|434.33|224.525|453.883|264.947|Vehicle|#|||||||0.234757",
        "18446744073709551615|47.4668|167.802|204.095|322.503|Vehicle|#|||||||0.273186",
        "18446744073709551615|407.256|222.098|436.679|275.424|Vehicle|#|||||||0.361277",
        "18446744073709551615|787.815|162.861|815.997|325.43|Person|#||0||||0.5011",
        "18446744073709551615|698.232|72.3314|796.644|240.005|Vehicle|#|||||||0.208985",
        "18446744073709551615|914.33|224.525|933.883|264.947|Vehicle|#|||||||0.234757",
        "18446744073709551615|527.467|167.802|684.095|322.503|Vehicle|#|||||||0.273186",
        "18446744073709551615|887.256|222.098|916.679|275.424|Vehicle|#|||||||0.361277"
      ]
    }

For example : Here the first object is from 1st stream, next 5 objects are from 2nd stream and remaining from 3rd stream. But everything getting under 1st stream data

  1. frame_meta.frame_num is always printing 0 . (frame_number=0)

Can you check the source_id in the frame_meta? Suppose you should have different source_id for different source.

1 Like

Source_id is printing 0 always

And also getting segmentation fault (core dumped) error after 1-3 frames if i mention stream_id =frame_meta.source_id

Is this due to some issues in the pipeline ?

Yes, seems source id wrong.

If i change the probe from nvods to tiler then the meta data is generated for all streams with each stream id. But the msg is not generated.

Seems reasonable as tiler will composite video to one frame.

Any suggestions to solve this issue!

You said you can get right source id before tiler. Can you have a try to use meta data before tiler?

Hi samjith888,

Is there any result to share? Thanks

I tried runnig the program after few days, getting msg broker error. Used amqp protocol. This was working fine earlier. but not working after few days!. Just trying to solve this

unable to connect to broker library

Changed pipeline into following structure

pgie >

I have implemented meta data fetching from pgie. Its working now. Thanks

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