Membrane.RTC.Engine.Endpoint.WebRTC (Membrane RTC Engine v0.1.0) View Source
An Endpoint responsible for communicatiing with WebRTC peer.
It is responsible for sending and receiving media tracks from other WebRTC peer (e.g. web browser).
Bin options
Passed via struct Membrane.RTC.Engine.Endpoint.WebRTC.t/0
ice_name
String.t()
Required
Ice name is used in creating credentials for ice connnectionstun_servers
[ExLibnice.stun_server()]
Default value:
[]
List of stun serversturn_servers
[ExLibnice.relay_info()]
Default value:
[]
List of turn serversport_range
Range.t()
Default value:
0..0
Port range to be used byMembrane.ICE.Bin
handshake_opts
Keyword.t()
Default value:
[]
Keyword list with options for handshake module. For more information please refer toMembrane.ICE.Bin
filter_codecs
({RTPMapping.t(), FMTP.t() | nil} -> boolean())
Default value:
&Membrane.WebRTC.SDP.filter_mappings/1
Defines function which will filter SDP m-line by codecslog_metadata
:list
Default value:
[]
Logger metadata used for endpoint bin and all its descendantswebrtc_extensions
[Membrane.WebRTC.Extension.t()]
Default value:
[]
List of WebRTC extensions to use. At this moment only VAD (RFC 6464) is supported. Enabling it will cause RTC Engine sending{:vad_notification, val, endpoint_id}
messages.extensions
%{encoding_name :: atom() | :any => [Membrane.RTP.SessionBin.extension_t()]}
Default value:
%{}
A map pointing from encoding names to lists of extensions that should be used for given encodings. Encoding ":any
" indicates that extensions should be applied regardless of encoding. A sample usage would be to add silence discarder to OPUS tracks when VAD extension is enabled. It can greatly reduce CPU usage in rooms when there are a lot of people but only a few of them are actively speaking.integrated_turn_options
Membrane.ICE.Bin.integrated_turn_options_t()
Default value:
[use_integrated_turn: false]
owner
pid()
Required
Pid of parent all notifications will be send to. To see possible notifications please refer to module docs.trace_context
:list
Default value:
[]
Trace context for otel propagation
Pads
:input
Availability | :on_request |
Caps | :any |
Demand unit | :buffers |
Direction | :input |
Mode | :pull |
Name | :input |
:output
Availability | :on_request |
Caps | :any |
Demand unit | :buffers |
Direction | :output |
Mode | :pull |
Name | :output |
Link to this section Summary
Types
Struct containing options for Membrane.RTC.Engine.Endpoint.WebRTC
Functions
Returns pads descriptions for Membrane.RTC.Engine.Endpoint.WebRTC
Returns description of options available for this module
Link to this section Types
Specs
stun_server_t() :: ExLibnice.stun_server()
Specs
t() :: %Membrane.RTC.Engine.Endpoint.WebRTC{ extensions: %{ required(encoding_name :: atom() | :any) => [ Membrane.RTP.SessionBin.extension_t() ] }, filter_codecs: ({ExSDP.Attribute.RTPMapping.t(), ExSDP.Attribute.FMTP.t() | nil} -> boolean()), handshake_opts: Keyword.t(), ice_name: String.t(), integrated_turn_options: Membrane.ICE.Bin.integrated_turn_options_t(), log_metadata: :list, owner: pid(), port_range: Range.t(), stun_servers: [ExLibnice.stun_server()], trace_context: :list, turn_servers: [ExLibnice.relay_info()], webrtc_extensions: [Membrane.WebRTC.Extension.t()] }
Struct containing options for Membrane.RTC.Engine.Endpoint.WebRTC
Specs
turn_server_t() :: ExLibnice.relay_info()
Link to this section Functions
Specs
membrane_pads() :: [{Membrane.Pad.name_t(), Membrane.Pad.description_t()}]
Returns pads descriptions for Membrane.RTC.Engine.Endpoint.WebRTC
Specs
options() :: keyword()
Returns description of options available for this module