Question about Gstreamer


I am currently working with cameras and I use the following gstreamer pipeline to get video flow with opencv 3.

nvcamerasrc sensor-id=0 ! video/x-raw(memory:NVMM), width=(int)4104, height=(int)3046, format=(string)I420, framerate=(fraction)30/1 ! nvvidconv ! video/x-raw, width=(int)1280, height=(int)720, format=(string)I420 ! appsink

It works fine @30 fps but I am wondering what is the meaning of the “memory:NVMM” and “x-raw” keywords?

Thanks in advance.

video/x-raw is for unstructured and uncompressed raw video data (check gstreamer doc).

memory:NVMM specifies that buffers should be allocated in contiguous memory, for usage by ISP, NVDEC, NVENC or GPU.