Hello NVIDIA Team,
I’m working with the nvsipl_camera source code provided as part of the Drive OS 6.0.5 SDK + DriveWorks 5.8 on a DRIVE AGX Orin platform.
My goal is to offload part of the image pipeline (YUV → RGB color conversion and scaling) from CPU to GPU using NvMedia 2D or DriveWorks Image Streamer APIs, to achieve zero-copy GPU-based processing.
However, while integrating the GPU path, the build fails with missing NvMedia headers, for example:
fatal error: nvmedia_image.h: No such file or directory
After inspecting the SDK contents, I noticed:
-
The legacy headers such as
nvmedia_image.handnvmedia_2d.hare not present under:
/usr/include/nvmedia/
or
/usr/local/driveworks-5.8/targets/aarch64-Linux/include/
Only the newer NvMedia 6.x headers are available under:
drive-linux/include/nvmedia_6x/
drive-linux/include/nvmedia_6x/
Code ContextI am modifying the camera publisher in
nvsipl_camerato process frames directly on the GPU before publishing them to ROS 2.
Below is the simplified function that triggers the issue:
void CameraPublisher::publishFrame(uint32_t sensor_id,
INvSIPLClient::INvSIPLNvMBuffer* pNvMBuffer)
{
NvSciBufObj bufPtr = pNvMBuffer->GetNvSciBufImage();// Attempt to use NvMedia2D and DriveWorks for GPU color conversion dwImageNvMedia *imageNvMedia = nullptr; dwImageNvMedia_createFromNvSciBufObj(&imageNvMedia, bufPtr, dwContext_); dwImageNvMedia *convertedImage = nullptr; dwImageNvMedia_create(&convertedImage, DW_IMAGE_FORMAT_RGB, getWidth(), getHeight(), dwContext_); NvMedia2DTransformParams transformParams = {}; transformParams.filter = NVMEDIA_2D_FILTER_LANCZOS; NvMedia2DTask *task = NvMedia2DTaskCreate(); NvMedia2DSetSrcNvSciBufObj(task, bufPtr); NvMedia2DSetDstImage(task, convertedImage->img); NvMedia2DSetTransformParams(task, &transformParams); NvMedia2DSubmit(nvmedia2D_, task); NvMedia2DTaskDestroy(task); // Stream GPU→CPU for ROS publishing dwImageCPU *imageCPU = nullptr; dwImageStreamer_postNvMedia(imageNvMedia, streamerCUDA2CPU_); dwImageStreamer_receiveCPU(&imageCPU, streamerCUDA2CPU_, DW_TIMEOUT_INFINITE);}
During compilation, DriveWorks’ internal header<dw/image/Image.h>attempts to include<nvmedia_image.h>, which does not exist in Drive OS 6.0.5.Questions
-
Has
nvmedia_image.hbeen deprecated or renamed in Drive OS 6.0.5? -
What is the correct NvMedia header or API to use for GPU-based color conversion and scaling (interfacing with NvSciBuf / SIPL buffers)?
-
Is there an updated sample or documentation demonstrating how to perform these image operations entirely on GPU using DriveWorks 5.8 and Drive OS 6.0.5?
Environment Details
-
Platform: DRIVE AGX Orin
-
Drive OS Version: 6.0.5
-
DriveWorks Version: 5.8
-
Toolchain: aarch64–glibc–stable-2022.03-1
-
Sample:
nvsipl_camera(source build) -
Build Type: Cross-compiled on host (Ubuntu 20.04)
-
-