Plugin Elements

From RidgeRun Developer Wiki

Follow Us On Twitter LinkedIn Email Share this page










Plugin Elements

Here is a detailed description of each of the elements included in GstMoq and their properties.

rrmoqsink

rrmoqsink is a GStreamer sink element that consumes encoded audio and video buffers and publishes them to a Media over QUIC relay as MoQ tracks.

The internal representation of the media (e.g. fragmented containers or raw access units) is transparent to the user; the element operates directly on the encoded stream data provided by the pipeline.

Element Overview

Factory Details:
  Long-name                MoQ Sink
  Klass                    Sink/Network
  Description              Consumes encoded media and sends it over QUIC

Supported Caps

The sink pad accepts the following media formats:

  • video/x-h264 (byte-stream, AU aligned)
  • audio/mpeg (AAC, raw or ADTS)
  • video/quicktime (iso-fragmented)

Pads

  • sink (always available)

Key Properties

Property Description
channel MoQ namespace / channel where the media is published
track-name Track identifier within the channel
relay-url URL of the MoQ relay endpoint

The channel and track-name properties map directly to MoQ namespaces and tracks.

Usage Notes

  • The element expects pre-encoded audio or video buffers.
  • Media format handling is transparent to the application as long as caps are supported.

rrmoqsrc

rrmoqsrc is a GStreamer source element that subscribes to media tracks from a Media over QUIC relay and exposes them as dynamic source pads.

It acts as a MoQ subscriber and outputs the received encoded media buffers into the pipeline.

Element Overview

Factory Details:
  Long-name                MoQ Source
  Klass                    Source/MoQ
  Description              Receives Media over QUIC

Pads

Pads are created dynamically based on the tracks received from the relay. The name of the pad corresponds to the name of the track.

Key Properties

Property Description
channel Target broadcast channel/namespace
relay-url URL of the MoQ relay endpoint to connect to (required)

Both properties must be set while the element is in the NULL or READY state.

Usage Notes

  • Pads are created on demand.
  • The element outputs encoded media buffers exactly as published by the sender.
  • Decoding can be performed downstream if required by the application.

rrmoqbin

rrmoqbin is a high-level GStreamer bin that simplifies working with Media over QUIC by managing multiple tracks, channels, and relay processes.

It is intended to be the primary integration point for applications that publish or forward multiple media streams over MoQ.

Element Overview

Factory Details:
  Long-name                MoQ Bin
  Klass                    Sink/Bin
  Description              Streams multiple media tracks across multiple channels with MoQ

Sink Pads

  • sink_%u (request pads)

Each sink pad represents a separate MoQ track and exposes the following pad properties:

  • channel: Target broadcast channel / namespace
  • track-name: Track identifier within the channel

Supported Caps

  • video/x-h264 (AVC, AU aligned)
  • audio/aac
  • video/quicktime (iso-fragmented)

Relay Management

rrmoqbin can operate in two relay modes:

  • local: Spawns and manages a local relay process
  • external: Connects to an existing external relay server

Relevant properties include:

Property Description
relay-mode Select local or external relay
relay-bin Executable used to spawn the local relay
relay-server-host-addr Relay URL or bind address

Web Build Extensions

When built with the web-build feature enabled, additional properties become available:

  • run-web-server: Launch a development web server
  • web-server-host-addr: Address where the web server listens
  • web-server-path: Path to the web client project

This mode is intended for development and experimentation with browser-based MoQ clients.

Usage Notes

  • Multiple sink pads can be requested to publish multiple tracks concurrently.
  • The bin manages relay lifecycle and track publication internally.