Locate source files of pipeline components

Please provide complete information as applicable to your setup.

• Tesla T4
• DeepStream 6.1
• TensorRT 8.2.5.1
**• NVIDIA GPU Driver Version 510.47.03 **
• Find source files
I am right now using sample deepstream-app. And I am using config files. I have printed the delay measurement for my basic-sample pipeline. There are 5 components:

  1. src_bin_muxer;
  2. primary_gie;
  3. tiled_display_tiler;
  4. osd_conv;
  5. nvosd0.
    If possible, I would like to know the source code of each component above. I know that primary_gie and nvosd0 are at:
    /opt/nvidia/deepstream/deepstream-6.1/sources/gst-plugins/(gst-nvinfer and gst-nvdsosd).

I tried to search for others by searching for “nvds_set_input_system_timestamp” function. But I couldn’t find them. Or I might have missed them. I am asking for my own research. I just would like to conduct some tests.
Thank you in advance.

I know that .so files are at “/opt/nvidia/deepstream/deepstream-6.1/lib/gst-plugins”, but I wanted to look at source files. Thank you in advance

you can find that source code in opt\nvidia\deepstream\deepstream-6.1\sources\apps\apps-common\src, for example: create_multi_source_bin, create_common_elements, create_tiled_display_bin, create_osd_bin

1 Like

Thank you for your reply. Much appreciated. I found the files. I will explore them further. I just wanted to clarify.

As you see, it is showing in and out timestamps for different components:

  1. src_bin_muxer;
  2. primary_gie;
  3. tiled_display_tiler;
  4. osd_conv;
  5. nvosd0.

After going through documentations, I found that NvDsMeta API captures timestamps using functions: nvds_set_input_system_timestamp and nvds_set_output_system_timestamp.

So I wanted to find in which source code/files those functions are capturing timestamps for those components above.
I found for primary_gie (it was at gst-nvinfer at gst-plugins).
I might have been confused about something, I would appreciate if you would clarify If I am wrong.

nvds_set_input_system_timestamp will save start time, nvds_set_output_system_timestamp will save end time, so we can get the latency time.

Yes, I understood that part. What I wanted to know is: In which files you are using those functions to calculate the latency for each component?
Meaning, in which file you are saving (calling nvds_set_input_system_timestamp/nvds_set_output_system_timestamp) start and end timestamps for src_bin_muxer? or for osd_conv?

I went through the files in “opt\nvidia\deepstream\deepstream-6.1\sources\apps\apps-common\src”, but none of those files are capturing the time to calculate the latency.

nvds_set_input_system_timestamp /nvds_set_output_system_timestamp is not opensource.

Ok. Just to clarify, I feel I couldn’t explain what I am asking.

This is screenshot of /opt/nvidia/deepstream/deepstream-6.1/sources/gst-plugins/gst-nvinfer/gstnvinfer.cpp

As you can see it is saving start time for element “nvinfer” which is “primary_gie” from the latency measured component.
So, I just wanted to know: where are the start times for the other components?
In which file start time was saved for “src_bin_muxer”/“tiled_display_tiler”/“osd_conv”?

sorry for the late response, src_bin_muxer will nvstreammux plugin, tiled_display_tiler will use nvtiler plugin, osd_conv will use nvvideoconvert plugin, these plugins are not opensource, so you did not see nvds_set_input_system_timestamp.

It is ok. Thank you for your reply. Much appreciated.

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