NPP call stops FLIR USB machine vision cameras from receiving frames

Using the NPP library to do CUDA based debayer, and after the call, all subsequent frames from FLIR USB machine vision cameras to that process are ‘incomplete or corrupted’. Narrowed it down to a single reproducable call to nppiCFAToRGB_8u_C1C3R. Exhaustively checked all memory allocation etc to be correct. The call actually functions correctly, but after the call the camera won’t recieve frames.

Assume that under the hood this call is doing some initialization which is clobbering something. FLIR are at a loss and suggest working with Nvidia to track down the problem.

Could you check what’s the command or function to get the frame from USB camera?

Using the FLIR Spinnaker SDK:

ImagePtr pResultImage = pCam->GetNextImage(-1);

After the NPP call, all further images the following returns true:

Note this is a USB3 rather than GigE camera.

The text of the error returned is:
Image incomplete: Image data is incomplete. This could be caused by missing packet(s).


I think the GetNextImage should have v4l2 configure like width, height and pixel format …

This is the Spinnaker SDK from PointGrey/FLIR rather than V4l2. I don’t believe there are any other variants of that function which take anything other than the timeout (set here to infinite/-1)


You will need a CUDA buffer to launch the NPP algorithm.
And copy the result back if you want to handle it with CPU.

More, please also call the synchronize before using the result.
Jetson doesn’t support current access, which will lead to an error.