Disparity From NvBufSurface as input

• Hardware Platform (Jetson)
• DeepStream Version 6.0
• JetPack Version (4.6.2)
• VPI Version (1.2)
• Issue Type( questions)
Hello everyone,

I am currently developing an application which utilizes DeepStream with the following pipeline: NvArgus with buf-api=True (producing NvBufSurface) → nvvideoconvert to RGBA → rectifying surface using VPI’s EGL interoperability. The workflow is NvBufSurface (input) -> remap -> DeviceMemory (VPI's CUDA interoperability) (output). Then, I generate a disparity map from the rectified images using vpiSubmitStereoDisparityEstimator.

Now, I want to perform the remap fully on surface memory (NvBufSurface -> remap -> NvBufSurface). However, the application throws an exception ('terminate called after throwing an instance of ‘std::runtime_error’ what(): VPI_ERROR_INTERNAL: Can’t perform shared mapping), when converting the surface memory to grayscale using vpiSubmitConvertImageFormat.

How should I configure the VPIConvertImageFormatParams to make this possible? Are there any concerns with my approach?

The issue I encountered was that after unmapping the EGL texture following the rectification and then remapping it before the disparity calculation, the EGL image pointer changed, causing the VPIImage to have an invalid pointer. vpiImageSetWrappedEGLImage had to be called again with the new pointer to EGLImageKHR

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