• Jetson Orin 64GB Dev Kit
• Deepstream 6.2
• JetPack Version 5.1
• TensorRT 8.5.2.2
I am creating a custom plugin and I am basing it off of the gstdsexample code here: (/opt/nvidia/deepstream/deepstream-6.2/sources/gst-plugins/gst-dsexample). In my custom deepstream plugin I am attempting to create a PIP(Picture-in-Picture) for digital enhancement around a cropped section of an object. I am using a CMakeLists.txt where the parent CMakeLists.txt defines:
set(GST_INSTALL_DIR "/opt/nvidia/deepstream/deepstream-${NVDS_VERSION}/lib/gst-plugins/")
So when I build my custom pip plugin it is installed in the directory as libnvdsgst_pip.so
. The issue I am facing is that it doesn’t seem to be able to find the pip element this plugin should be creating. In my deepstream_app.cpp(which is based off of deepstream-app), inside of gboolean create_pipeline(...)
, I followed suite with what you guys were doing with the dsexample and created the following check:
// Add PIP(Picture-in-Picture) element
if (config->pip_config.enable) {
// Create pip element bin and set properties
if (!create_pip_bin(&config->pip_config,
&pipeline->pip_bin)) {
g_print("Unable to create a PIP Element!\n");
goto done;
}
// Add pip bin to instance bin
gst_bin_add(GST_BIN(pipeline->pipeline), pipeline->pip_bin.bin);
// Link this bin to the last element in the bin
NVGSTDS_LINK_ELEMENT(pipeline->pip_bin.bin, last_elem);
// Set this bin as the last element
last_elem = pipeline->pip_bin.bin;
g_print("Successfully created PIP Element!\n");
}
However, this fails on the create_pip_bin which is defined in the deepstream_pip.c file attached. Specifically it fails to create the PIP element on this line:
bin->elem_pip = gst_element_factory_make(NVDS_ELEM_PIP_ELEMENT, "pip");
if (!bin->elem_pip) {
NVGSTDS_ERR_MSG_V("Failed to create 'pip'");
goto done;
}
Any ideas on what the issue could be for it not being able to create the pip element?
One thing I noticed in the gstdsexample.cpp file at the bottom was this line:
GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
GST_VERSION_MINOR,
nvdsgst_dsexample,
DESCRIPTION, dsexample_plugin_init, DS_VERSION, LICENSE, BINARY_PACKAGE, URL)
You have the DS_VERSION
which I don’t see defined anywhere. So, in my code I am using the VERSION defined in deepstream_pip.h. Could this be the issue?
Thanks
CMakeLists.txt (1.2 KB)
pip.cpp (25.5 KB)
pip.h (3.1 KB)
deepstream_pip.h (720 Bytes)
deepstream_pip.c (2.3 KB)