Problem using VPI 1.1 with nvarguscamerasrc in python

I want to use VPI algorithms with nvarguscamerasrc on live camera images.
But when I only import vpi in python the nvarguscamerasrc is not working anymore.
The error I get is:

NvMapMemCacheMaint:1075334668 failed [14]

and no working camera anymore.
Should VPI work combined with nvarguscamerasrc?
I am on JetPack 32.6.1, VPI is 1.1.12 in Python 3.6

BR
Erich

Hi,

VPI should work with Argus.
For example, you can find a C++ example in the below path:

/opt/nvidia/vpi1/bin/vpi_demo_remap

We don’t notice that there are some issues in the python interface.
Would you mind sharing an example to reproduce this first?

Thanks.

Hi,
I tried this demo program, with the dog file it’s working but with the HQ 477 camera it is not running (both resolutions).

OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module1
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
---- imager: No override file found. ----
---- imager: No override file found. ----
(NvCamV4l2) Error ModuleNotPresent: V4L2Device not available (in /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function findDevice(), line 256)
(NvCamV4l2) Error ModuleNotPresent:  (propagating from /dvs/git/dirty/git-master_linux/camera/utils/nvcamv4l2/v4l2_device.cpp, function initialize(), line 60)
(NvOdmDevice) Error ModuleNotPresent:  (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function initialize(), line 107)
NvPclDriverInitializeData: Unable to initialize driver v4l2_sensor
NvPclInitializeDrivers: error: Failed to init camera sub module v4l2_sensor
NvPclStartPlatformDrivers: Failed to start module drivers
NvPclStateControllerOpen: Failed ImagerGUID 0. (error 0xA000E)
NvPclOpen: PCL Open Failed. Error: 0xf
SCF: Error BadParameter: Sensor could not be opened. (in src/services/capture/CaptureServiceDeviceSensor.cpp, function getSourceFromGuid(), line 582)
SCF: Error BadParameter:  (propagating from src/services/capture/CaptureService.cpp, function addSourceByGuid(), line 437)
SCF: Error BadParameter:  (propagating from src/api/CameraDriver.cpp, function addSourceByIndex(), line 305)
SCF: Error BadParameter:  (propagating from src/api/CameraDriver.cpp, function getSource(), line 471)
Acquiring SCF Camera device source via index 1 has failed. NVMEDIA_ARRAY:   53,  Version 2.1
NVMEDIA_VPI :  172,  Version 2.4
ERROR: vpiSubmitRemap: VPI_ERROR_INVALID_ARGUMENT
Input and output images must have the same format
PowerServiceCore:handleRequests: timePassed = 5879
ERROR: vpiSubmitRemap: VPI_ERROR_INVALID_ARGUMENT
Input and output images must have the same format

I will try to make a small testprogram from my code.
BR Erich

Hi,

Thanks, please let us know when the sample is ready.
Just for information, have you enabled the HQ477 camera with Argus successfully?

Thanks.

Hi,
yes the 477 camera is working in the command line with gst-launch-1.0 and in my own python script with nvarguscamerasrc.
Hopefully I can manage to do this tomorrow, today only meetings…
BR Erich

@AastaLLL I tested it with a short testprogram, it is working here!
Can there be a problem with python multiprocessing because my “big” program uses multiprocessing (but the camera and the VPI are in the same process)?
BR Erich

@AastaLLL I changed the multiprocessing structure and now it is working.
I have now an other problem with a memory leak, I open a new topic with example.
BR Erich

Hi,

Good to know it works now.

Based on the error, the issue comes from the camera driver.
So the problem might occur on the multi-process handler with the same camera input.

Thanks.