Assessing the c++ code for NVDS Extensions

Hi, I am currently working on a project of adding custom extensions for graph composer ds6 applications.

It would be very helpful if I can take a look at how the codes for NvDsInferenceUtilsExt and other functions are written. I know that these are on the registry, and they are somewhere in the ngc public repo. But all I see are shared object files, not CPP files that I can read. Is there anyway I can acess them?

More examples like this would be helpful

No. These are proprietary codes. We can not share with you.

okay, I just wanted to make sure that I am not missing it eventhough it is available.

In this case, I just want to ask one question about the sample code here.

On the probe function example for handle_buffer(),

NvDSBatchData is accessed as:

  NvDsBatchMeta *batch_meta =
        *(buffer_data.get<NvDsBatchMetaHandle>(BUF_DATA_KEY_VIDEO_BATCH_META)
              .value());
    NvBufSurface *surf =
        *(buffer_data.get<NvBufSurfaceHandle>(BUF_DATA_KEY_VIDEO_BATCH_META)
              .value());

If I want to access NvDSFrameMeta data here, how should I approach this? On other C++ scripts it appears I need to include gstnvdsmeta.h to be able to iterate over NvDsBatchMeta.

What is the approach when it comes to graph composer extensions? If I need to include them on Bazel Build/Workspace, how am I suppose to do it exactly?

Yes. You need to include gstnvdsmeta.h to iterate over NvDsBatchMeta. It is the same with graph composer deepstream extension.