Nvds_add_display_meta_to_frame works correctly in version 5.1 but incorrectly in 6.1

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU): GeForce RTX 3090
• DeepStream Version: 5.1 / 6.1
• TensorRT Version: 7.2 / 8.2
• NVIDIA GPU Driver Version (valid for GPU only): 470 / 510
• Issue Type( questions, new requirements, bugs): question

The same code to draw vertical lines to the screen:

NvDsDisplayMeta * display_meta = nvds_acquire_display_meta_from_pool(batch_meta);
display_meta->num_arrows = p_config->num_valves * p_config->num_sources;
float offset = p_config->muxer_output_width / (float)p_config->num_valves;
NvOSD_ArrowParams *arrow_params;
for(int i = 0; i < display_meta->num_arrows; i++)
{
    arrow_params = &display_meta->arrow_params[i];
    uint x = offset * i;
    arrow_params->x1 = x;
    arrow_params->x2 = x;
    arrow_params->y1 = 0;
    arrow_params->y2 = p_config->muxer_output_height;
    arrow_params->arrow_width = 1;
    arrow_params->arrow_head = END_HEAD;
    arrow_params->arrow_color.red = 0.8;
    arrow_params->arrow_color.green = 0.2;
    arrow_params->arrow_color.blue = 0.1;
    arrow_params->arrow_color.alpha = 1.0;
}

nvds_add_display_meta_to_frame(frame_meta, display_meta);

In version 5.1, it works as expected:

In version 6.1, 3 lines on the second frame were missing even though the arrows show up correctly, the 3 missing lines on the second frame match the 3 lines that are thicker on the first frame.

What should I do to fix this in version 6.1?

How can we reproduce this problem in our enviroment? Can you provide a sample code based on our sample app?

I will get back asap.

Hi @Fiona.Chen,

Here are the steps to reproduce the issue:

  1. Replace sources/apps/sample_apps/deepstream-app/deepstream_app_main.c with the following file:

deepstream_app_main.c (25.9 KB)

  1. Build the app then run with the following config file:

source2_1080p_dec_infer-resnet_demux_int8-copy.txt (4.1 KB)

The same issue of missing arrows for version 6.1 happens:

Note: This is not the exact replicate of the pipeline I have. In the sample app, I have to click the screen to see the full overlay, while in my app, both sources are showed side-by-side with full overlay by default. The code to show the arrows follows the same logic though.