Versions in this module Expand all Collapse all v1 v1.3.0 Nov 30, 2022 Changes in this version + const AudioLevelQuantization + const DefaultEmptyTimeout + const DefaultRoomDepartureGrace + const LossyDataChannel + const ReliableDataChannel + var ErrAlreadyJoined = errors.New("a participant with the same identity is already in the room") + var ErrCannotSubscribe = errors.New("participant does not have permission to subscribe") + var ErrDataChannelUnavailable = errors.New("data channel is not available") + var ErrEmptyIdentity = errors.New("participant identity cannot be empty") + var ErrEmptyParticipantID = errors.New("participant ID cannot be empty") + var ErrIceRestartWithoutLocalSDP = errors.New("ICE restart without local SDP settled") + var ErrLimitExceeded = errors.New("node has exceeded its configured limit") + var ErrMaxParticipantsExceeded = errors.New("room has exceeded its max participants") + var ErrMidNotFound = errors.New("mid not found") + var ErrMissingGrants = errors.New("VideoGrant is missing") + var ErrNoAnswerHandler = errors.New("no answer handler") + var ErrNoICECandidateHandler = errors.New("no ICE candidate handler") + var ErrNoOfferHandler = errors.New("no offer handler") + var ErrNoReceiver = errors.New("cannot subscribe without a receiver in place") + var ErrNoSender = errors.New("no sender") + var ErrNoTransceiver = errors.New("no transceiver") + var ErrNotOpen = errors.New("track is not open") + var ErrPermissionDenied = errors.New("no permissions to access the room") + var ErrRoomClosed = errors.New("room has already closed") + var ErrSubscriptionPermissionNeedsId = errors.New("either participant identity or SID needed") + var ErrUnexpectedOffer = errors.New("expected answer SDP, received offer") + func FromProtoSessionDescription(sd *livekit.SessionDescription) webrtc.SessionDescription + func FromProtoTrickle(trickle *livekit.TrickleRequest) (webrtc.ICECandidateInit, error) + func HandleParticipantSignal(room types.Room, participant types.LocalParticipant, ...) error + func IPFilterFromConf(ips config.IPsConfig) (func(ip net.IP) bool, error) + func InterfaceFilterFromConf(ifs config.InterfacesConfig) func(string) bool + func IsEOF(err error) bool + func LoggerWithCodecMime(l logger.Logger, mime string) logger.Logger + func LoggerWithPCTarget(l logger.Logger, target livekit.SignalTarget) logger.Logger + func LoggerWithParticipant(l logger.Logger, identity livekit.ParticipantIdentity, ...) logger.Logger + func LoggerWithRoom(l logger.Logger, name livekit.RoomName, roomID livekit.RoomID) logger.Logger + func LoggerWithTrack(l logger.Logger, trackID livekit.TrackID, isRelayed bool) logger.Logger + func PackDataTrackLabel(participantID livekit.ParticipantID, trackID livekit.TrackID, label string) string + func PackStreamID(participantID livekit.ParticipantID, trackID livekit.TrackID) string + func Recover() + func RecoverSilent() + func StartTrackEgress(ctx context.Context, launcher EgressLauncher, ts telemetry.TelemetryService, ...) error + func ToProtoParticipants(participants []types.LocalParticipant) []*livekit.ParticipantInfo + func ToProtoSessionDescription(sd webrtc.SessionDescription) *livekit.SessionDescription + func ToProtoTrackKind(kind webrtc.RTPCodecType) livekit.TrackType + func ToProtoTrickle(candidateInit webrtc.ICECandidateInit) *livekit.TrickleRequest + func UnpackDataTrackLabel(packed string) (participantID livekit.ParticipantID, trackID livekit.TrackID, label string) + func UnpackStreamID(packed string) (participantID livekit.ParticipantID, trackID livekit.TrackID) + type ClientInfo struct + func (c ClientInfo) CompareVersion(version string) int + func (c ClientInfo) SupportsAudioRED() bool + func (c ClientInfo) SupportsICETCP() bool + type DirectionConfig struct + RTCPFeedback RTCPFeedbackConfig + RTPHeaderExtension RTPHeaderExtensionConfig + type DummyReceiver struct + func NewDummyReceiver(trackID livekit.TrackID, streamId string, codec webrtc.RTPCodecParameters, ...) *DummyReceiver + func (d *DummyReceiver) AddDownTrack(track sfu.TrackSender) error + func (d *DummyReceiver) Codec() webrtc.RTPCodecParameters + func (d *DummyReceiver) DebugInfo() map[string]interface{} + func (d *DummyReceiver) DeleteDownTrack(participantID livekit.ParticipantID) + func (d *DummyReceiver) GetAudioLevel() (float64, bool) + func (d *DummyReceiver) GetLayerDimension(quality int32) (uint32, uint32) + func (d *DummyReceiver) GetLayeredBitrate() sfu.Bitrates + func (d *DummyReceiver) GetPrimaryReceiverForRed() sfu.TrackReceiver + func (d *DummyReceiver) GetRedReceiver() sfu.TrackReceiver + func (d *DummyReceiver) GetTemporalLayerFpsForSpatial(spatial int32) []float32 + func (d *DummyReceiver) HeaderExtensions() []webrtc.RTPHeaderExtensionParameter + func (d *DummyReceiver) ReadRTP(buf []byte, layer uint8, sn uint16) (int, error) + func (d *DummyReceiver) Receiver() sfu.TrackReceiver + func (d *DummyReceiver) SendPLI(layer int32, force bool) + func (d *DummyReceiver) SetMaxExpectedSpatialLayer(layer int32) + func (d *DummyReceiver) SetUpTrackPaused(paused bool) + func (d *DummyReceiver) StreamID() string + func (d *DummyReceiver) TrackID() livekit.TrackID + func (d *DummyReceiver) TrackInfo() *livekit.TrackInfo + func (d *DummyReceiver) Upgrade(receiver sfu.TrackReceiver) + type DynacastManager struct + func NewDynacastManager(params DynacastManagerParams) *DynacastManager + func (d *DynacastManager) AddCodec(mime string) + func (d *DynacastManager) Close() + func (d *DynacastManager) ForceQuality(quality livekit.VideoQuality) + func (d *DynacastManager) ForceUpdate() + func (d *DynacastManager) NotifySubscriberMaxQuality(subscriberID livekit.ParticipantID, mime string, quality livekit.VideoQuality) + func (d *DynacastManager) NotifySubscriberNodeMaxQuality(nodeID livekit.NodeID, qualities []types.SubscribedCodecQuality) + func (d *DynacastManager) OnSubscribedMaxQualityChange(f func(subscribedQualities []*livekit.SubscribedCodec, ...)) + func (d *DynacastManager) Restart() + type DynacastManagerParams struct + DynacastPauseDelay time.Duration + Logger logger.Logger + type DynacastQuality struct + func NewDynacastQuality(params DynacastQualityParams) *DynacastQuality + func (d *DynacastQuality) NotifySubscriberMaxQuality(subscriberID livekit.ParticipantID, quality livekit.VideoQuality) + func (d *DynacastQuality) NotifySubscriberNodeMaxQuality(nodeID livekit.NodeID, quality livekit.VideoQuality) + func (d *DynacastQuality) OnSubscribedMaxQualityChange(f func(maxSubscribedQuality livekit.VideoQuality)) + func (d *DynacastQuality) Restart() + func (d *DynacastQuality) Start() + func (d *DynacastQuality) Stop() + type DynacastQualityParams struct + DynacastPauseDelay time.Duration + Logger logger.Logger + MimeType string + type EgressLauncher interface + StartEgress func(context.Context, *livekit.StartEgressRequest) (*livekit.EgressInfo, error) + type MediaLossProxy struct + func NewMediaLossProxy(params MediaLossProxyParams) *MediaLossProxy + func (m *MediaLossProxy) HandleMaxLossFeedback(_ *sfu.DownTrack, report *rtcp.ReceiverReport) + func (m *MediaLossProxy) NotifySubscriberNodeMediaLoss(_nodeID livekit.NodeID, fractionalLoss uint8) + func (m *MediaLossProxy) OnMediaLossUpdate(f func(fractionalLoss uint8)) + type MediaLossProxyParams struct + Logger logger.Logger + type MediaTrack struct + func NewMediaTrack(params MediaTrackParams) *MediaTrack + func (t *MediaTrack) AddReceiver(receiver *webrtc.RTPReceiver, track *webrtc.TrackRemote, twcc *twcc.Responder, ...) bool + func (t *MediaTrack) Close(willBeResumed bool) + func (t *MediaTrack) GetConnectionScore() float32 + func (t *MediaTrack) HasPendingCodec() bool + func (t *MediaTrack) HasSdpCid(cid string) bool + func (t *MediaTrack) NotifySubscriberNodeMaxQuality(nodeID livekit.NodeID, qualities []types.SubscribedCodecQuality) + func (t *MediaTrack) OnSubscribedMaxQualityChange(...) + func (t *MediaTrack) Restart() + func (t *MediaTrack) SetMuted(muted bool) + func (t *MediaTrack) SetPendingCodecSid(codecs []*livekit.SimulcastCodec) + func (t *MediaTrack) SetRTT(rtt uint32) + func (t *MediaTrack) SignalCid() string + func (t *MediaTrack) ToProto() *livekit.TrackInfo + type MediaTrackParams struct + AudioConfig config.AudioConfig + BufferFactory *buffer.Factory + Logger logger.Logger + PLIThrottleConfig config.PLIThrottleConfig + ParticipantID livekit.ParticipantID + ParticipantIdentity livekit.ParticipantIdentity + ParticipantVersion uint32 + RTCPChan chan []rtcp.Packet + ReceiverConfig ReceiverConfig + SdpCid string + SignalCid string + SimTracks map[uint32]SimulcastTrackInfo + SubscriberConfig DirectionConfig + Telemetry telemetry.TelemetryService + TrackInfo *livekit.TrackInfo + VideoConfig config.VideoConfig + type MediaTrackReceiver struct + func NewMediaTrackReceiver(params MediaTrackReceiverParams) *MediaTrackReceiver + func (t *MediaTrackReceiver) AddOnClose(f func()) + func (t *MediaTrackReceiver) AddSubscriber(sub types.LocalParticipant) error + func (t *MediaTrackReceiver) ClearAllReceivers(willBeResumed bool) + func (t *MediaTrackReceiver) ClearReceiver(mime string, willBeResumed bool) + func (t *MediaTrackReceiver) Close() + func (t *MediaTrackReceiver) DebugInfo() map[string]interface{} + func (t *MediaTrackReceiver) GetAudioLevel() (float64, bool) + func (t *MediaTrackReceiver) GetQualityForDimension(width, height uint32) livekit.VideoQuality + func (t *MediaTrackReceiver) GetTemporalLayerForSpatialFps(spatial int32, fps uint32, mime string) int32 + func (t *MediaTrackReceiver) GetVideoLayers() []*livekit.VideoLayer + func (t *MediaTrackReceiver) ID() livekit.TrackID + func (t *MediaTrackReceiver) IsMuted() bool + func (t *MediaTrackReceiver) IsSimulcast() bool + func (t *MediaTrackReceiver) IsSubscribed() bool + func (t *MediaTrackReceiver) Kind() livekit.TrackType + func (t *MediaTrackReceiver) Name() string + func (t *MediaTrackReceiver) OnMediaLossFeedback(f func(dt *sfu.DownTrack, rr *rtcp.ReceiverReport)) + func (t *MediaTrackReceiver) OnSetupReceiver(f func(mime string)) + func (t *MediaTrackReceiver) OnVideoLayerUpdate(f func(layers []*livekit.VideoLayer)) + func (t *MediaTrackReceiver) PrimaryReceiver() sfu.TrackReceiver + func (t *MediaTrackReceiver) PublisherID() livekit.ParticipantID + func (t *MediaTrackReceiver) PublisherIdentity() livekit.ParticipantIdentity + func (t *MediaTrackReceiver) PublisherVersion() uint32 + func (t *MediaTrackReceiver) Receiver(mime string) sfu.TrackReceiver + func (t *MediaTrackReceiver) Receivers() []sfu.TrackReceiver + func (t *MediaTrackReceiver) RemoveSubscriber(subscriberID livekit.ParticipantID, willBeResumed bool) + func (t *MediaTrackReceiver) Restart() + func (t *MediaTrackReceiver) RevokeDisallowedSubscribers(allowedSubscriberIdentities []livekit.ParticipantIdentity) []livekit.ParticipantIdentity + func (t *MediaTrackReceiver) SetLayerSsrc(mime string, rid string, ssrc uint32) + func (t *MediaTrackReceiver) SetMuted(muted bool) + func (t *MediaTrackReceiver) SetPotentialCodecs(codecs []webrtc.RTPCodecParameters, ...) + func (t *MediaTrackReceiver) SetRTT(rtt uint32) + func (t *MediaTrackReceiver) SetSimulcast(simulcast bool) + func (t *MediaTrackReceiver) SetupReceiver(receiver sfu.TrackReceiver, priority int, mid string) + func (t *MediaTrackReceiver) Source() livekit.TrackSource + func (t *MediaTrackReceiver) TrackInfo(generateLayer bool) *livekit.TrackInfo + func (t *MediaTrackReceiver) TryClose() bool + func (t *MediaTrackReceiver) UpdateTrackInfo(ti *livekit.TrackInfo) + func (t *MediaTrackReceiver) UpdateVideoLayers(layers []*livekit.VideoLayer) + type MediaTrackReceiverParams struct + BufferFactory *buffer.Factory + IsRelayed bool + Logger logger.Logger + MediaTrack types.MediaTrack + ParticipantID livekit.ParticipantID + ParticipantIdentity livekit.ParticipantIdentity + ParticipantVersion uint32 + ReceiverConfig ReceiverConfig + SubscriberConfig DirectionConfig + Telemetry telemetry.TelemetryService + TrackInfo *livekit.TrackInfo + type MediaTrackSubscriptions struct + func NewMediaTrackSubscriptions(params MediaTrackSubscriptionsParams) *MediaTrackSubscriptions + func (t *MediaTrackSubscriptions) AddSubscriber(sub types.LocalParticipant, wr *WrappedReceiver) error + func (t *MediaTrackSubscriptions) DebugInfo() []map[string]interface{} + func (t *MediaTrackSubscriptions) GetAllSubscribers() []livekit.ParticipantID + func (t *MediaTrackSubscriptions) GetAllSubscribersForMime(mime string) []livekit.ParticipantID + func (t *MediaTrackSubscriptions) GetNumSubscribers() int + func (t *MediaTrackSubscriptions) IsSubscriber(subID livekit.ParticipantID) bool + func (t *MediaTrackSubscriptions) OnDownTrackCreated(f func(downTrack *sfu.DownTrack)) + func (t *MediaTrackSubscriptions) OnSubscriberMaxQualityChange(...) + func (t *MediaTrackSubscriptions) OnSubscriptionOperationComplete(f func(sub types.LocalParticipant)) + func (t *MediaTrackSubscriptions) RemoveSubscriber(subscriberID livekit.ParticipantID, willBeResumed bool) error + func (t *MediaTrackSubscriptions) ResyncAllSubscribers() + func (t *MediaTrackSubscriptions) SetMuted(muted bool) + func (t *MediaTrackSubscriptions) UpdateVideoLayers() + type MediaTrackSubscriptionsParams struct + BufferFactory *buffer.Factory + IsRelayed bool + Logger logger.Logger + MediaTrack types.MediaTrack + ReceiverConfig ReceiverConfig + SubscriberConfig DirectionConfig + Telemetry telemetry.TelemetryService + type NegotiationState int + const NegotiationStateNone + const NegotiationStateRemote + const NegotiationStateRetry + func (n NegotiationState) String() string + type PCTransport struct + func NewPCTransport(params TransportParams) (*PCTransport, error) + func (t *PCTransport) AddICECandidate(candidate webrtc.ICECandidateInit) + func (t *PCTransport) AddTrack(trackLocal webrtc.TrackLocal, params types.AddTrackParams) (sender *webrtc.RTPSender, transceiver *webrtc.RTPTransceiver, err error) + func (t *PCTransport) AddTrackToStreamAllocator(subTrack types.SubscribedTrack) + func (t *PCTransport) AddTransceiverFromTrack(trackLocal webrtc.TrackLocal, params types.AddTrackParams) (sender *webrtc.RTPSender, transceiver *webrtc.RTPTransceiver, err error) + func (t *PCTransport) Close() + func (t *PCTransport) CreateDataChannel(label string, dci *webrtc.DataChannelInit) error + func (t *PCTransport) CreateDataChannelIfEmpty(dcLabel string, dci *webrtc.DataChannelInit) (label string, id uint16, existing bool, err error) + func (t *PCTransport) GetICEConnectionType() types.ICEConnectionType + func (t *PCTransport) GetMid(rtpReceiver *webrtc.RTPReceiver) string + func (t *PCTransport) GetRTPReceiver(mid string) *webrtc.RTPReceiver + func (t *PCTransport) HandleRemoteDescription(sd webrtc.SessionDescription) + func (t *PCTransport) HasEverConnected() bool + func (t *PCTransport) ICERestart() + func (t *PCTransport) IsEstablished() bool + func (t *PCTransport) Negotiate(force bool) + func (t *PCTransport) OnAnswer(f func(sd webrtc.SessionDescription) error) + func (t *PCTransport) OnDataPacket(f func(kind livekit.DataPacket_Kind, data []byte)) + func (t *PCTransport) OnFailed(f func(isShortLived bool)) + func (t *PCTransport) OnFullyEstablished(f func()) + func (t *PCTransport) OnICECandidate(f func(c *webrtc.ICECandidate) error) + func (t *PCTransport) OnInitialConnected(f func()) + func (t *PCTransport) OnNegotiationFailed(f func()) + func (t *PCTransport) OnNegotiationStateChanged(f func(state NegotiationState)) + func (t *PCTransport) OnOffer(f func(sd webrtc.SessionDescription) error) + func (t *PCTransport) OnStreamStateChange(f func(update *sfu.StreamStateUpdate) error) + func (t *PCTransport) OnTrack(f func(track *webrtc.TrackRemote, rtpReceiver *webrtc.RTPReceiver)) + func (t *PCTransport) RemoveTrack(sender *webrtc.RTPSender) error + func (t *PCTransport) RemoveTrackFromStreamAllocator(subTrack types.SubscribedTrack) + func (t *PCTransport) SendDataPacket(dp *livekit.DataPacket) error + func (t *PCTransport) SetPreferTCP(preferTCP bool) + func (t *PCTransport) SetPreviousSdp(offer, answer *webrtc.SessionDescription) + func (t *PCTransport) WriteRTCP(pkts []rtcp.Packet) error + type ParticipantImpl struct + func NewParticipant(params ParticipantParams) (*ParticipantImpl, error) + func (p *ParticipantImpl) AddSubscribedTrack(subTrack types.SubscribedTrack) + func (p *ParticipantImpl) AddTrack(req *livekit.AddTrackRequest) + func (p *ParticipantImpl) CacheDownTrack(trackID livekit.TrackID, rtpTransceiver *webrtc.RTPTransceiver, ...) + func (p *ParticipantImpl) CanPublish() bool + func (p *ParticipantImpl) CanPublishData() bool + func (p *ParticipantImpl) CanSubscribe() bool + func (p *ParticipantImpl) ClaimGrants() *auth.ClaimGrants + func (p *ParticipantImpl) ClearInProgressAndProcessSubscriptionRequestsQueue(trackID livekit.TrackID) + func (p *ParticipantImpl) Close(sendLeave bool, reason types.ParticipantCloseReason) error + func (p *ParticipantImpl) CloseSignalConnection() + func (p *ParticipantImpl) ConnectedAt() time.Time + func (p *ParticipantImpl) DebugInfo() map[string]interface{} + func (p *ParticipantImpl) EnqueueSubscribeTrack(trackID livekit.TrackID, isRelayed bool, ...) + func (p *ParticipantImpl) EnqueueUnsubscribeTrack(trackID livekit.TrackID, isRelayed bool, willBeResumed bool, ...) + func (p *ParticipantImpl) GetAdaptiveStream() bool + func (p *ParticipantImpl) GetAudioLevel() (level float64, active bool) + func (p *ParticipantImpl) GetCachedDownTrack(trackID livekit.TrackID) (*webrtc.RTPTransceiver, sfu.DownTrackState) + func (p *ParticipantImpl) GetClientConfiguration() *livekit.ClientConfiguration + func (p *ParticipantImpl) GetConnectionQuality() *livekit.ConnectionQualityInfo + func (p *ParticipantImpl) GetICEConnectionType() types.ICEConnectionType + func (p *ParticipantImpl) GetLogger() logger.Logger + func (p *ParticipantImpl) GetSubscribedParticipants() []livekit.ParticipantID + func (p *ParticipantImpl) GetSubscribedTracks() []types.SubscribedTrack + func (p *ParticipantImpl) HandleAnswer(answer webrtc.SessionDescription) + func (p *ParticipantImpl) HandleOffer(offer webrtc.SessionDescription) + func (p *ParticipantImpl) Hidden() bool + func (p *ParticipantImpl) ICERestart(iceConfig *types.IceConfig) + func (p *ParticipantImpl) ID() livekit.ParticipantID + func (p *ParticipantImpl) Identity() livekit.ParticipantIdentity + func (p *ParticipantImpl) IsPublisher() bool + func (p *ParticipantImpl) IsReady() bool + func (p *ParticipantImpl) IsRecorder() bool + func (p *ParticipantImpl) IsSubscribedTo(participantID livekit.ParticipantID) bool + func (p *ParticipantImpl) MaybeStartMigration(force bool, onStart func()) bool + func (p *ParticipantImpl) MigrateState() types.MigrateState + func (p *ParticipantImpl) Negotiate(force bool) + func (p *ParticipantImpl) OnClaimsChanged(callback func(types.LocalParticipant)) + func (p *ParticipantImpl) OnClose(...) + func (p *ParticipantImpl) OnDataPacket(callback func(types.LocalParticipant, *livekit.DataPacket)) + func (p *ParticipantImpl) OnICEConfigChanged(f func(participant types.LocalParticipant, iceConfig types.IceConfig)) + func (p *ParticipantImpl) OnParticipantUpdate(callback func(types.LocalParticipant)) + func (p *ParticipantImpl) OnStateChange(...) + func (p *ParticipantImpl) OnSubscribedTo(callback func(types.LocalParticipant, livekit.ParticipantID)) + func (p *ParticipantImpl) OnTrackPublished(callback func(types.LocalParticipant, types.MediaTrack)) + func (p *ParticipantImpl) OnTrackUpdated(callback func(types.LocalParticipant, types.MediaTrack)) + func (p *ParticipantImpl) ProcessSubscriptionRequestsQueue(trackID livekit.TrackID) + func (p *ParticipantImpl) ProtocolVersion() types.ProtocolVersion + func (p *ParticipantImpl) RemoveSubscribedTrack(subTrack types.SubscribedTrack) + func (p *ParticipantImpl) SendConnectionQualityUpdate(update *livekit.ConnectionQualityUpdate) error + func (p *ParticipantImpl) SendDataPacket(dp *livekit.DataPacket) error + func (p *ParticipantImpl) SendJoinResponse(joinResponse *livekit.JoinResponse) error + func (p *ParticipantImpl) SendParticipantUpdate(participantsToUpdate []*livekit.ParticipantInfo) error + func (p *ParticipantImpl) SendRefreshToken(token string) error + func (p *ParticipantImpl) SendRoomUpdate(room *livekit.Room) error + func (p *ParticipantImpl) SendSpeakerUpdate(speakers []*livekit.SpeakerInfo) error + func (p *ParticipantImpl) SetMetadata(metadata string) + func (p *ParticipantImpl) SetMigrateInfo(previousOffer, previousAnswer *webrtc.SessionDescription, ...) + func (p *ParticipantImpl) SetMigrateState(s types.MigrateState) + func (p *ParticipantImpl) SetPermission(permission *livekit.ParticipantPermission) bool + func (p *ParticipantImpl) SetResponseSink(sink routing.MessageSink) + func (p *ParticipantImpl) SetTrackMuted(trackID livekit.TrackID, muted bool, fromAdmin bool) + func (p *ParticipantImpl) Start() + func (p *ParticipantImpl) State() livekit.ParticipantInfo_State + func (p *ParticipantImpl) SubscriptionPermissionUpdate(publisherID livekit.ParticipantID, trackID livekit.TrackID, allowed bool) + func (p *ParticipantImpl) ToProto() *livekit.ParticipantInfo + func (p *ParticipantImpl) UncacheDownTrack(rtpTransceiver *webrtc.RTPTransceiver) + func (p *ParticipantImpl) UpdateMediaLoss(nodeID livekit.NodeID, trackID livekit.TrackID, fractionalLoss uint32) error + func (p *ParticipantImpl) UpdateRTT(rtt uint32) + func (p *ParticipantImpl) UpdateSubscribedQuality(nodeID livekit.NodeID, trackID livekit.TrackID, ...) error + func (p *ParticipantImpl) UpdateSubscribedTrackSettings(trackID livekit.TrackID, settings *livekit.UpdateTrackSettings) error + func (p *ParticipantImpl) VerifySubscribeParticipantInfo(pID livekit.ParticipantID, version uint32) + type ParticipantOptions struct + AutoSubscribe bool + type ParticipantParams struct + AdaptiveStream bool + AllowTCPFallback bool + AudioConfig config.AudioConfig + ClientConf *livekit.ClientConfiguration + ClientInfo ClientInfo + Config *WebRTCConfig + CongestionControlConfig config.CongestionControlConfig + EnabledCodecs []*livekit.Codec + GetParticipantInfo func(pID livekit.ParticipantID) *livekit.ParticipantInfo + Grants *auth.ClaimGrants + Identity livekit.ParticipantIdentity + InitialVersion uint32 + Logger logger.Logger + Migration bool + Name livekit.ParticipantName + PLIThrottleConfig config.PLIThrottleConfig + ProtocolVersion types.ProtocolVersion + Region string + SID livekit.ParticipantID + SimTracks map[uint32]SimulcastTrackInfo + Sink routing.MessageSink + TURNSEnabled bool + Telemetry telemetry.TelemetryService + VideoConfig config.VideoConfig + type RTCPFeedbackConfig struct + Audio []webrtc.RTCPFeedback + Video []webrtc.RTCPFeedback + type RTPHeaderExtensionConfig struct + Audio []string + Video []string + type ReceiverConfig struct + PacketBufferSize int + type Room struct + Logger logger.Logger + func NewRoom(room *livekit.Room, internal *livekit.RoomInternal, config WebRTCConfig, ...) *Room + func (r *Room) Close() + func (r *Room) CloseIfEmpty() + func (r *Room) DebugInfo() map[string]interface{} + func (r *Room) FirstJoinedAt() int64 + func (r *Room) GetActiveSpeakers() []*livekit.SpeakerInfo + func (r *Room) GetBufferFactory() *buffer.Factory + func (r *Room) GetParticipant(identity livekit.ParticipantIdentity) types.LocalParticipant + func (r *Room) GetParticipantBySid(participantID livekit.ParticipantID) types.LocalParticipant + func (r *Room) GetParticipants() []types.LocalParticipant + func (r *Room) Hold() bool + func (r *Room) ID() livekit.RoomID + func (r *Room) Internal() *livekit.RoomInternal + func (r *Room) IsClosed() bool + func (r *Room) Join(participant types.LocalParticipant, opts *ParticipantOptions, ...) error + func (r *Room) LastLeftAt() int64 + func (r *Room) Name() livekit.RoomName + func (r *Room) OnClose(f func()) + func (r *Room) OnMetadataUpdate(f func(metadata string)) + func (r *Room) OnParticipantChanged(f func(participant types.LocalParticipant)) + func (r *Room) Release() + func (r *Room) RemoveDisallowedSubscriptions(sub types.LocalParticipant, ...) + func (r *Room) RemoveParticipant(identity livekit.ParticipantIdentity, reason types.ParticipantCloseReason) + func (r *Room) ResumeParticipant(p types.LocalParticipant, responseSink routing.MessageSink) error + func (r *Room) SendDataPacket(up *livekit.UserPacket, kind livekit.DataPacket_Kind) + func (r *Room) SetMetadata(metadata string) + func (r *Room) SetParticipantPermission(participant types.LocalParticipant, permission *livekit.ParticipantPermission) error + func (r *Room) SimulateScenario(participant types.LocalParticipant, simulateScenario *livekit.SimulateScenario) error + func (r *Room) SyncState(participant types.LocalParticipant, state *livekit.SyncState) error + func (r *Room) ToProto() *livekit.Room + func (r *Room) UpdateSubscriptionPermission(participant types.LocalParticipant, ...) error + func (r *Room) UpdateSubscriptions(participant types.LocalParticipant, trackIDs []livekit.TrackID, ...) error + func (r *Room) UpdateVideoLayers(participant types.Participant, updateVideoLayers *livekit.UpdateVideoLayers) error + type SimulcastTrackInfo struct + Mid string + Rid string + type SubscribeRequest struct + type SubscribeRequestType int + const SubscribeRequestTypeAdd + const SubscribeRequestTypeRemove + type SubscribedTrack struct + func NewSubscribedTrack(params SubscribedTrackParams) *SubscribedTrack + func (t *SubscribedTrack) Bound() + func (t *SubscribedTrack) DownTrack() *sfu.DownTrack + func (t *SubscribedTrack) ID() livekit.TrackID + func (t *SubscribedTrack) IsMuted() bool + func (t *SubscribedTrack) MediaTrack() types.MediaTrack + func (t *SubscribedTrack) OnBind(f func()) + func (t *SubscribedTrack) PublisherID() livekit.ParticipantID + func (t *SubscribedTrack) PublisherIdentity() livekit.ParticipantIdentity + func (t *SubscribedTrack) PublisherVersion() uint32 + func (t *SubscribedTrack) SetPublisherMuted(muted bool) + func (t *SubscribedTrack) Subscriber() types.LocalParticipant + func (t *SubscribedTrack) SubscriberID() livekit.ParticipantID + func (t *SubscribedTrack) SubscriberIdentity() livekit.ParticipantIdentity + func (t *SubscribedTrack) UpdateSubscriberSettings(settings *livekit.UpdateTrackSettings) + func (t *SubscribedTrack) UpdateVideoLayer() + type SubscribedTrackParams struct + AdaptiveStream bool + DownTrack *sfu.DownTrack + MediaTrack types.MediaTrack + PublisherID livekit.ParticipantID + PublisherIdentity livekit.ParticipantIdentity + PublisherVersion uint32 + Subscriber types.LocalParticipant + type TransportManager struct + func NewTransportManager(params TransportManagerParams) (*TransportManager, error) + func (t *TransportManager) AddICECandidate(candidate webrtc.ICECandidateInit, target livekit.SignalTarget) + func (t *TransportManager) AddSubscribedTrack(subTrack types.SubscribedTrack) + func (t *TransportManager) AddTrackToSubscriber(trackLocal webrtc.TrackLocal, params types.AddTrackParams) (*webrtc.RTPSender, *webrtc.RTPTransceiver, error) + func (t *TransportManager) AddTransceiverFromTrackToSubscriber(trackLocal webrtc.TrackLocal, params types.AddTrackParams) (*webrtc.RTPSender, *webrtc.RTPTransceiver, error) + func (t *TransportManager) Close() + func (t *TransportManager) GetICEConnectionType() types.ICEConnectionType + func (t *TransportManager) GetPublisherMid(rtpReceiver *webrtc.RTPReceiver) string + func (t *TransportManager) GetPublisherRTPReceiver(mid string) *webrtc.RTPReceiver + func (t *TransportManager) GetUnmatchMediaForOffer(offer webrtc.SessionDescription, mediaType string) (parsed *sdp.SessionDescription, unmatched []*sdp.MediaDescription, err error) + func (t *TransportManager) HandleAnswer(answer webrtc.SessionDescription) + func (t *TransportManager) HandleOffer(offer webrtc.SessionDescription, shouldPend bool) + func (t *TransportManager) HasSubscriberEverConnected() bool + func (t *TransportManager) HaveAllTransportEverConnected() bool + func (t *TransportManager) ICERestart(iceConfig *types.IceConfig) + func (t *TransportManager) IsPublisherEstablished() bool + func (t *TransportManager) LastPublisherOffer() webrtc.SessionDescription + func (t *TransportManager) NegotiateSubscriber(force bool) + func (t *TransportManager) OnAnyTransportFailed(f func()) + func (t *TransportManager) OnAnyTransportNegotiationFailed(f func()) + func (t *TransportManager) OnDataMessage(f func(kind livekit.DataPacket_Kind, data []byte)) + func (t *TransportManager) OnICEConfigChanged(f func(iceConfig types.IceConfig)) + func (t *TransportManager) OnPrimaryTransportFullyEstablished(f func()) + func (t *TransportManager) OnPrimaryTransportInitialConnected(f func()) + func (t *TransportManager) OnPublisherAnswer(f func(answer webrtc.SessionDescription) error) + func (t *TransportManager) OnPublisherICECandidate(f func(c *webrtc.ICECandidate) error) + func (t *TransportManager) OnPublisherInitialConnected(f func()) + func (t *TransportManager) OnPublisherTrack(f func(track *webrtc.TrackRemote, rtpReceiver *webrtc.RTPReceiver)) + func (t *TransportManager) OnReceiverReport(dt *sfu.DownTrack, report *rtcp.ReceiverReport) + func (t *TransportManager) OnSubscriberICECandidate(f func(c *webrtc.ICECandidate) error) + func (t *TransportManager) OnSubscriberInitialConnected(f func()) + func (t *TransportManager) OnSubscriberOffer(f func(offer webrtc.SessionDescription) error) + func (t *TransportManager) OnSubscriberStreamStateChange(f func(update *sfu.StreamStateUpdate) error) + func (t *TransportManager) ProcessPendingPublisherDataChannels() + func (t *TransportManager) ProcessPendingPublisherOffer() + func (t *TransportManager) RemoveSubscribedTrack(subTrack types.SubscribedTrack) + func (t *TransportManager) RemoveTrackFromSubscriber(sender *webrtc.RTPSender) error + func (t *TransportManager) SendDataPacket(dp *livekit.DataPacket) error + func (t *TransportManager) SetICEConfig(iceConfig types.IceConfig) + func (t *TransportManager) SetMigrateInfo(previousOffer, previousAnswer *webrtc.SessionDescription, ...) + func (t *TransportManager) SubscriberAsPrimary() bool + func (t *TransportManager) SubscriberClose() + func (t *TransportManager) UpdateRTT(rtt uint32, isUDP bool) + func (t *TransportManager) WritePublisherRTCP(pkts []rtcp.Packet) error + func (t *TransportManager) WriteSubscriberRTCP(pkts []rtcp.Packet) error + type TransportManagerParams struct + AllowTCPFallback bool + ClientConf *livekit.ClientConfiguration + ClientInfo ClientInfo + Config *WebRTCConfig + CongestionControlConfig config.CongestionControlConfig + EnabledCodecs []*livekit.Codec + Identity livekit.ParticipantIdentity + Logger logger.Logger + Migration bool + ProtocolVersion types.ProtocolVersion + SID livekit.ParticipantID + SimTracks map[uint32]SimulcastTrackInfo + SubscriberAsPrimary bool + TURNSEnabled bool + Telemetry telemetry.TelemetryService + type TransportParams struct + ClientInfo ClientInfo + Config *WebRTCConfig + CongestionControlConfig config.CongestionControlConfig + DirectionConfig DirectionConfig + EnabledCodecs []*livekit.Codec + IsOfferer bool + IsSendSide bool + Logger logger.Logger + ParticipantID livekit.ParticipantID + ParticipantIdentity livekit.ParticipantIdentity + ProtocolVersion types.ProtocolVersion + SimTracks map[uint32]SimulcastTrackInfo + Telemetry telemetry.TelemetryService + type UnhandleSimulcastInterceptor struct + func (u *UnhandleSimulcastInterceptor) BindRemoteStream(info *interceptor.StreamInfo, reader interceptor.RTPReader) interceptor.RTPReader + type UnhandleSimulcastInterceptorFactory struct + func NewUnhandleSimulcastInterceptorFactory(opts ...UnhandleSimulcastOption) (*UnhandleSimulcastInterceptorFactory, error) + func (f *UnhandleSimulcastInterceptorFactory) NewInterceptor(id string) (interceptor.Interceptor, error) + type UnhandleSimulcastOption func(r *UnhandleSimulcastInterceptor) error + func UnhandleSimulcastTracks(tracks map[uint32]SimulcastTrackInfo) UnhandleSimulcastOption + type UpTrackManager struct + func NewUpTrackManager(params UpTrackManagerParams) *UpTrackManager + func (u *UpTrackManager) AddPublishedTrack(track types.MediaTrack) + func (u *UpTrackManager) AddSubscriber(sub types.LocalParticipant, params types.AddSubscriberParams) (int, error) + func (u *UpTrackManager) Close(willBeResumed bool) + func (u *UpTrackManager) DebugInfo() map[string]interface{} + func (u *UpTrackManager) GetPublishedTrack(trackID livekit.TrackID) types.MediaTrack + func (u *UpTrackManager) GetPublishedTracks() []types.MediaTrack + func (u *UpTrackManager) OnPublishedTrackUpdated(f func(track types.MediaTrack, onlyIfReady bool)) + func (u *UpTrackManager) OnUpTrackManagerClose(f func()) + func (u *UpTrackManager) RemovePublishedTrack(track types.MediaTrack, willBeResumed bool, shouldClose bool) + func (u *UpTrackManager) RemoveSubscriber(sub types.LocalParticipant, trackID livekit.TrackID, willBeResumed bool) + func (u *UpTrackManager) SetPublishedTrackMuted(trackID livekit.TrackID, muted bool) types.MediaTrack + func (u *UpTrackManager) Start() + func (u *UpTrackManager) SubscriptionPermission() (*livekit.SubscriptionPermission, *livekit.TimedVersion) + func (u *UpTrackManager) ToProto() []*livekit.TrackInfo + func (u *UpTrackManager) UpdateSubscriptionPermission(subscriptionPermission *livekit.SubscriptionPermission, ...) error + func (u *UpTrackManager) UpdateVideoLayers(updateVideoLayers *livekit.UpdateVideoLayers) error + type UpTrackManagerParams struct + Logger logger.Logger + SID livekit.ParticipantID + type WebRTCConfig struct + BufferFactory *buffer.Factory + Configuration webrtc.Configuration + Publisher DirectionConfig + Receiver ReceiverConfig + SettingEngine webrtc.SettingEngine + Subscriber DirectionConfig + TCPMuxListener *net.TCPListener + UDPMux ice.UDPMux + func NewWebRTCConfig(conf *config.Config, externalIP string) (*WebRTCConfig, error) + func (c *WebRTCConfig) SetBufferFactory(factory *buffer.Factory) + type WrappedReceiver struct + func NewWrappedReceiver(params WrappedReceiverParams) *WrappedReceiver + func (r *WrappedReceiver) Codecs() []webrtc.RTPCodecParameters + func (r *WrappedReceiver) DetermineReceiver(codec webrtc.RTPCodecCapability) + func (r *WrappedReceiver) StreamID() string + func (r *WrappedReceiver) TrackID() livekit.TrackID + type WrappedReceiverParams struct + DisableRed bool + Logger logger.Logger + Receivers []*simulcastReceiver + StreamId string + TrackID livekit.TrackID + UpstreamCodecs []webrtc.RTPCodecParameters