Getting error when trying to instanciate a camera provider with Argus

Hi all,

I am using a custom camera with an imager AR0820 connected with GMSL2 MIPI CSI interface, i am able to capture using nvarguscamerasrc using the CLI

gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, format=(string)NV12, framerate=(fraction)30/1' ! nvvidconv ! queue ! xvimagesink

And i am able to capture using samples from /home/jetson/jetson_multimedia_api/argus/samples, but know i want create a custom application using LibArgus, so i just try to to instanciate a camera provider with Argus with the following program :

#include <stdio.h>
#include <Argus/Argus.h>

int main() {
    
    Argus::UniqueObj<Argus::CameraProvider> cameraProvider(Argus::CameraProvider::create());


    return 0;
}

The project include :
main.cpp : A program to instanciate the camera provider
Argus : The folder including Argus.h and all sources files of the API

I’ve executed the following CLI :

g++ *.cpp -o prog -I jetson_multimedia_api/argus/include -L /usr/lib/aarch64-linux-gnu/tegra -lnvargus

I could compile without any errors, but when i execute ./prog i had the following output :

OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
---- imager: No override file found. ----
LSC: LSC surface is not based on full res!

I am wondering if i’m missing anything when i compiled my program ? Why i couldn’t create a camera provider ?

Thanks

Hi,
You can refer to these samples:

/usr/src/jetson_multimedia_api/samples/09_camera_jpeg_capture
/usr/src/jetson_multimedia_api/samples/10_camera_recording

Please try to build/run these samples successfully. So that you can refer to the samples for further development.

Hi @DaneLLL,

I’ve tested those samples, the main.cpp is compiled using too much of dependency and linked with a lot of libraries, in my case i just wanna to make a simple program which instanciate a camera provider and avoiding this output :

OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
---- imager: No override file found. ----
LSC: LSC surface is not based on full res!

Can you please suggest mee a g++ command line with linker and includes arguments to create a camera provider ?

Thank you

Hi,
We would suggest start with this:

/usr/src/jetson_multimedia_api/samples/09_camera_jpeg_capture

And remove the unnecessary part. It is basic Argus and not much additional code.