How to link custom libfile.so to gst_parse

I have customized gst-nvdsanalytics plugin and make to file libnvdsgst_dsanalytics.so in /usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream. Everything runs OK but when I want to make into a .so file with a different custom name, it gives the following error gi.repository.GLib.Error: gst_parse_error: no element. I noticed that gstreamer seems to only accept .so files availabled in /usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream. Am I right and how can I link my custom .so file ?

Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU)
• DeepStream Version
• JetPack Version (valid for Jetson only)
• TensorRT Version
• NVIDIA GPU Driver Version (valid for GPU only)
• Issue Type( questions, new requirements, bugs)
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)
• The pipeline being used

This name needs to be modified by the compiler, refer to the following file.

/opt/nvidia/deepstream/deepstream/sources/gst-plugins/gst-nvdsanalytics/Makefile

Modify LIB:=libnvdsgst_dsanalytics.so, then

make CUDA_VER=12.2 install
/opt/nvidia/deepstream/deepstream/install.sh

Changing the name of element type is difficult.

You need to change the corresponding gobject type and the corresponding struct and function name.

Such as GstNvDsAnalytics and GstNvDsAnalyticsClass and gst_nvdsanalytics_xxxx.

They are determined by the following macro.

G_DEFINE_TYPE (GstNvDsAnalytics, gst_nvdsanalytics, GST_TYPE_BASE_TRANSFORM);

This function is generated by a macro, and the .h file only declares it.

Check this macro.

G_DEFINE_TYPE (GstIcDsLpr, gst_icdslpr, GST_TYPE_BASE_TRANSFORM);

About the other link error, You cannot rename this class, it is not open source.

      NvDsAnalyticCtxUptr analytics_ctx =
          NvDsAnalyticCtx::create (stream_analytics_info[frame_meta->pad_index],

Please share the entire library, I need to check the compilation errors

Can you compress the plugin code into a zip file? The above files seem can not be compiled.

Modify the following code in gsticdslpr.h

//#define GST_TYPE_ICDSLPR (gst_icdsplr_get_type())
#define GST_TYPE_ICDSLPR (gst_icdslpr_get_type())

//GType gst_icdsplr_get_type (void);
GType gst_icdslpr_get_type (void);
#LIB:=libnvdsgst_icdslpr.so
LIB:=libicdsgst_dslpr.so

Fixed it In the Makefile. then

make install
sudo /opt/nvidia/deepstream/deepstream/install.sh 
gst-inspect-1.0 icdslpr

``

Thank you very much. Love you :3

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