View Source Membrane.RTC.Engine.Support.StaticTrackSender (Membrane RTC Engine v0.23.0)

This is a very simple version of Membrane.RTC.Engine.Endpoint.WebRTC.TrackSender element.

Engine forwards track starting from a keyframe. Therefore, whenever some endpoint requests some track, engine sends keyframe request to the track source.

In case of publishing from a file we are not able to generate keyframe on request. Depending on the value of the option wait_for_keyframe_request? this element will ignore incoming demands and start sending data after receiving first keyframe request or start sending data without waiting for keyframe request. In both cases subsequent keyframe requests are ignored.

Element options

Passed via struct Membrane.RTC.Engine.Support.StaticTrackSender.t/0

  • track

    Membrane.RTC.Engine.Track.t()

    Required
    Track this sender will maintain

  • is_keyframe

    (Membrane.Buffer.t(), Track.t() -> boolean())

    Required
    Function informing if buffer is a keyframe for this track

  • wait_for_keyframe_request?

    boolean()

    Default value: false
    Flag that determines if TrackSender should wait with publishing stream until it receives Membrane.KeyframeRequestEvent

Pads

:input

Accepted formats:

Membrane.RTP
Direction::input
Availability::always
Flow control::manual
Demand unit::buffers

:output

Accepted formats:

Membrane.RTP
Direction::output
Availability::always
Flow control::manual
Demand unit:nil

Summary

Functions

Returns description of options available for this module

Types

@type t() :: %Membrane.RTC.Engine.Support.StaticTrackSender{
  is_keyframe: (Membrane.Buffer.t(), Membrane.RTC.Engine.Track.t() -> boolean()),
  track: Membrane.RTC.Engine.Track.t(),
  wait_for_keyframe_request?: boolean()
}

Struct containing options for Membrane.RTC.Engine.Support.StaticTrackSender

Functions

@spec options() :: keyword()

Returns description of options available for this module