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 maintainis_keyframe
(Membrane.Buffer.t(), Track.t() -> boolean())
Required
Function informing if buffer is a keyframe for this trackwait_for_keyframe_request?
boolean()
Default value:
false
Flag that determines if TrackSender should wait with publishing stream until it receivesMembrane.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
Types
Struct containing options for Membrane.RTC.Engine.Support.StaticTrackSender
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