NVIDIA Jetson Orin - GstInterpipe GStreamer plugin for communicating between the pipelines

From RidgeRun Developer Connection
Jump to: navigation, search



Previous: RidgeRun Products/GstRtspSink Index Next: RidgeRun Products/GstInference


Nvidia-preferred-partner-badge-rgb-for-screen.png





Overview

GstInterpipe is a RidgeRun open-source GStreamer plug-in that allows communication between two or more independent pipelines. It consists of two elements: interpipesink and interpipesrc. The interpipesrc gets connected with an interpipesink, from which it receives buffers and events.

GstInterpipe is intended to reduce a big complex pipeline system into smaller and simpler independent pipelines. So, you can view and handle those independent pipelines as different blocks that you can control independently (change its state or modify properties) and connect or disconnect them with other blocks in runtime. It allows us to have multiple source and sink pipelines in an application with the possibility of dynamically changing the source pipeline that a sink pipeline is listening to. Is like if you have a set of different pipes that you can plug and unplug between them in runtime, so the system changes its behavior according to the pipe interconnection configuration.

Promo/Demo Video


Simplifying complex pipelines

The concept behind the GstInterpipes project is to simplify the construction of GStreamer applications, which often have the complexity of requiring dynamic pipelines. It transforms the construction process from low-level pad probe manipulation to the higher level of setting an element's parameter value. Application developers don't get mired down in, stalled pipelines due to one branch of a complex pipeline changing state.

For example, take a look at a complex pipeline:

Error creating thumbnail: Unable to save thumbnail to destination
Figure 2. Simple example with label and camera source

The complex pipeline of Figure 2 can be constructed into smaller, independent pipelines using interpipe elements as illustrated in Figure 3:

Error creating thumbnail: Unable to save thumbnail to destination
Figure 3: Ten independent simple pipelines using Interpipes

This way the stream flow in a complex pipeline is reduced to simply setting the correct listeners in the interpipe elements taking away the complexity of re-configuring pads or some other complex and error-prone logic.

Getting Started

To know more about the extension please refer to the GstInterpipe Overview wiki page.

How to Purchase

NVIDIA Jetson Orin/Contact_Us page has the RidgeRun contact details for purchasing or requesting the evaluation version.



Previous: RidgeRun Products/GstRtspSink Index Next: RidgeRun Products/GstInference