GstCUDA - Evaluating GstCUDA: Difference between revisions

From RidgeRun Developer Wiki
No edit summary
No edit summary
Line 1: Line 1:
{{GstCUDA Page |  
{{GstCUDA Page |  
[[GstCUDA - Supported Platforms|Supported Platforms]]|
[[GstCUDA - Supported Platforms|Supported Platforms]]|
[[GstCUDA - Building and Installation Guide|Building and Installation Guide]]|
[[GstCUDA - Project Structure|Project Structure]]|


This page serves as a guide to test the GstCUDA evaluation binary provided by RidgeRun.
This page serves as a guide to test the GstCUDA evaluation binary provided by RidgeRun.

Revision as of 22:57, 28 November 2017


Supported Platforms


Home

Project Structure



This page serves as a guide to test the GstCUDA evaluation binary provided by RidgeRun.

Requesting the Evaluation Binary

In order to request an evaluation binary for a specific architecture, please contact us providing the following information:

  • Platform (i.e.: TX1, TX2)
  • gst-launch-1.0 --gst-version
  • uname -a
  • Jetpack and L4T version


Features in the Evaluation Version

The GstCUDA evaluation version contains all the features of the full version, but with the exception that is limited to only process 600 frames as maximum. Also, it is provided in a binary way, so you won't have access to the source code.

The 600 frames maximum processing limitation allows to test GstCUDA for 10 seconds on a 60fps pipeline, or for 20 seconds on a 30fps pipeline.

The following table summarizes the features available in both the professional and evaluation version of the element.

Feature Professional Evaluation
cudafilter Element Y Y
cudaexamplefilter Element Y Y
CUDA algorithm examples Library Y Y
Unlimited Processing Time Y N (1)
Source Code Y N
Table 1. Features provided in the evaluation version
(1) The evaluation version will limit the processing time to a maximum of 600 frames.


Installing & Testing the Binary

Dependencies

First, make sure the dependencies are fulfilled:

sudo apt-get install \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
gstreamer1.0-plugins-base \
libgstreamer-plugins-bad1.0-dev \
gstreamer1.0-plugins-bad \
libegl1-mesa-dev \
gtk-doc-tools

Also, be sure that [CUDA L4T package] dependency is successfully installed.

Eval Binary structure

The provided GstCUDA eval version tarball must have the following structure:

└── usr
    ├── include
    │   └── gstreamer-1.0
    │       └── sys
    │           └── cuda
    │               ├── gstcudaalgorithm.hpp
    │               ├── gstcudabasefilter.h
    │               └── gstcuda.h
    ├── lib
        └── aarch64-linux-gnu
            ├── gstreamer-1.0
            │   ├── libgstcudaexamplefilter.so
            │   └── libgstcuda.so
            ├── libgstcuda-1.0.so -> libgstcuda-1.0.so.0.100.0
            ├── libgstcuda-1.0.so.0 -> libgstcuda-1.0.so.0.100.0
            └── libgstcuda-1.0.so.0.100.0

Eval Binary Installation

To use the binary provided by RidgeRun, export the location of the evaluation binary libraries in your environment.

export GST_PLUGIN_PATH=${GST_PLUGIN_PATH}:/path/to/evaluation/binary/usr/lib/aarch64-linux-gnu/gstreamer-1.0/
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/path/to/evaluation/binary/usr/lib/aarch64-linux-gnu/

where /path/to/evaluation/binary is the location in your file system where you have the binary provided by RidgeRun.

Alternatively, you may just copy the binaries into the standard GStreamer plug-in search path as the follow instructions:

sudo cp /path/to/evaluation/binary/usr/lib/aarch64-linux-gnu/gstreamer-1.0/{libgstcudaexamplefilter.so,libgstcuda.so} /usr/lib/aarch64-linux-gnu/gstreamer-1.0

sudo cp /path/to/evaluation/binary/usr/lib/aarch64-linux-gnu/{libgstcuda-1.0.so,libgstcuda-1.0.so.0,libgstcuda-1.0.so.0.100.0} /usr/lib/aarch64-linux-gnu

sudo cp /path/to/evaluation/binary/usr/include/gstreamer-1.0/sys/cuda/{gstcudaalgorithm.hpp,gstcudabasefilter.h,gstcuda.h} /usr/include/gstreamer-1.0/sys/cuda

Eval Binary Testing

Finally, test that the plugin is being properly picked up by GStreamer by running:

$ gst-inspect-1.0 cuda
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.2.2.1
  License                  Proprietary
  Source module            gst-cuda
  Source release date      2017-11-27 21:03 (UTC)
  Binary package           GStreamer CUDA Plug-in
  Origin URL               Unknown package origin

  cudafilter: cudafilter

  1 features:
  +-- 1 elements
$ gst-inspect-1.0 | grep cuda
cudaexamplefilter:  cudaexamplefilter: GstCUDA Example Filter Element
cuda:  cudafilter: cudafilter

You should see the inspect output for the evaluation binary as shown above.


Example Pipelines

Please refer to the Examples page for reference pipelines.


Troubleshooting

The first level of debug to troubleshoot a failing evaluation binary is to inspect GStreamer debug output.

GST_DEBUG=2 gst-launch-1.0

If the output doesn't help you figure out the problem, please contact support@ridgerun.com with the output of the GStreamer debug and any additional information you consider useful.

If the plug-in is not being recognized, please provide the output of the following command:

gst-inspect-1.0 cuda




Supported Platforms


Home

Project Structure