• Hardware Platform (Jetson / GPU)
Jetson Xavier NX • DeepStream Version
DeepStream 5.0 • JetPack Version (valid for Jetson only)
4.6.1-b110 • TensorRT Version
8.2.1.8
I am developing an application based on deepstream-test5-app.
Is there any configuration to change the frequency of sending message to broker? Currently the application is likely to send a message roughly every 0.5 second.
Ideally, I want to make it send only when parameters are changed. I looked into config file and documents but still not clear…
Please tell me if you know about this thing.
Thanks in advance.
please specify more your issue. if there is new target, there will be a new object meta, so all objects in frame_meta->obj_meta_list are target objects, you can debug in bbox_generated_probe_after_analytics.
@fanzh thank you for your reply.
Current application sends message every 30 frames, and now I understand the frequency can be changed by frame-interval in config.
I am testing deepstream-occupancy-analytics which counts entry/exit of people, and I was wondering if there is a way to send message only when the count is up.
the default method is adding NvDsEventMsgMeta to to the buffer as user metadata of frame meta, if set msg2p-newapi to true, user metadata will be added every frame-interval. please refer to Gst-nvmsgconv — DeepStream 6.1.1 Release documentation
you can add this event after checking analysis output, please refer to deepstream-test5.
@yingliu I looked for the file nvmsgconv, but I am lost…
As following the document, I looked into sources/libs/nvmsgconv/ and sources/gst-pugins/gst-nvmsconf. However I still don’t get where to add frame-interval parameter… Could you tell me which file I need to modify?
you can modify configuration file to change frameInterval, for example:
in this file: sources\apps\sample_apps\deepstream-test5\configs\test5_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt
in this line: msg-conv-frame-interval=30
you can modify configuration file to change frameInterval,
default value is in gst_nvmsgconv_init of
\opt\nvidia\deepstream\deepstream-6.1\sources\gst-plugins\gst-nvmsgconv\gstnvmsgconv.c.
if want to change, please refer to g_object_set (G_OBJECT (msgconv), “frame-interval”, frame_interval, NULL); in sources\apps\sample_apps\deepstream-test4\deepstream_test4_app.c
@fanzh I followed your advice, but there is no msg-conv-frame-interval=30 in the config file, also no frame_interval variable in deepstream_test4_app.c…
I added msg-conv-frame-interval=30 in [sink1] section in my config file and it returned an error:
Unknown key ‘msg-conv-frame-interval’ for group [sink1]
you can find frame_interval in deepstream-test4 code, for example:
if (is_first_object && !(frame_number % frame_interval)) {
deepsream-test4 uses hardcode to set value, you can modify in code, for example:
g_object_set (G_OBJECT (msgconv), “frame-interval”, frame_interval, NULL);
I found the following line in deestream-test4
if (is_first_object && !(frame_number % 30)) {
however, I couldn’t find in deepstream-test5. Because I am working on an app based on deepstream-test5, I would like to know it for deepstream-test5.
In deepstream-test5 Tthere is a comment
/* Frequency of messages to be send will be based on use case.
* Here message is being sent for first object every 30 frames.
*/
in line 629-631, but no line to set the frame interval parameter.
Could you tell me how to for deepstream-test5 app?