GstCUDA - cudafilter
← |
⌂ Home |
→ |
This page describes in detail the cudafilter element of the GstCUDA plugin.
Description
Cudafilter is a one input/output pad video filter GStreamer element, that allows video frames to be processed by the GPU using a custom CUDA library algorithm. With this element users can now develop their own CUDA processing library, pass the library into cudafilter, which executes the library on the GPU, passing upstream frames from the GStreamer pipeline to the GPU and passing the modified frames downstream to the next element in the GStreamer pipeline.
This element executes the CUDA algorithm from a custom CUDA library (XXX.so file) loaded dynamically during run-time, passed trough an element's property. The CUDA algorithm is separated from the GStreamer element, so the developer could make modifications to the CUDA algorithm, recompile the custom CUDA library and run the GStreamer pipeline again to test the changes. This process can be iterated as many times as needed to debug a custom CUDA algorithm. This feature make cudafilter ideal for quick prototyping, because it offers flexibility and adaptability to many project requirements.
The key feature of this element is the capability to load the CUDA algorithm to be executed on the GPU to process the incoming frames, from an external compiled custom CUDA library. This gives the advantage of having the GStreamer element separated from the CUDA algorithm. So, the developer don't have to worry about the GStreamer-CUDA interface and complex memory handling, because the cudafilter will take care of that. Instead, the developer can be focused on the CUDA custom CUDA algorithm development, and test any change made during the debugging process by just recompiling the CUDA library and just execute the GStreamer pipeline again without the necessity to modify, recompile and reinstall the GstCUDA plugin. This feature is crucial in reducing the time to market on project development, because considerably accelerates the prototyping stage.
Key features
- Dynamically load of an external compiled CUDA library that contains the CUDA algorithm to be executed in the GPU to process the incoming frames.
- Independence between GStreamer element and CUDA algorithm.
- High performance, due to zero memory copies interface between CUDA and GStreamer.
- Directly handle of NVMM memory type buffers.
- Ideal for quick prototyping and reducing time to market of a project development
Element properties description
Under construction
Element inspect
$ sudo apt-get update Factory Details: Rank none (0) Long-name cudafilter Klass Filter Description Allows frames to be processed by the GPU using a custom CUDA library algorithm Author Adrian Cervantes <adrian.cervantes@ridgerun.com> Daniel Garbanzo <daniel.garbanzo@ridgerun.com> Michael Gruner <michael.gruner@ridgerun.com> Plugin Details: Name cuda Description Allows frames to be processed by the GPU using a custom CUDA library algorithm Filename /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstcuda.so Version 0.1.0.1 License Proprietary Source module gst-cuda Source release date 2017-09-21 17:31 (UTC) Binary package GStreamer CUDA Plug-in Origin URL Unknown package origin GObject +----GInitiallyUnowned +----GstObject +----GstElement +----GstBaseTransform +----GstCudafilter Pad Templates: SRC template: 'src' Availability: Always Capabilities: ANY SINK template: 'sink' Availability: Always Capabilities: ANY Element Flags: no flags set Element Implementation: Has change_state() function: gst_element_change_state_func Element has no clocking capabilities. Element has no URI handling capabilities. Pads: SINK: 'sink' Pad Template: 'sink' SRC: 'src' Pad Template: 'src' Element Properties: name : The name of the object flags: readable, writable String. Default: "cudafilter0" parent : The parent of the object flags: readable, writable Object of type "GstObject" qos : Handle Quality-of-Service events flags: readable, writable Boolean. Default: false
← |
⌂ Home |
→ |