Membrane.RTP.SSRCRouter (Membrane RTP plugin v0.31.1)
View SourceA 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:
RTCPRTP| Direction: | :input |
| Availability: | :on_request |
| Flow control: | :auto |
:output
Accepted formats:
RTP| Direction: | :output |
| Availability: | :on_request |
| Flow control: | :auto |
Pad options:
telemetry_labelMembrane.TelemetryMetrics.label()Default value:
[]encodingatom() | nilDefault 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(), Membrane.RTP.payload_type(), [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