How do you take GStreamer video out of memory:NVMM

I am trying to test running an opencv gstreamer plugin on a live camera capture. When I run try to run the following pipeline it fails to link.

gst-launch-1.0 -vvv nvcamerasrc fpsRange='30.0 30.0' ! "video/x-raw(memory:NVMM), width=(int)2592, height=(int)1944,format=(string)I420, framerate=(fraction)30/1" ! videoconvert ! facedetect ! videoconvert ! autovideosink

I have tried similar pipeline on my main machine and they seem to work. All I can think is that it cannot take the video data out of the memory:NVMM space. Is there anyway to transfer data from video/x-raw(memory:NVMM) to video/x-raw?

Hi

from my experience with v4l2src its possible to add a nvvidconv and the required capabilities, to convert between different memory types, e.g.:

gst-launch-1.0 -vvv nvcamerasrc fpsRange='30.0 30.0' ! "video/x-raw(memory:NVMM), width=(int)2592, height=(int)1944,format=(string)I420, framerate=(fraction)30/1" ! nvvidconv ! "video/x-raw, width=(int)2592, height=(int)1944,format=(string)I420, framerate=(fraction)30/1" ! videoconvert ! facedetect ! videoconvert ! autovideosink

That worked! Thanks.