GstNetBalancer - Evaluating the balancer

From RidgeRun Developer Wiki



Previous: Getting Started Index Next: Getting Started/Getting the Code






Requesting the Evaluation Binary

RidgeRun can provide you with an evaluation binary of the Stitcher to help you test it, in order to request an evaluation binary for a specific architecture, please contact us providing the following information:

  • Platform (i.e.: NVIDIA Jetson TX1/TX2, Xavier, Nano, or x86)
  • Jetpack version
  • Input resolutions and frame rates
  • Expected output resolution and frame rate
  • Latency requirements

Features of the Evaluation

To help you test our NetBalancer, RidgeRun can provide an evaluation version of the plug-in.

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

Feature Professional Evaluation
GstNetBalancer Element 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 to 5 minutes of processing.

Installing the evaluation version

Once the evaluation binaries are requested RidgeRun will provide you with a compressed tar package containing the element library.

Dependencies

The GstNetBalancer evaluation has the following dependencies:

GStreamer

The GStreamer packages are likely already installed in your Ubuntu OS distribution. In case you want to double-check and install the missing packages, run the following commands.

sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-bad

Eval binaries structure

First extract the package contents with the following command:

tar xvzf <path-to-evaluation-tar-file>

The package structure should look like the following:

For x86

usr/
└── lib
    └── x86_64-linux-gnu
        └── gstreamer-1.0
            └── libgstnetbalancer.so

For Jetson

usr/
└── lib
    └── aarch64-linux-gnu
        └── gstreamer-1.0
            └── libgstnetbalancer.so

Binaries installation

For x86

export GST_PLUGIN_PATH=${GST_PLUGIN_PATH}:${PATH_TO_EVALUATION_BINARY}/usr/lib/x86_64-linux-gnu/gstreamer-1.0/
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${PATH_TO_EVALUATION_BINARY}/usr/lib/x86_64-linux-gnu/

where PATH_TO_EVALUATION_BINARY is set the location in your file system where you have stored the binary provided by RidgeRun.

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

sudo cp -r ${PATH_TO_EVALUATION_BINARY}/usr /

For Jetson

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 set the location in your file system where you have stored the binary provided by RidgeRun.

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

sudo cp -r ${PATH_TO_EVALUATION_BINARY}/usr /

Eval Binaries Testing

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

gst-inspect-1.0 netbalancer

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

Factory Details:
  Rank                     none (0)
  Long-name                Network traffic balancer
  Klass                    Filter/Network
  Description              Balance network packages to respect bandwidth over time
  Author                   Melissa Montero <melissa.montero@ridgerun.com>

Plugin Details:
  Name                     netbalancer
  Description              Distribute network packages over time
  Filename                 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstnetbalancer.so
  Version                  0.1.0
  License                  Proprietary
  Source module            gst-net-balancer
  Binary package           gst-net-balancer source release
  Origin URL               www.ridgerun.com

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseTransform
                         +----GstNetBalancer

Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      ANY
  
  SRC template: 'src'
    Availability: Always
    Capabilities:
      ANY

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: "netbalancer0"
  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
  bandwidth           : Bandwidth in kbps to distribute over time
                        flags: readable, writable
                        Unsigned Integer64. Range: 0 - 9223372036854775807 Default: 2500 
  distribution-factor : Number of intervals in which you are going to divide the secondand the bandwidth to distribute it
                        flags: readable, writable
                        Unsigned Integer. Range: 1 - 4294967295 Default: 50 
  min-delay           : Microseconds to wait between packets
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967295 Default: 0

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.

RidgeRun also offers professional support hours that you can invest in any embedded Linux-related task you want to assign to RidgeRun, such as hardware bring-up tasks, application development, GStreamer pipeline fine-tuning, drivers, etc...



Previous: Getting Started Index Next: Getting Started/Getting the Code