When using deepstream on Jetson devices, a “Memory Compatibility Error” occurs in the nvvideoconvert component, segmentation fault, SIGSEGV or data stream error
• Hardware Platform (Jetson / GPU): Jetson Nano and Jetson NX
• DeepStream Version: 6.0.1 and 6.1
• JetPack Version (valid for Jetson only): 4.6 and 5.0.2
• Issue Type( questions, new requirements, bugs): bugs
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing):
Jetson Nano
- docker run -it --rm --gpus=all -v
pwd
/data:/data nvcr.io/nvidia/deepstream-l4t:6.0.1-base - gst-launch-1.0 -v uridecodebin name=source uri=file:///data/bug.jpg ! nvvideoconvert nvbuf-memory-type=0 ! “video/x-raw(memory:NVMM), format=RGBA” ! muxer.sink_0 nvstreammux name=muxer width=1024 height=1024 batch-size=1 live-source=False ! fakesink
Jetson NX
- docker run -it --rm --gpus=all -v
pwd
/data:/data nvcr.io/nvidia/deepstream-l4t:6.1-base - gst-launch-1.0 -v uridecodebin name=source uri=file:///data/bug.jpg ! nvvideoconvert nvbuf-memory-type=0 ! “video/x-raw(memory:NVMM), format=RGBA” ! muxer.sink_0 nvstreammux name=muxer width=1024 height=1024 batch-size=1 live-source=False ! fakesink
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)
Log from Nano
Setting pipeline to PAUSED …
Pipeline is PREROLLING …
/GstPipeline:pipeline0/GstURIDecodeBin:source: source = “(GstFileSrc)\ source”
/GstPipeline:pipeline0/GstURIDecodeBin:source/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = image/jpeg, width=(int)780, height=(int)503, sof-marker=(int)0
/GstPipeline:pipeline0/GstURIDecodeBin:source/GstDecodeBin:decodebin0/GstNvJpegDec:nvjpegdec0.GstPad:sink: caps = image/jpeg, width=(int)780, height=(int)503, sof-marker=(int)0
/GstPipeline:pipeline0/GstURIDecodeBin:source/GstDecodeBin:decodebin0/GstNvJpegDec:nvjpegdec0.GstPad:src: caps = video/x-raw(memory:NVMM), format=(string)I420, width=(int)780, height=(int)503, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)1:4:0:0, framerate=(fraction)0/1
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)780, height=(int)503, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)0/1, format=(string)RGBA, block-linear=(boolean)false
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)780, height=(int)503, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)0/1, format=(string)RGBA, block-linear=(boolean)false
/GstPipeline:pipeline0/GstNvStreamMux:muxer.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1024, height=(int)1024, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, framerate=(fraction)0/1, format=(string)RGBA, block-linear=(boolean)false, batch-size=(int)1, num-surfaces-per-frame=(int)1
/GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1024, height=(int)1024, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, framerate=(fraction)0/1, format=(string)RGBA, block-linear=(boolean)false, batch-size=(int)1, num-surfaces-per-frame=(int)1
/GstPipeline:pipeline0/GstNvStreamMux:muxer.GstNvStreamPad:sink_0: caps = video/x-raw(memory:NVMM), width=(int)780, height=(int)503, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)0/1, format=(string)RGBA, block-linear=(boolean)false
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)780, height=(int)503, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)0/1, format=(string)RGBA, block-linear=(boolean)false
/GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert0.GstPad:sink: caps = video/x-raw(memory:NVMM), format=(string)I420, width=(int)780, height=(int)503, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)1:4:0:0, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstURIDecodeBin:source.GstGhostPad:src_0.GstProxyPad:proxypad2: caps = video/x-raw(memory:NVMM), format=(string)I420, width=(int)780, height=(int)503, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)1:4:0:0, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstURIDecodeBin:source/GstDecodeBin:decodebin0.GstDecodePad:src_0.GstProxyPad:proxypad1: caps = video/x-raw(memory:NVMM), format=(string)I420, width=(int)780, height=(int)503, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)1:4:0:0, framerate=(fraction)0/1
0:00:00.245947034 305 0x55aa6d28a0 WARN nvvideoconvert gstnvvideoconvert.c:3102:gst_nvvideoconvert_transform: error: Memory Compatibility Error:Input surface gpu-id doesnt match with configured gpu-id for element, please allocate input using unified memory, or use same gpu-ids OR, if same gpu-ids are used ensure appropriate Cuda memories are used
0:00:00.246012660 305 0x55aa6d28a0 WARN nvvideoconvert gstnvvideoconvert.c:3102:gst_nvvideoconvert_transform: error: surface-gpu-id=2080560336,nvvideoconvert0-gpu-id=0
0:00:00.246116881 305 0x55aa6d28a0 ERROR nvvideoconvert gstnvvideoconvert.c:3488:gst_nvvideoconvert_transform: buffer transform failed
ERROR: from element /GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert0: Memory Compatibility Error:Input surface gpu-id doesnt match with configured gpu-id for element, please allocate input using unified memory, or use same gpu-ids OR, if same gpu-ids are used ensure appropriate Cuda memories are used
Additional debug info:
/dvs/git/dirty/git-master_linux/deepstream/sdk/src/gst-plugins/gst-nvvideoconvert/gstnvvideoconvert.c(3102): gst_nvvideoconvert_transform (): /GstPipeline:pipeline0/Gstnvvideoconvert:nvvideoconvert0:
surface-gpu-id=2080560336,nvvideoconvert0-gpu-id=0
ERROR: pipeline doesn’t want to preroll.
Setting pipeline to NULL …
Freeing pipeline …
Log from Jetson NX
Setting pipeline to PAUSED …
Pipeline is PREROLLING …
/GstPipeline:pipeline0/GstURIDecodeBin:source: source = “(GstFileSrc)\ source”
/GstPipeline:pipeline0/GstURIDecodeBin:source/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = image/jpeg, width=(int)780, height=(int)503, sof-marker=(int)0
/GstPipeline:pipeline0/GstURIDecodeBin:source/GstDecodeBin:decodebin0/GstNvJpegDec:nvjpegdec0.GstPad:sink: caps = image/jpeg, width=(int)780, height=(int)503, sof-marker=(int)0
/GstPipeline:pipeline0/GstURIDecodeBin:source/GstDecodeBin:decodebin0/GstNvJpegDec:nvjpegdec0.GstPad:src: caps = video/x-raw(memory:NVMM), format=(string)Y444, width=(int)780, height=(int)503, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)1:4:0:0, framerate=(fraction)0/1
ERROR: from element /GstPipeline:pipeline0/GstURIDecodeBin:source/GstDecodeBin:decodebin0/GstTypeFindElement:typefind: Internal data stream error.
Additional debug info:
gsttypefindelement.c(1228): gst_type_find_element_loop (): /GstPipeline:pipeline0/GstURIDecodeBin:source/GstDecodeBin:decodebin0/GstTypeFindElement:typefind:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn’t want to preroll.
Setting pipeline to NULL …
Freeing pipeline …
root@6c1e559e058c:/opt/nvidia/deepstream/deepstream-6.1# gst-launch-1.0 -v uridecodebin name=source uri=file:///data/bug.jpg ! nvvideoconvert nvbuf-memory-type=0 ! “video/x-raw(memory:NVMM), format=RGBA” ! fakesink
Setting pipeline to PAUSED …
Pipeline is PREROLLING …
/GstPipeline:pipeline0/GstURIDecodeBin:source: source = “(GstFileSrc)\ source”
/GstPipeline:pipeline0/GstURIDecodeBin:source/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = image/jpeg, width=(int)780, height=(int)503, sof-marker=(int)0
/GstPipeline:pipeline0/GstURIDecodeBin:source/GstDecodeBin:decodebin0/GstNvJpegDec:nvjpegdec0.GstPad:sink: caps = image/jpeg, width=(int)780, height=(int)503, sof-marker=(int)0
/GstPipeline:pipeline0/GstURIDecodeBin:source/GstDecodeBin:decodebin0/GstNvJpegDec:nvjpegdec0.GstPad:src: caps = video/x-raw(memory:NVMM), format=(string)Y444, width=(int)780, height=(int)503, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)jpeg, colorimetry=(string)1:4:0:0, framerate=(fraction)0/1
ERROR: from element /GstPipeline:pipeline0/GstURIDecodeBin:source/GstDecodeBin:decodebin0/GstTypeFindElement:typefind: Internal data stream error.
Additional debug info:
gsttypefindelement.c(1228): gst_type_find_element_loop (): /GstPipeline:pipeline0/GstURIDecodeBin:source/GstDecodeBin:decodebin0/GstTypeFindElement:typefind:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn’t want to preroll.
Setting pipeline to NULL …
Freeing pipeline …
I tried changing the resolution of the image, but it only changed the error.
test_images.zip (121.8 KB)