I was trying to grab meta_data from a probe and use it somewhere else. The more logic implemented in the probe lead to a slower videofeed. It also had scale problems because the more metadata outputted per object led to slower performance.
How does the message-conv and message-broker plugins successfully extract metadata without slowing down the pipeline when more objects appear on the screen?
Implementing compute functionality inside probe is not advisible as it is a blocking call. Message broker and converter are separate gstreamer plugins and run in different space in parallel. For better performance you should implement a custom gstreamer plugin to achieve required functionality.
This plugin sends payload messages to the server using a specified communication protocol. It accepts any buffer that has NvDsPayload metadata attached and uses the nvds_msgapi_* interface to send the messages to the server.