GstCUDA is a GStreamer framework enabling easy CUDA algorithm integration into GStreamer pipelines.
GstCUDA is a GStreamer framework enabling easy CUDA algorithm integration into GStreamer pipelines. The framework consists of a series of base classes and utils abstracting the complexity of both CUDA and GStreamer. With GstCUDA developers avoid writing elements from scratch, allowing the developer to focus on the algorithm logic, thus accelerating time to market.
GstCUDA also offers a GStreamer plugin that contains a set of elements, that are ideal for GStreamer/CUDA quick prototyping. They allow loading at runtime an external custom CUDA library that contains the algorithm to be executed on the GPU on each video frame that passes through the pipeline. These elements have different input/output pad combinations to prototype different algorithm topologies.
GstCUDA provides the means to design a zero memory copy interface between CUDA and GStreamer on Jetson TX1/TX2 and Xavier platforms. It is capable of directly handling NVMM buffers and/or sharing Unified Memory with the rest of the pipeline. This enables heavy algorithms and large amounts of data (up to 2x 4K 60fps streams) to be processed on CUDA without the extra load performance caused by copies or memory conversions.
GStreamer GstCUDA solves the developer's need to focus on the development of CUDA algorithms without having to worry about how to interface the algorithm with the application, how to inject and extract the data from the GPU, and how to ensure a good performance; because GstCUDA framework takes care of those important details.