Deepstream increase number of circles

• Hardware Platform (Jetson / GPU) Jetson Nano
• DeepStream Version 6.0

Hello i’m trying to add more than 16 circles, How do i add another display_meta , i tried to implement it using this code below but it didnt work any idea how to fix that ?

 NvDsDisplayMeta *display_meta =
      nvds_acquire_display_meta_from_pool (batch_meta);
      NvOSD_CircleParams *circle_params = display_meta->circle_params;

    for ( int j=0; j < row_count_aux ; j++){
      circle_params[j].xc = data[j][0] / scaleW ;
      circle_params[j].yc = data[j][1] / scaleH ;
      circle_params[j].radius = 15;
      circle_params[j].has_bg_color = True;
      circle_params[j].bg_color = (NvOSD_ColorParams){0.0, 1.0, 0.0, 1.0};
      if (detection_occ[j] > 0 ){
        circle_params[j].circle_color = (NvOSD_ColorParams){1.0, 0.0, 0.0, 1.0};
      }
      else { 
        circle_params[j].circle_color = (NvOSD_ColorParams){0.0, 1.0, 0.0, 1.0};
        nb_free_spots++; 
      }
      display_meta->num_circles++;
    }

    nvds_add_display_meta_to_frame (frame_meta, display_meta);

if (max_circles_flags)
	{
	
	NvDsDisplayMeta *display_meta =
      nvds_acquire_display_meta_from_pool (batch_meta);

	for ( int j=0; j < rest_circles ; j++){
      circle_params[j].xc = data[15+j][0] / scaleW ;
      circle_params[j].yc = data[15+j][1] / scaleH ;
      circle_params[j].radius = 15;
      circle_params[j].has_bg_color = True;
      circle_params[j].bg_color = (NvOSD_ColorParams){0.0, 1.0, 0.0, 1.0};
      if (detection_occ[j] > 0 ){
        circle_params[j].circle_color = (NvOSD_ColorParams){1.0, 0.0, 0.0, 1.0};
      }
      else { 
        circle_params[j].circle_color = (NvOSD_ColorParams){0.0, 1.0, 0.0, 1.0};
        nb_free_spots++; 
      }
      display_meta->num_circles++;
    }
	nvds_add_display_meta_to_frame (frame_meta, display_meta);


In theory, all you need to do is apply for another display_meta. You can refer to our demo app code:
https://github.com/NVIDIA-AI-IOT/deepstream_tao_apps/blob/master/apps/tao_others/deepstream-gaze-app/deepstream_gaze_app.cpp#L215

1 Like

Thanks for the reply, i changed the code as follow, and it’s working !

 // Graphics Circle Update 
 for ( int j=0; j < row_count; j++){

		if (!display_meta) {
              display_meta = nvds_acquire_display_meta_from_pool(batch_meta);
              display_meta->num_circles = 0;
              display_meta->num_rects = 0;
              display_meta->num_arrows = 0;
              
            } else {
              if (display_meta->num_circles==MAX_ELEMENTS_IN_DISPLAY_META) {
                nvds_add_display_meta_to_frame (nvds_get_nth_frame_meta (batch_meta->
            		frame_meta_list, 0), display_meta);
                display_meta = nvds_acquire_display_meta_from_pool(batch_meta);
                display_meta->num_circles = 0;
                display_meta->num_arrows = 0;
              }
			}

      display_meta->circle_params[display_meta->num_circles].xc = data[j][0] / scaleW ;
      display_meta->circle_params[display_meta->num_circles].yc = data[j][1] / scaleH ;
      display_meta->circle_params[display_meta->num_circles].radius = 15;
      display_meta->circle_params[display_meta->num_circles].has_bg_color = True;
      display_meta->circle_params[display_meta->num_circles].bg_color = (NvOSD_ColorParams){0.0, 1.0, 0.0, 1.0};
      if (detection_occ[j] > 0 ){
        display_meta->circle_params[display_meta->num_circles].circle_color = (NvOSD_ColorParams){1.0, 0.0, 0.0, 1.0};
      }
      else { 
        display_meta->circle_params[display_meta->num_circles].circle_color = (NvOSD_ColorParams){0.0, 1.0, 0.0, 1.0};
        nb_free_spots++; 
      }
      display_meta->num_circles++;
    }

 
    nvds_add_display_meta_to_frame (nvds_get_nth_frame_meta (batch_meta->
            frame_meta_list, 0), display_meta);

}

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