Cross eglstream copy CUeglFrame failed

Just like my other topic

I do not add gst pipeline,just copy the CUeglFrame after cuGraphicsResourceGetMappedEglFrame,for my argus PixelFormat is PIXEL_FMT_YCbCr_420_888,the CUeglFrame format as below,so refer to EGLStreams_CUDA_Interop,use cuMemcpy3D for CU_MEMORYTYPE_ARRAY copy,but after argus producer 5 frame will failed for cuEGLStreamProducerReturnFrame (cross eglstream fifo mode,fifo length 5)
CUeglFrame:
** width: 1920**
** height: 1080**
** depth: 0**
** pitch: 1920**
** planeCount: 2**
** numChannels: 1**
** frameType: array**
** colorFormat: YUV420 semi-planar ER**
** cuFormat: uint8**


main.cpp (24.5 KB)

I do 3 test,
1、Signal Thread copy test is ok: argus->eglstream->cuEGLStreamConsumerAcquireFrame->cuGraphicsResourceGetMappedEglFrame->cuMemcpy3D->cuEGLStreamConsumerReleaseFrame
CUDA(gpu)->copy to host will be ok;
2、Cross eglstream no copy test is ok
producer:argus->…
consumer:cuEGLStreamConsumerAcquireFrame->cuGraphicsResourceGetMappedEglFrame->cuEGLStreamConsumerReleaseFrame

3、Cross eglstream copy test is failed
producer:argus->…
consumer:>cuEGLStreamConsumerAcquireFrame->cuGraphicsResourceGetMappedEglFrame->cuMemcpy3D->cuEGLStreamConsumerReleaseFrame

producer present 5 frame ,before the 6 frame present,the return frame will be failed …

Hi,
Could you try mailbox mode and run like:
frames returned from nveglstreamsrc via EGL stream out of order - #11 by DaneLLL

The case is interprocess. It is not verified in cross process and not sure if it works. Please give it a try.

1 Like

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