Hello, sometimes get this message while running a gstreamer pipeline with nvvideo4linux2
elements on Jetson AGX Xavier with Jetpacks 4.4 and 4.6:
SYNC_IOC_FENCE_INFO ioctl failed with 9
NvDdkVicExecute Failed
nvbuffer_transform Failed
NvDdkVicExecute Failed
nvbuffer_transform Failed
gst_nvvconv_transform: NvBufferTransform Failed
gst_nvvconv_transform: NvBufferTransform Failed
SYNC_IOC_FENCE_INFO ioctl failed with 9
NvDdkVicExecute Failed
nvbuffer_transform Failed
gst_nvvconv_transform: NvBufferTransform Failed
It looks like something bad happens while transferring DMA buffer:
NvBufferTransformParams transform_params;
memset(&transform_params, 0, sizeof(NvBufferTransformParams));
if (!gst_buffer_map (src, &inmap, GST_MAP_READ))
goto invalid_buffer;
retn = ExtractFdFromNvBuffer (inmap.data, &input_dmabuf_fd);
if (retn != 0) {
GST_ERROR_OBJECT(src, "ExtractFdFromNvBuffer Failed");
gst_buffer_unmap(src, &inmap);
return GST_FLOW_ERROR;
}
inmemory = (GstV4l2Memory *)gst_buffer_peek_memory (dest, 0);
retn = NvBufferTransform (input_dmabuf_fd, (gint)inmemory->dmafd, &transform_params);
if (retn != 0) {
GST_ERROR_OBJECT(src, "NvBufferTransform Failed");
gst_buffer_unmap(src, &inmap);
return GST_FLOW_ERROR;
}
Didn’t get this part clearly, but supposedly it happens due some lack of memory or something.
Is it possible somehow handle this issue without breaking a pipeline?
I can’t provide any gst-launch
command, because this issue can’t be reproduced without an app which creates this pipeline and use it some complex scenarios (actually there are multiple pipelines created for a multiple streams).