Membrane.ICE.Source (Membrane ICE plugin v0.1.0) View Source

Element that receives buffers (over UDP or TCP) and sends them on relevant pads.

As Source works analogously to the Sink here we only describe features that are specific for Source.

Architecture and pad semantics

Multiple components are handled with dynamic pads. Receiving data on component with id component_id will cause in conveying this data on pad with id component_id. Other elements can be linked to the Source in any moment but before playing pipeline.

Interacting with Source

Interacting with Source is the same as with Sink. Please refer to Membrane.ICE.Sink for details.

Messages Source is able to process

Messages Source is able to process are the same as for Sink. Please refer to Membrane.ICE.Sink for details.

Messages Source sends

Source sends all messages that Sink sends. Please refer to Membrane.ICE.Sink for details.

Element options

Passed via struct Membrane.ICE.Source.t/0

  • n_components

    Default value: 1 Number of components that will be created in the stream

  • stream_name

    Default value: "" Name of the stream

  • stun_servers

    Default value: [] List of stun servers in form of ip:port

  • controlling_mode

    Default value: false Refer to RFC 8445 section 4 - Controlling and Controlled Agent

  • port_range

    Default value: 0..0 The port range to use

  • handshake_module

    Default value: Membrane.ICE.Handshake.Default Module implementing Handshake behaviour

  • handshake_opts

    Default value: [] Options for handshake module. They will be passed to start_link

                function of handshake_module

Pads

:output

Availability:on_request
Bin?false
Caps:any
Direction:output
Mode:push
Name:output

Link to this section Summary

Types

t()

Struct containing options for Membrane.ICE.Source

Functions

Returns pads descriptions for Membrane.ICE.Source

Returns description of options available for this module

Link to this section Types

Specs

t() :: %Membrane.ICE.Source{
  controlling_mode: any(),
  handshake_module: any(),
  handshake_opts: any(),
  n_components: any(),
  port_range: any(),
  stream_name: String.t(),
  stun_servers: any()
}

Struct containing options for Membrane.ICE.Source

Link to this section Functions

Specs

membrane_pads() :: [{Membrane.Pad.name_t(), Membrane.Pad.description_t()}]

Returns pads descriptions for Membrane.ICE.Source

Specs

options() :: keyword()

Returns description of options available for this module