View Source Membrane.RTP.SSRCRouter (Membrane RTP plugin v0.29.1)
A filter separating RTP packets from different SSRCs into different outpts.
When receiving a new SSRC, it creates a new pad and notifies its parent (new_stream_notification_t/0
) that should link
the new output pad.
When an RTCP event arrives from some output pad the router tries to forward it to a proper input pad.
The input pad gets chosen by the source input pad from which packets with given ssrc were previously sent,
the source pad's id gets extracted and the router tries to send the event to an input
pad of id {:input, id}
, if no such pad exists the router simply drops the event.
Pads
:input
Accepted formats:
RTCP
RTP
Direction: | :input |
Availability: | :on_request |
Flow control: | :auto |
:output
Accepted formats:
RTP
Direction: | :output |
Availability: | :on_request |
Flow control: | :auto |
Pad options:
telemetry_label
Membrane.TelemetryMetrics.label()
Default value:
[]
encoding
atom() | nil
Default value:
nil
Summary
Types
Notification sent when an RTP packet with new SSRC arrives and new output pad should be linked
Options for pad :output
Types
@type new_stream_notification_t() :: {:new_rtp_stream, Membrane.RTP.ssrc_t(), Membrane.RTP.payload_type_t(), [Membrane.RTP.Header.Extension.t()]}
Notification sent when an RTP packet with new SSRC arrives and new output pad should be linked
@type output_pad_opts() :: [ telemetry_label: Membrane.TelemetryMetrics.label(), encoding: atom() | nil ]
Options for pad :output