Access NVMM mapped nvarguscamerasrc frames from CUDA on Jetson Orin AGX

Hi Guys,

I have been spending the past days trying to access nvarguscamerasrc frames from gstreamer, but untill now with no luck. I am aware of the NV12 format (video/x-raw(memory:NVMM)) and I just need to access its y_channel.

I need to both read from and write to the y_channel.

I have shared a repo with my minimal gstreamer plugin alongside a build script that can be run by “make clean test”

It executes a pipeline

gst-launch-1.0
nvarguscamerasrc sensor-id=1
! “video/x-raw(memory:NVMM),format=NV12,width=3840,height=2160,framerate=30/1”
! cudasample
! nvv4l2h265enc iframeinterval=90 maxperf-enable=true insert-sps-pps=true preset-level=1 insert-vui=true insert-aud=true bitrate=8000000
! h265parse config-interval=-1
! queue
! mpegtsmux
! tcpserversink host=“0.0.0.0” port=9002

And i test the pipeline from a networked PC using

ffplay -fflags nobuffer -flags low_delay -framedrop -strict experimental -probesize 32 -sync ext tcp://host_ip:9002

The plugin I have implemented is “cudasample”

Regardless of my attempts I always get an “an illegal memory access was encountered”.

I would appreciate some pointers, or ideally a pull request, on how to access the y data from a cuda kernel.

Hi,
NVMM buffer is based on NvBufSurface APIs, so you can access the buffer through the APIs. There is demonstration in jetson_multimedia_api and please check 12 sample. And nvarguscamerasrc is open source. You can customize it to add the function.

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