Missing NvMedia GPU headers while enabling GPU processing in nvsipl_camera (Drive OS 6.0.5 + DriveWorks 5.8)

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.h and nvmedia_2d.h are 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 Context

    I am modifying the camera publisher in nvsipl_camera to 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

    1. Has nvmedia_image.h been deprecated or renamed in Drive OS 6.0.5?

    2. What is the correct NvMedia header or API to use for GPU-based color conversion and scaling (interfacing with NvSciBuf / SIPL buffers)?

    3. 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)