Documentation ¶
Index ¶
- Constants
- Variables
- 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 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
- type DirectionConfig
- type 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) 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
- 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
- type 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
- type EgressLauncher
- type MediaLossProxy
- type MediaLossProxyParams
- type 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
- type 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) 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
- type 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
- type NegotiationState
- type PCTransport
- 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
- 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) 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
- type ParticipantOptions
- type ParticipantParams
- type RTCPFeedbackConfig
- type RTPHeaderExtensionConfig
- type ReceiverConfig
- type 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
- type SubscribeRequest
- type SubscribeRequestType
- type 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
- type TransportManager
- 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) GetLastUnmatchedMediaForOffer(offer webrtc.SessionDescription, mediaType string) (parsed *sdp.SessionDescription, unmatched *sdp.MediaDescription, err error)
- func (t *TransportManager) GetPublisherMid(rtpReceiver *webrtc.RTPReceiver) string
- func (t *TransportManager) GetPublisherRTPReceiver(mid string) *webrtc.RTPReceiver
- 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) 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) WritePublisherRTCP(pkts []rtcp.Packet) error
- func (t *TransportManager) WriteSubscriberRTCP(pkts []rtcp.Packet) error
- type TransportManagerParams
- type TransportParams
- type UnhandleSimulcastInterceptor
- type UnhandleSimulcastInterceptorFactory
- type UnhandleSimulcastOption
- type 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
- type WebRTCConfig
- type WrappedReceiver
Constants ¶
const ( DefaultEmptyTimeout = 5 * 60 // 5m DefaultRoomDepartureGrace = 20 AudioLevelQuantization = 8 // ideally power of 2 to minimize float decimal )
const ( LossyDataChannel = "_lossy" ReliableDataChannel = "_reliable" )
Variables ¶
var ( ErrRoomClosed = errors.New("room has already closed") ErrPermissionDenied = errors.New("no permissions to access the room") ErrMaxParticipantsExceeded = errors.New("room has exceeded its max participants") ErrLimitExceeded = errors.New("node has exceeded its configured limit") ErrAlreadyJoined = errors.New("a participant with the same identity is already in the room") ErrUnexpectedOffer = errors.New("expected answer SDP, received offer") ErrCannotSubscribe = errors.New("participant does not have permission to subscribe") ErrEmptyIdentity = errors.New("participant identity cannot be empty") ErrEmptyParticipantID = errors.New("participant ID cannot be empty") ErrMissingGrants = errors.New("VideoGrant is missing") )
var ( ErrNotOpen = errors.New("track is not open") ErrNoReceiver = errors.New("cannot subscribe without a receiver in place") )
var ( ErrIceRestartWithoutLocalSDP = errors.New("ICE restart without local SDP settled") ErrNoTransceiver = errors.New("no transceiver") ErrNoSender = errors.New("no sender") ErrNoICECandidateHandler = errors.New("no ICE candidate handler") ErrNoOfferHandler = errors.New("no offer handler") ErrNoAnswerHandler = errors.New("no answer handler") ErrMidNotFound = errors.New("mid not found") )
var (
ErrSubscriptionPermissionNeedsId = errors.New("either participant identity or SID needed")
)
Functions ¶
func FromProtoSessionDescription ¶
func FromProtoSessionDescription(sd *livekit.SessionDescription) webrtc.SessionDescription
func FromProtoTrickle ¶
func FromProtoTrickle(trickle *livekit.TrickleRequest) (webrtc.ICECandidateInit, error)
func HandleParticipantSignal ¶ added in v0.15.0
func HandleParticipantSignal(room types.Room, participant types.LocalParticipant, req *livekit.SignalRequest, pLogger logger.Logger) error
func LoggerWithCodecMime ¶ added in v1.0.0
func LoggerWithPCTarget ¶ added in v0.15.6
func LoggerWithParticipant ¶ added in v0.15.0
func LoggerWithParticipant(l logger.Logger, identity livekit.ParticipantIdentity, sid livekit.ParticipantID, isRemote bool) logger.Logger
logger helpers
func LoggerWithRoom ¶ added in v0.15.0
func LoggerWithTrack ¶ added in v0.15.3
func PackDataTrackLabel ¶
func PackStreamID ¶
func PackStreamID(participantID livekit.ParticipantID, trackID livekit.TrackID) string
func RecoverSilent ¶
func RecoverSilent()
func StartTrackEgress ¶ added in v1.2.2
func StartTrackEgress( ctx context.Context, launcher EgressLauncher, ts telemetry.TelemetryService, opts *livekit.AutoTrackEgress, track types.MediaTrack, roomName livekit.RoomName, roomID livekit.RoomID, ) error
func ToProtoParticipants ¶
func ToProtoParticipants(participants []types.LocalParticipant) []*livekit.ParticipantInfo
func ToProtoSessionDescription ¶
func ToProtoSessionDescription(sd webrtc.SessionDescription) *livekit.SessionDescription
func ToProtoTrackKind ¶
func ToProtoTrickle ¶
func ToProtoTrickle(candidateInit webrtc.ICECandidateInit) *livekit.TrickleRequest
func UnpackDataTrackLabel ¶
func UnpackStreamID ¶
func UnpackStreamID(packed string) (participantID livekit.ParticipantID, trackID livekit.TrackID)
Types ¶
type ClientInfo ¶ added in v1.2.0
type ClientInfo struct {
*livekit.ClientInfo
}
func (ClientInfo) CompareVersion ¶ added in v1.2.1
func (c ClientInfo) CompareVersion(version string) int
CompareVersion compares two semver versions returning 1 if current version is greater than version 0 if they are the same, and -1 if it's an earlier version
func (ClientInfo) SupportsAudioRED ¶ added in v1.2.0
func (c ClientInfo) SupportsAudioRED() bool
func (ClientInfo) SupportsICETCP ¶ added in v1.2.1
func (c ClientInfo) SupportsICETCP() bool
type DirectionConfig ¶ added in v0.15.2
type DirectionConfig struct { RTPHeaderExtension RTPHeaderExtensionConfig RTCPFeedback RTCPFeedbackConfig }
type DummyReceiver ¶ added in v1.1.1
type DummyReceiver struct {
// contains filtered or unexported fields
}
func NewDummyReceiver ¶ added in v1.1.1
func NewDummyReceiver(trackID livekit.TrackID, streamId string, codec webrtc.RTPCodecParameters, headerExtensions []webrtc.RTPHeaderExtensionParameter) *DummyReceiver
func (*DummyReceiver) AddDownTrack ¶ added in v1.1.1
func (d *DummyReceiver) AddDownTrack(track sfu.TrackSender) error
func (*DummyReceiver) Codec ¶ added in v1.1.1
func (d *DummyReceiver) Codec() webrtc.RTPCodecParameters
func (*DummyReceiver) DebugInfo ¶ added in v1.1.1
func (d *DummyReceiver) DebugInfo() map[string]interface{}
func (*DummyReceiver) DeleteDownTrack ¶ added in v1.1.1
func (d *DummyReceiver) DeleteDownTrack(participantID livekit.ParticipantID)
func (*DummyReceiver) GetAudioLevel ¶ added in v1.1.1
func (d *DummyReceiver) GetAudioLevel() (float64, bool)
func (*DummyReceiver) GetLayerDimension ¶ added in v1.1.1
func (d *DummyReceiver) GetLayerDimension(quality int32) (uint32, uint32)
func (*DummyReceiver) GetLayeredBitrate ¶ added in v1.2.4
func (d *DummyReceiver) GetLayeredBitrate() sfu.Bitrates
func (*DummyReceiver) GetPrimaryReceiverForRed ¶ added in v1.2.0
func (d *DummyReceiver) GetPrimaryReceiverForRed() sfu.TrackReceiver
func (*DummyReceiver) HeaderExtensions ¶ added in v1.1.1
func (d *DummyReceiver) HeaderExtensions() []webrtc.RTPHeaderExtensionParameter
func (*DummyReceiver) Receiver ¶ added in v1.1.1
func (d *DummyReceiver) Receiver() sfu.TrackReceiver
func (*DummyReceiver) SendPLI ¶ added in v1.1.1
func (d *DummyReceiver) SendPLI(layer int32, force bool)
func (*DummyReceiver) SetMaxExpectedSpatialLayer ¶ added in v1.1.1
func (d *DummyReceiver) SetMaxExpectedSpatialLayer(layer int32)
func (*DummyReceiver) SetUpTrackPaused ¶ added in v1.1.1
func (d *DummyReceiver) SetUpTrackPaused(paused bool)
func (*DummyReceiver) StreamID ¶ added in v1.1.1
func (d *DummyReceiver) StreamID() string
func (*DummyReceiver) TrackID ¶ added in v1.1.1
func (d *DummyReceiver) TrackID() livekit.TrackID
func (*DummyReceiver) TrackInfo ¶ added in v1.2.0
func (d *DummyReceiver) TrackInfo() *livekit.TrackInfo
func (*DummyReceiver) Upgrade ¶ added in v1.1.1
func (d *DummyReceiver) Upgrade(receiver sfu.TrackReceiver)
type DynacastManager ¶ added in v1.2.0
type DynacastManager struct {
// contains filtered or unexported fields
}
func NewDynacastManager ¶ added in v1.2.0
func NewDynacastManager(params DynacastManagerParams) *DynacastManager
func (*DynacastManager) AddCodec ¶ added in v1.2.0
func (d *DynacastManager) AddCodec(mime string)
func (*DynacastManager) Close ¶ added in v1.2.0
func (d *DynacastManager) Close()
func (*DynacastManager) ForceQuality ¶ added in v1.2.0
func (d *DynacastManager) ForceQuality(quality livekit.VideoQuality)
It is possible for tracks to be in pending close state. When track is waiting to be closed, a node is not streaming a track. This can be used to force an update announcing that subscribed quality is OFF, i.e. indicating not pulling track any more.
func (*DynacastManager) ForceUpdate ¶ added in v1.2.0
func (d *DynacastManager) ForceUpdate()
THere are situations like track unmute or streaming from a sifferent node where subscribed quality needs to sent to the provider immediately. This bypasses any debouncing and forces a subscribed quality update with immediate effect.
func (*DynacastManager) NotifySubscriberMaxQuality ¶ added in v1.2.0
func (d *DynacastManager) NotifySubscriberMaxQuality(subscriberID livekit.ParticipantID, mime string, quality livekit.VideoQuality)
func (*DynacastManager) NotifySubscriberNodeMaxQuality ¶ added in v1.2.0
func (d *DynacastManager) NotifySubscriberNodeMaxQuality(nodeID livekit.NodeID, qualities []types.SubscribedCodecQuality)
func (*DynacastManager) OnSubscribedMaxQualityChange ¶ added in v1.2.0
func (d *DynacastManager) OnSubscribedMaxQualityChange(f func(subscribedQualities []*livekit.SubscribedCodec, maxSubscribedQualities []types.SubscribedCodecQuality))
func (*DynacastManager) Restart ¶ added in v1.2.0
func (d *DynacastManager) Restart()
type DynacastManagerParams ¶ added in v1.2.0
type DynacastQuality ¶ added in v1.2.0
type DynacastQuality struct {
// contains filtered or unexported fields
}
DynacastQuality manages max subscribed quality of a single receiver of a media track
func NewDynacastQuality ¶ added in v1.2.0
func NewDynacastQuality(params DynacastQualityParams) *DynacastQuality
func (*DynacastQuality) NotifySubscriberMaxQuality ¶ added in v1.2.0
func (d *DynacastQuality) NotifySubscriberMaxQuality(subscriberID livekit.ParticipantID, quality livekit.VideoQuality)
func (*DynacastQuality) NotifySubscriberNodeMaxQuality ¶ added in v1.2.0
func (d *DynacastQuality) NotifySubscriberNodeMaxQuality(nodeID livekit.NodeID, quality livekit.VideoQuality)
func (*DynacastQuality) OnSubscribedMaxQualityChange ¶ added in v1.2.0
func (d *DynacastQuality) OnSubscribedMaxQualityChange(f func(maxSubscribedQuality livekit.VideoQuality))
func (*DynacastQuality) Restart ¶ added in v1.2.0
func (d *DynacastQuality) Restart()
func (*DynacastQuality) Start ¶ added in v1.2.0
func (d *DynacastQuality) Start()
func (*DynacastQuality) Stop ¶ added in v1.2.0
func (d *DynacastQuality) Stop()
type DynacastQualityParams ¶ added in v1.2.0
type EgressLauncher ¶ added in v1.2.2
type EgressLauncher interface {
StartEgress(context.Context, *livekit.StartEgressRequest) (*livekit.EgressInfo, error)
}
type MediaLossProxy ¶ added in v1.2.0
type MediaLossProxy struct {
// contains filtered or unexported fields
}
func NewMediaLossProxy ¶ added in v1.2.0
func NewMediaLossProxy(params MediaLossProxyParams) *MediaLossProxy
func (*MediaLossProxy) HandleMaxLossFeedback ¶ added in v1.2.0
func (m *MediaLossProxy) HandleMaxLossFeedback(_ *sfu.DownTrack, report *rtcp.ReceiverReport)
func (*MediaLossProxy) NotifySubscriberNodeMediaLoss ¶ added in v1.2.0
func (m *MediaLossProxy) NotifySubscriberNodeMediaLoss(_nodeID livekit.NodeID, fractionalLoss uint8)
func (*MediaLossProxy) OnMediaLossUpdate ¶ added in v1.2.0
func (m *MediaLossProxy) OnMediaLossUpdate(f func(fractionalLoss uint8))
type MediaLossProxyParams ¶ added in v1.2.0
type MediaTrack ¶
type MediaTrack struct { *MediaTrackReceiver *MediaLossProxy // contains filtered or unexported fields }
MediaTrack represents a WebRTC track that needs to be forwarded Implements MediaTrack and PublishedTrack interface
func NewMediaTrack ¶
func NewMediaTrack(params MediaTrackParams) *MediaTrack
func (*MediaTrack) AddReceiver ¶
func (t *MediaTrack) AddReceiver(receiver *webrtc.RTPReceiver, track *webrtc.TrackRemote, twcc *twcc.Responder, mid string) bool
AddReceiver adds a new RTP receiver to the track, returns true when receiver represents a new codec
func (*MediaTrack) Close ¶ added in v1.2.0
func (t *MediaTrack) Close(willBeResumed bool)
func (*MediaTrack) GetConnectionScore ¶ added in v0.15.0
func (t *MediaTrack) GetConnectionScore() float32
func (*MediaTrack) HasPendingCodec ¶ added in v1.1.0
func (t *MediaTrack) HasPendingCodec() bool
func (*MediaTrack) HasSdpCid ¶ added in v1.1.0
func (t *MediaTrack) HasSdpCid(cid string) bool
func (*MediaTrack) NotifySubscriberNodeMaxQuality ¶ added in v1.2.0
func (t *MediaTrack) NotifySubscriberNodeMaxQuality(nodeID livekit.NodeID, qualities []types.SubscribedCodecQuality)
func (*MediaTrack) OnSubscribedMaxQualityChange ¶ added in v0.15.0
func (t *MediaTrack) OnSubscribedMaxQualityChange( f func( trackID livekit.TrackID, subscribedQualities []*livekit.SubscribedCodec, maxSubscribedQualities []types.SubscribedCodecQuality, ) error, )
func (*MediaTrack) Restart ¶ added in v1.2.0
func (t *MediaTrack) Restart()
func (*MediaTrack) SetMuted ¶
func (t *MediaTrack) SetMuted(muted bool)
func (*MediaTrack) SetPendingCodecSid ¶ added in v1.1.0
func (t *MediaTrack) SetPendingCodecSid(codecs []*livekit.SimulcastCodec)
func (*MediaTrack) SetRTT ¶ added in v0.15.4
func (t *MediaTrack) SetRTT(rtt uint32)
func (*MediaTrack) SignalCid ¶ added in v0.13.6
func (t *MediaTrack) SignalCid() string
func (*MediaTrack) ToProto ¶ added in v0.9.13
func (t *MediaTrack) ToProto() *livekit.TrackInfo
type MediaTrackParams ¶
type MediaTrackParams struct { TrackInfo *livekit.TrackInfo SignalCid string SdpCid string ParticipantID livekit.ParticipantID ParticipantIdentity livekit.ParticipantIdentity ParticipantVersion uint32 // channel to send RTCP packets to the source RTCPChan chan []rtcp.Packet BufferFactory *buffer.Factory ReceiverConfig ReceiverConfig SubscriberConfig DirectionConfig PLIThrottleConfig config.PLIThrottleConfig AudioConfig config.AudioConfig VideoConfig config.VideoConfig Telemetry telemetry.TelemetryService Logger logger.Logger SimTracks map[uint32]SimulcastTrackInfo }
type MediaTrackReceiver ¶ added in v0.15.3
type MediaTrackReceiver struct { *MediaTrackSubscriptions // contains filtered or unexported fields }
func NewMediaTrackReceiver ¶ added in v0.15.3
func NewMediaTrackReceiver(params MediaTrackReceiverParams) *MediaTrackReceiver
func (*MediaTrackReceiver) AddOnClose ¶ added in v0.15.3
func (t *MediaTrackReceiver) AddOnClose(f func())
func (*MediaTrackReceiver) AddSubscriber ¶ added in v0.15.3
func (t *MediaTrackReceiver) AddSubscriber(sub types.LocalParticipant) error
AddSubscriber subscribes sub to current mediaTrack
func (*MediaTrackReceiver) ClearAllReceivers ¶ added in v1.1.0
func (t *MediaTrackReceiver) ClearAllReceivers(willBeResumed bool)
func (*MediaTrackReceiver) ClearReceiver ¶ added in v0.15.3
func (t *MediaTrackReceiver) ClearReceiver(mime string, willBeResumed bool)
func (*MediaTrackReceiver) Close ¶ added in v0.15.3
func (t *MediaTrackReceiver) Close()
func (*MediaTrackReceiver) DebugInfo ¶ added in v0.15.3
func (t *MediaTrackReceiver) DebugInfo() map[string]interface{}
func (*MediaTrackReceiver) GetAudioLevel ¶ added in v0.15.7
func (t *MediaTrackReceiver) GetAudioLevel() (float64, bool)
func (*MediaTrackReceiver) GetQualityForDimension ¶ added in v0.15.3
func (t *MediaTrackReceiver) GetQualityForDimension(width, height uint32) livekit.VideoQuality
GetQualityForDimension finds the closest quality to use for desired dimensions affords a 20% tolerance on dimension
func (*MediaTrackReceiver) GetVideoLayers ¶ added in v0.15.3
func (t *MediaTrackReceiver) GetVideoLayers() []*livekit.VideoLayer
func (*MediaTrackReceiver) ID ¶ added in v0.15.3
func (t *MediaTrackReceiver) ID() livekit.TrackID
func (*MediaTrackReceiver) IsMuted ¶ added in v0.15.3
func (t *MediaTrackReceiver) IsMuted() bool
func (*MediaTrackReceiver) IsSimulcast ¶ added in v0.15.3
func (t *MediaTrackReceiver) IsSimulcast() bool
func (*MediaTrackReceiver) IsSubscribed ¶ added in v1.1.1
func (t *MediaTrackReceiver) IsSubscribed() bool
func (*MediaTrackReceiver) Kind ¶ added in v0.15.3
func (t *MediaTrackReceiver) Kind() livekit.TrackType
func (*MediaTrackReceiver) Name ¶ added in v0.15.3
func (t *MediaTrackReceiver) Name() string
func (*MediaTrackReceiver) OnMediaLossFeedback ¶ added in v1.2.0
func (t *MediaTrackReceiver) OnMediaLossFeedback(f func(dt *sfu.DownTrack, rr *rtcp.ReceiverReport))
func (*MediaTrackReceiver) OnSetupReceiver ¶ added in v1.2.0
func (t *MediaTrackReceiver) OnSetupReceiver(f func(mime string))
func (*MediaTrackReceiver) OnVideoLayerUpdate ¶ added in v0.15.3
func (t *MediaTrackReceiver) OnVideoLayerUpdate(f func(layers []*livekit.VideoLayer))
func (*MediaTrackReceiver) PrimaryReceiver ¶ added in v1.1.0
func (t *MediaTrackReceiver) PrimaryReceiver() sfu.TrackReceiver
func (*MediaTrackReceiver) PublisherID ¶ added in v0.15.3
func (t *MediaTrackReceiver) PublisherID() livekit.ParticipantID
func (*MediaTrackReceiver) PublisherIdentity ¶ added in v0.15.3
func (t *MediaTrackReceiver) PublisherIdentity() livekit.ParticipantIdentity
func (*MediaTrackReceiver) PublisherVersion ¶ added in v1.1.1
func (t *MediaTrackReceiver) PublisherVersion() uint32
func (*MediaTrackReceiver) Receiver ¶ added in v0.15.3
func (t *MediaTrackReceiver) Receiver(mime string) sfu.TrackReceiver
func (*MediaTrackReceiver) Receivers ¶ added in v1.1.0
func (t *MediaTrackReceiver) Receivers() []sfu.TrackReceiver
func (*MediaTrackReceiver) RemoveSubscriber ¶ added in v1.1.1
func (t *MediaTrackReceiver) RemoveSubscriber(subscriberID livekit.ParticipantID, willBeResumed bool)
RemoveSubscriber removes participant from subscription stop all forwarders to the client
func (*MediaTrackReceiver) Restart ¶ added in v0.15.7
func (t *MediaTrackReceiver) Restart()
func (*MediaTrackReceiver) RevokeDisallowedSubscribers ¶ added in v1.1.1
func (t *MediaTrackReceiver) RevokeDisallowedSubscribers(allowedSubscriberIdentities []livekit.ParticipantIdentity) []livekit.ParticipantIdentity
func (*MediaTrackReceiver) SetLayerSsrc ¶ added in v1.1.0
func (t *MediaTrackReceiver) SetLayerSsrc(mime string, rid string, ssrc uint32)
func (*MediaTrackReceiver) SetMuted ¶ added in v0.15.3
func (t *MediaTrackReceiver) SetMuted(muted bool)
func (*MediaTrackReceiver) SetPotentialCodecs ¶ added in v1.1.0
func (t *MediaTrackReceiver) SetPotentialCodecs(codecs []webrtc.RTPCodecParameters, headers []webrtc.RTPHeaderExtensionParameter)
func (*MediaTrackReceiver) SetRTT ¶ added in v1.1.0
func (t *MediaTrackReceiver) SetRTT(rtt uint32)
func (*MediaTrackReceiver) SetSimulcast ¶ added in v0.15.3
func (t *MediaTrackReceiver) SetSimulcast(simulcast bool)
func (*MediaTrackReceiver) SetupReceiver ¶ added in v0.15.3
func (t *MediaTrackReceiver) SetupReceiver(receiver sfu.TrackReceiver, priority int, mid string)
func (*MediaTrackReceiver) Source ¶ added in v0.15.3
func (t *MediaTrackReceiver) Source() livekit.TrackSource
func (*MediaTrackReceiver) TrackInfo ¶ added in v0.15.3
func (t *MediaTrackReceiver) TrackInfo(generateLayer bool) *livekit.TrackInfo
func (*MediaTrackReceiver) TryClose ¶ added in v1.1.0
func (t *MediaTrackReceiver) TryClose() bool
func (*MediaTrackReceiver) UpdateTrackInfo ¶ added in v0.15.3
func (t *MediaTrackReceiver) UpdateTrackInfo(ti *livekit.TrackInfo)
func (*MediaTrackReceiver) UpdateVideoLayers ¶ added in v0.15.3
func (t *MediaTrackReceiver) UpdateVideoLayers(layers []*livekit.VideoLayer)
type MediaTrackReceiverParams ¶ added in v0.15.3
type MediaTrackReceiverParams struct { TrackInfo *livekit.TrackInfo MediaTrack types.MediaTrack IsRelayed bool ParticipantID livekit.ParticipantID ParticipantIdentity livekit.ParticipantIdentity ParticipantVersion uint32 BufferFactory *buffer.Factory ReceiverConfig ReceiverConfig SubscriberConfig DirectionConfig Telemetry telemetry.TelemetryService Logger logger.Logger }
type MediaTrackSubscriptions ¶ added in v0.15.3
type MediaTrackSubscriptions struct {
// contains filtered or unexported fields
}
MediaTrackSubscriptions manages subscriptions of a media track
func NewMediaTrackSubscriptions ¶ added in v0.15.3
func NewMediaTrackSubscriptions(params MediaTrackSubscriptionsParams) *MediaTrackSubscriptions
func (*MediaTrackSubscriptions) AddSubscriber ¶ added in v0.15.3
func (t *MediaTrackSubscriptions) AddSubscriber(sub types.LocalParticipant, wr *WrappedReceiver) error
AddSubscriber subscribes sub to current mediaTrack
func (*MediaTrackSubscriptions) DebugInfo ¶ added in v0.15.3
func (t *MediaTrackSubscriptions) DebugInfo() []map[string]interface{}
func (*MediaTrackSubscriptions) GetAllSubscribers ¶ added in v0.15.6
func (t *MediaTrackSubscriptions) GetAllSubscribers() []livekit.ParticipantID
func (*MediaTrackSubscriptions) GetAllSubscribersForMime ¶ added in v1.2.0
func (t *MediaTrackSubscriptions) GetAllSubscribersForMime(mime string) []livekit.ParticipantID
func (*MediaTrackSubscriptions) GetNumSubscribers ¶ added in v1.1.1
func (t *MediaTrackSubscriptions) GetNumSubscribers() int
func (*MediaTrackSubscriptions) IsSubscriber ¶ added in v0.15.3
func (t *MediaTrackSubscriptions) IsSubscriber(subID livekit.ParticipantID) bool
func (*MediaTrackSubscriptions) OnDownTrackCreated ¶ added in v1.1.1
func (t *MediaTrackSubscriptions) OnDownTrackCreated(f func(downTrack *sfu.DownTrack))
func (*MediaTrackSubscriptions) OnSubscriberMaxQualityChange ¶ added in v1.2.0
func (t *MediaTrackSubscriptions) OnSubscriberMaxQualityChange(f func(subscriberID livekit.ParticipantID, codec webrtc.RTPCodecCapability, layer int32))
func (*MediaTrackSubscriptions) OnSubscriptionOperationComplete ¶ added in v1.1.1
func (t *MediaTrackSubscriptions) OnSubscriptionOperationComplete(f func(sub types.LocalParticipant))
func (*MediaTrackSubscriptions) RemoveSubscriber ¶ added in v0.15.3
func (t *MediaTrackSubscriptions) RemoveSubscriber(subscriberID livekit.ParticipantID, willBeResumed bool) error
RemoveSubscriber removes participant from subscription stop all forwarders to the client
func (*MediaTrackSubscriptions) ResyncAllSubscribers ¶ added in v0.15.4
func (t *MediaTrackSubscriptions) ResyncAllSubscribers()
func (*MediaTrackSubscriptions) SetMuted ¶ added in v0.15.3
func (t *MediaTrackSubscriptions) SetMuted(muted bool)
func (*MediaTrackSubscriptions) UpdateVideoLayers ¶ added in v0.15.3
func (t *MediaTrackSubscriptions) UpdateVideoLayers()
type MediaTrackSubscriptionsParams ¶ added in v0.15.3
type MediaTrackSubscriptionsParams struct { MediaTrack types.MediaTrack IsRelayed bool BufferFactory *buffer.Factory ReceiverConfig ReceiverConfig SubscriberConfig DirectionConfig Telemetry telemetry.TelemetryService Logger logger.Logger }
type NegotiationState ¶ added in v1.2.0
type NegotiationState int
const ( NegotiationStateNone NegotiationState = iota // waiting for remote description NegotiationStateRemote // need to Negotiate again NegotiationStateRetry )
func (NegotiationState) String ¶ added in v1.2.0
func (n NegotiationState) String() string
type PCTransport ¶
type PCTransport struct {
// contains filtered or unexported fields
}
PCTransport is a wrapper around PeerConnection, with some helper methods
func NewPCTransport ¶
func NewPCTransport(params TransportParams) (*PCTransport, error)
func (*PCTransport) AddICECandidate ¶
func (t *PCTransport) AddICECandidate(candidate webrtc.ICECandidateInit)
func (*PCTransport) AddTrack ¶ added in v0.15.0
func (t *PCTransport) AddTrack(trackLocal webrtc.TrackLocal, params types.AddTrackParams) (sender *webrtc.RTPSender, transceiver *webrtc.RTPTransceiver, err error)
func (*PCTransport) AddTrackToStreamAllocator ¶ added in v1.2.0
func (t *PCTransport) AddTrackToStreamAllocator(subTrack types.SubscribedTrack)
func (*PCTransport) AddTransceiverFromTrack ¶ added in v1.2.0
func (t *PCTransport) AddTransceiverFromTrack(trackLocal webrtc.TrackLocal, params types.AddTrackParams) (sender *webrtc.RTPSender, transceiver *webrtc.RTPTransceiver, err error)
func (*PCTransport) Close ¶
func (t *PCTransport) Close()
func (*PCTransport) CreateDataChannel ¶ added in v1.2.0
func (t *PCTransport) CreateDataChannel(label string, dci *webrtc.DataChannelInit) error
func (*PCTransport) CreateDataChannelIfEmpty ¶ added in v1.2.0
func (*PCTransport) GetICEConnectionType ¶ added in v1.2.1
func (t *PCTransport) GetICEConnectionType() types.ICEConnectionType
func (*PCTransport) GetMid ¶ added in v1.2.0
func (t *PCTransport) GetMid(rtpReceiver *webrtc.RTPReceiver) string
func (*PCTransport) GetRTPReceiver ¶ added in v1.2.0
func (t *PCTransport) GetRTPReceiver(mid string) *webrtc.RTPReceiver
func (*PCTransport) HandleRemoteDescription ¶ added in v1.2.0
func (t *PCTransport) HandleRemoteDescription(sd webrtc.SessionDescription)
func (*PCTransport) HasEverConnected ¶ added in v1.2.0
func (t *PCTransport) HasEverConnected() bool
func (*PCTransport) ICERestart ¶ added in v1.2.0
func (t *PCTransport) ICERestart()
func (*PCTransport) IsEstablished ¶ added in v0.15.7
func (t *PCTransport) IsEstablished() bool
IsEstablished returns true if the PeerConnection has been established
func (*PCTransport) Negotiate ¶
func (t *PCTransport) Negotiate(force bool)
func (*PCTransport) OnAnswer ¶ added in v1.2.0
func (t *PCTransport) OnAnswer(f func(sd webrtc.SessionDescription) error)
func (*PCTransport) OnDataPacket ¶ added in v1.2.0
func (t *PCTransport) OnDataPacket(f func(kind livekit.DataPacket_Kind, data []byte))
func (*PCTransport) OnFailed ¶ added in v1.2.0
func (t *PCTransport) OnFailed(f func(isShortLived bool))
func (*PCTransport) OnFullyEstablished ¶ added in v1.2.0
func (t *PCTransport) OnFullyEstablished(f func())
func (*PCTransport) OnICECandidate ¶ added in v1.2.0
func (t *PCTransport) OnICECandidate(f func(c *webrtc.ICECandidate) error)
func (*PCTransport) OnInitialConnected ¶ added in v1.2.0
func (t *PCTransport) OnInitialConnected(f func())
func (*PCTransport) OnNegotiationFailed ¶ added in v1.1.1
func (t *PCTransport) OnNegotiationFailed(f func())
func (*PCTransport) OnNegotiationStateChanged ¶ added in v1.2.0
func (t *PCTransport) OnNegotiationStateChanged(f func(state NegotiationState))
func (*PCTransport) OnOffer ¶
func (t *PCTransport) OnOffer(f func(sd webrtc.SessionDescription) error)
OnOffer is called when the PeerConnection starts negotiation and prepares an offer
func (*PCTransport) OnStreamStateChange ¶ added in v0.15.0
func (t *PCTransport) OnStreamStateChange(f func(update *sfu.StreamStateUpdate) error)
func (*PCTransport) OnTrack ¶ added in v1.2.0
func (t *PCTransport) OnTrack(f func(track *webrtc.TrackRemote, rtpReceiver *webrtc.RTPReceiver))
func (*PCTransport) RemoveTrack ¶ added in v0.15.0
func (t *PCTransport) RemoveTrack(sender *webrtc.RTPSender) error
func (*PCTransport) RemoveTrackFromStreamAllocator ¶ added in v1.2.0
func (t *PCTransport) RemoveTrackFromStreamAllocator(subTrack types.SubscribedTrack)
func (*PCTransport) SendDataPacket ¶ added in v1.2.0
func (t *PCTransport) SendDataPacket(dp *livekit.DataPacket) error
func (*PCTransport) SetPreferTCP ¶ added in v1.2.0
func (t *PCTransport) SetPreferTCP(preferTCP bool)
func (*PCTransport) SetPreviousSdp ¶ added in v1.2.1
func (t *PCTransport) SetPreviousSdp(offer, answer *webrtc.SessionDescription)
type ParticipantImpl ¶
type ParticipantImpl struct { *TransportManager *UpTrackManager // contains filtered or unexported fields }
func NewParticipant ¶
func NewParticipant(params ParticipantParams) (*ParticipantImpl, error)
func (*ParticipantImpl) AddSubscribedTrack ¶
func (p *ParticipantImpl) AddSubscribedTrack(subTrack types.SubscribedTrack)
AddSubscribedTrack adds a track to the participant's subscribed list
func (*ParticipantImpl) AddTrack ¶
func (p *ParticipantImpl) AddTrack(req *livekit.AddTrackRequest)
AddTrack is called when client intends to publish track. records track details and lets client know it's ok to proceed
func (*ParticipantImpl) CacheDownTrack ¶ added in v1.1.1
func (p *ParticipantImpl) CacheDownTrack(trackID livekit.TrackID, rtpTransceiver *webrtc.RTPTransceiver, downTrack sfu.DownTrackState)
func (*ParticipantImpl) CanPublish ¶
func (p *ParticipantImpl) CanPublish() bool
func (*ParticipantImpl) CanPublishData ¶ added in v0.12.2
func (p *ParticipantImpl) CanPublishData() bool
func (*ParticipantImpl) CanSubscribe ¶
func (p *ParticipantImpl) CanSubscribe() bool
func (*ParticipantImpl) ClaimGrants ¶ added in v0.15.3
func (p *ParticipantImpl) ClaimGrants() *auth.ClaimGrants
func (*ParticipantImpl) ClearInProgressAndProcessSubscriptionRequestsQueue ¶ added in v1.1.1
func (p *ParticipantImpl) ClearInProgressAndProcessSubscriptionRequestsQueue(trackID livekit.TrackID)
func (*ParticipantImpl) Close ¶
func (p *ParticipantImpl) Close(sendLeave bool, reason types.ParticipantCloseReason) error
func (*ParticipantImpl) CloseSignalConnection ¶ added in v1.2.0
func (p *ParticipantImpl) CloseSignalConnection()
closes signal connection to notify client to resume/reconnect
func (*ParticipantImpl) ConnectedAt ¶
func (p *ParticipantImpl) ConnectedAt() time.Time
func (*ParticipantImpl) DebugInfo ¶ added in v0.10.6
func (p *ParticipantImpl) DebugInfo() map[string]interface{}
func (*ParticipantImpl) EnqueueSubscribeTrack ¶ added in v1.1.1
func (p *ParticipantImpl) EnqueueSubscribeTrack(trackID livekit.TrackID, isRelayed bool, f func(sub types.LocalParticipant) error)
func (*ParticipantImpl) EnqueueUnsubscribeTrack ¶ added in v1.1.1
func (p *ParticipantImpl) EnqueueUnsubscribeTrack(trackID livekit.TrackID, isRelayed bool, willBeResumed bool, f func(subscriberID livekit.ParticipantID, willBeResumed bool) error)
func (*ParticipantImpl) GetAdaptiveStream ¶ added in v0.15.7
func (p *ParticipantImpl) GetAdaptiveStream() bool
func (*ParticipantImpl) GetAudioLevel ¶
func (p *ParticipantImpl) GetAudioLevel() (level float64, active bool)
func (*ParticipantImpl) GetCachedDownTrack ¶ added in v1.1.1
func (p *ParticipantImpl) GetCachedDownTrack(trackID livekit.TrackID) (*webrtc.RTPTransceiver, sfu.DownTrackState)
func (*ParticipantImpl) GetClientConfiguration ¶ added in v1.2.0
func (p *ParticipantImpl) GetClientConfiguration() *livekit.ClientConfiguration
func (*ParticipantImpl) GetConnectionQuality ¶ added in v0.14.0
func (p *ParticipantImpl) GetConnectionQuality() *livekit.ConnectionQualityInfo
func (*ParticipantImpl) GetICEConnectionType ¶ added in v1.2.1
func (p *ParticipantImpl) GetICEConnectionType() types.ICEConnectionType
func (*ParticipantImpl) GetLogger ¶ added in v0.15.4
func (p *ParticipantImpl) GetLogger() logger.Logger
func (*ParticipantImpl) GetSubscribedParticipants ¶ added in v0.14.0
func (p *ParticipantImpl) GetSubscribedParticipants() []livekit.ParticipantID
func (*ParticipantImpl) GetSubscribedTracks ¶
func (p *ParticipantImpl) GetSubscribedTracks() []types.SubscribedTrack
func (*ParticipantImpl) HandleOffer ¶
func (p *ParticipantImpl) HandleOffer(offer webrtc.SessionDescription)
HandleOffer an offer from remote participant, used when clients make the initial connection
func (*ParticipantImpl) Hidden ¶ added in v0.11.1
func (p *ParticipantImpl) Hidden() bool
func (*ParticipantImpl) ICERestart ¶
func (p *ParticipantImpl) ICERestart(iceConfig *types.IceConfig)
ICERestart restarts subscriber ICE connections
func (*ParticipantImpl) ID ¶
func (p *ParticipantImpl) ID() livekit.ParticipantID
func (*ParticipantImpl) Identity ¶
func (p *ParticipantImpl) Identity() livekit.ParticipantIdentity
func (*ParticipantImpl) IsPublisher ¶ added in v1.1.0
func (p *ParticipantImpl) IsPublisher() bool
func (*ParticipantImpl) IsReady ¶
func (p *ParticipantImpl) IsReady() bool
func (*ParticipantImpl) IsRecorder ¶ added in v0.15.0
func (p *ParticipantImpl) IsRecorder() bool
func (*ParticipantImpl) IsSubscribedTo ¶ added in v0.14.0
func (p *ParticipantImpl) IsSubscribedTo(participantID livekit.ParticipantID) bool
func (*ParticipantImpl) MaybeStartMigration ¶ added in v1.2.1
func (p *ParticipantImpl) MaybeStartMigration(force bool, onStart func()) bool
func (*ParticipantImpl) MigrateState ¶ added in v0.15.3
func (p *ParticipantImpl) MigrateState() types.MigrateState
func (*ParticipantImpl) Negotiate ¶
func (p *ParticipantImpl) Negotiate(force bool)
Negotiate subscriber SDP with client, if force is true, will cencel pending negotiate task and negotiate immediately
func (*ParticipantImpl) OnClaimsChanged ¶ added in v0.15.3
func (p *ParticipantImpl) OnClaimsChanged(callback func(types.LocalParticipant))
func (*ParticipantImpl) OnClose ¶
func (p *ParticipantImpl) OnClose(callback func(types.LocalParticipant, map[livekit.TrackID]livekit.ParticipantID))
func (*ParticipantImpl) OnDataPacket ¶
func (p *ParticipantImpl) OnDataPacket(callback func(types.LocalParticipant, *livekit.DataPacket))
func (*ParticipantImpl) OnICEConfigChanged ¶ added in v1.2.0
func (p *ParticipantImpl) OnICEConfigChanged(f func(participant types.LocalParticipant, iceConfig types.IceConfig))
func (*ParticipantImpl) OnParticipantUpdate ¶ added in v0.15.6
func (p *ParticipantImpl) OnParticipantUpdate(callback func(types.LocalParticipant))
func (*ParticipantImpl) OnStateChange ¶
func (p *ParticipantImpl) OnStateChange(callback func(p types.LocalParticipant, oldState livekit.ParticipantInfo_State))
func (*ParticipantImpl) OnSubscribedTo ¶ added in v1.0.0
func (p *ParticipantImpl) OnSubscribedTo(callback func(types.LocalParticipant, livekit.ParticipantID))
func (*ParticipantImpl) OnTrackPublished ¶
func (p *ParticipantImpl) OnTrackPublished(callback func(types.LocalParticipant, types.MediaTrack))
func (*ParticipantImpl) OnTrackUpdated ¶
func (p *ParticipantImpl) OnTrackUpdated(callback func(types.LocalParticipant, types.MediaTrack))
func (*ParticipantImpl) ProcessSubscriptionRequestsQueue ¶ added in v1.1.1
func (p *ParticipantImpl) ProcessSubscriptionRequestsQueue(trackID livekit.TrackID)
func (*ParticipantImpl) ProtocolVersion ¶
func (p *ParticipantImpl) ProtocolVersion() types.ProtocolVersion
func (*ParticipantImpl) RemoveSubscribedTrack ¶
func (p *ParticipantImpl) RemoveSubscribedTrack(subTrack types.SubscribedTrack)
RemoveSubscribedTrack removes a track to the participant's subscribed list
func (*ParticipantImpl) SendConnectionQualityUpdate ¶ added in v0.14.0
func (p *ParticipantImpl) SendConnectionQualityUpdate(update *livekit.ConnectionQualityUpdate) error
func (*ParticipantImpl) SendDataPacket ¶
func (p *ParticipantImpl) SendDataPacket(dp *livekit.DataPacket) error
func (*ParticipantImpl) SendJoinResponse ¶
func (p *ParticipantImpl) SendJoinResponse(joinResponse *livekit.JoinResponse) error
func (*ParticipantImpl) SendParticipantUpdate ¶
func (p *ParticipantImpl) SendParticipantUpdate(participantsToUpdate []*livekit.ParticipantInfo) error
func (*ParticipantImpl) SendRefreshToken ¶ added in v0.15.3
func (p *ParticipantImpl) SendRefreshToken(token string) error
func (*ParticipantImpl) SendRoomUpdate ¶ added in v0.13.1
func (p *ParticipantImpl) SendRoomUpdate(room *livekit.Room) error
func (*ParticipantImpl) SendSpeakerUpdate ¶ added in v0.13.0
func (p *ParticipantImpl) SendSpeakerUpdate(speakers []*livekit.SpeakerInfo) error
SendSpeakerUpdate notifies participant changes to speakers. only send members that have changed since last update
func (*ParticipantImpl) SetMetadata ¶
func (p *ParticipantImpl) SetMetadata(metadata string)
SetMetadata attaches metadata to the participant
func (*ParticipantImpl) SetMigrateInfo ¶ added in v0.15.5
func (p *ParticipantImpl) SetMigrateInfo( previousOffer, previousAnswer *webrtc.SessionDescription, mediaTracks []*livekit.TrackPublishedResponse, dataChannels []*livekit.DataChannelInfo, )
func (*ParticipantImpl) SetMigrateState ¶ added in v0.15.3
func (p *ParticipantImpl) SetMigrateState(s types.MigrateState)
func (*ParticipantImpl) SetPermission ¶
func (p *ParticipantImpl) SetPermission(permission *livekit.ParticipantPermission) bool
func (*ParticipantImpl) SetResponseSink ¶
func (p *ParticipantImpl) SetResponseSink(sink routing.MessageSink)
func (*ParticipantImpl) SetTrackMuted ¶
func (p *ParticipantImpl) SetTrackMuted(trackID livekit.TrackID, muted bool, fromAdmin bool)
func (*ParticipantImpl) Start ¶
func (p *ParticipantImpl) Start()
func (*ParticipantImpl) State ¶
func (p *ParticipantImpl) State() livekit.ParticipantInfo_State
func (*ParticipantImpl) SubscriptionPermissionUpdate ¶ added in v0.15.2
func (p *ParticipantImpl) SubscriptionPermissionUpdate(publisherID livekit.ParticipantID, trackID livekit.TrackID, allowed bool)
func (*ParticipantImpl) ToProto ¶
func (p *ParticipantImpl) ToProto() *livekit.ParticipantInfo
func (*ParticipantImpl) UncacheDownTrack ¶ added in v1.1.1
func (p *ParticipantImpl) UncacheDownTrack(rtpTransceiver *webrtc.RTPTransceiver)
func (*ParticipantImpl) UpdateMediaLoss ¶ added in v1.2.0
func (*ParticipantImpl) UpdateRTT ¶ added in v0.15.4
func (p *ParticipantImpl) UpdateRTT(rtt uint32)
func (*ParticipantImpl) UpdateSubscribedQuality ¶ added in v1.2.0
func (p *ParticipantImpl) UpdateSubscribedQuality(nodeID livekit.NodeID, trackID livekit.TrackID, maxQualities []types.SubscribedCodecQuality) error
func (*ParticipantImpl) UpdateSubscribedTrackSettings ¶ added in v0.15.3
func (p *ParticipantImpl) UpdateSubscribedTrackSettings(trackID livekit.TrackID, settings *livekit.UpdateTrackSettings) error
type ParticipantOptions ¶ added in v0.9.4
type ParticipantOptions struct {
AutoSubscribe bool
}
type ParticipantParams ¶
type ParticipantParams struct { Identity livekit.ParticipantIdentity Name livekit.ParticipantName SID livekit.ParticipantID Config *WebRTCConfig Sink routing.MessageSink AudioConfig config.AudioConfig VideoConfig config.VideoConfig ProtocolVersion types.ProtocolVersion Telemetry telemetry.TelemetryService PLIThrottleConfig config.PLIThrottleConfig CongestionControlConfig config.CongestionControlConfig EnabledCodecs []*livekit.Codec Logger logger.Logger SimTracks map[uint32]SimulcastTrackInfo Grants *auth.ClaimGrants InitialVersion uint32 ClientConf *livekit.ClientConfiguration ClientInfo ClientInfo Region string Migration bool AdaptiveStream bool AllowTCPFallback bool TURNSEnabled bool }
type RTCPFeedbackConfig ¶ added in v0.15.2
type RTCPFeedbackConfig struct { Audio []webrtc.RTCPFeedback Video []webrtc.RTCPFeedback }
type RTPHeaderExtensionConfig ¶ added in v0.15.2
type ReceiverConfig ¶
type ReceiverConfig struct {
PacketBufferSize int
}
type Room ¶
func NewRoom ¶
func NewRoom( room *livekit.Room, internal *livekit.RoomInternal, config WebRTCConfig, audioConfig *config.AudioConfig, serverInfo *livekit.ServerInfo, telemetry telemetry.TelemetryService, egressLauncher EgressLauncher, ) *Room
func (*Room) CloseIfEmpty ¶
func (r *Room) CloseIfEmpty()
CloseIfEmpty closes the room if all participants had left, or it's still empty past timeout
func (*Room) FirstJoinedAt ¶
func (*Room) GetActiveSpeakers ¶
func (r *Room) GetActiveSpeakers() []*livekit.SpeakerInfo
func (*Room) GetBufferFactory ¶ added in v0.15.2
func (*Room) GetParticipant ¶
func (r *Room) GetParticipant(identity livekit.ParticipantIdentity) types.LocalParticipant
func (*Room) GetParticipantBySid ¶ added in v0.15.2
func (r *Room) GetParticipantBySid(participantID livekit.ParticipantID) types.LocalParticipant
func (*Room) GetParticipants ¶
func (r *Room) GetParticipants() []types.LocalParticipant
func (*Room) Internal ¶ added in v1.2.2
func (r *Room) Internal() *livekit.RoomInternal
func (*Room) Join ¶
func (r *Room) Join(participant types.LocalParticipant, opts *ParticipantOptions, iceServers []*livekit.ICEServer) error
func (*Room) LastLeftAt ¶
func (*Room) OnMetadataUpdate ¶ added in v0.13.1
func (*Room) OnParticipantChanged ¶
func (r *Room) OnParticipantChanged(f func(participant types.LocalParticipant))
func (*Room) RemoveDisallowedSubscriptions ¶ added in v0.15.2
func (r *Room) RemoveDisallowedSubscriptions(sub types.LocalParticipant, disallowedSubscriptions map[livekit.TrackID]livekit.ParticipantID)
func (*Room) RemoveParticipant ¶
func (r *Room) RemoveParticipant(identity livekit.ParticipantIdentity, reason types.ParticipantCloseReason)
func (*Room) ResumeParticipant ¶ added in v0.13.7
func (r *Room) ResumeParticipant(p types.LocalParticipant, responseSink routing.MessageSink) error
func (*Room) SendDataPacket ¶ added in v0.12.2
func (r *Room) SendDataPacket(up *livekit.UserPacket, kind livekit.DataPacket_Kind)
func (*Room) SetMetadata ¶ added in v0.13.1
func (*Room) SetParticipantPermission ¶ added in v0.15.3
func (r *Room) SetParticipantPermission(participant types.LocalParticipant, permission *livekit.ParticipantPermission) error
func (*Room) SimulateScenario ¶ added in v0.15.3
func (r *Room) SimulateScenario(participant types.LocalParticipant, simulateScenario *livekit.SimulateScenario) error
func (*Room) UpdateSubscriptionPermission ¶ added in v0.15.3
func (r *Room) UpdateSubscriptionPermission(participant types.LocalParticipant, subscriptionPermission *livekit.SubscriptionPermission) error
func (*Room) UpdateSubscriptions ¶
func (r *Room) UpdateSubscriptions( participant types.LocalParticipant, trackIDs []livekit.TrackID, participantTracks []*livekit.ParticipantTracks, subscribe bool, ) error
func (*Room) UpdateVideoLayers ¶ added in v0.15.3
func (r *Room) UpdateVideoLayers(participant types.Participant, updateVideoLayers *livekit.UpdateVideoLayers) error
type SimulcastTrackInfo ¶ added in v0.15.3
type SubscribeRequest ¶ added in v1.1.1
type SubscribeRequest struct {
// contains filtered or unexported fields
}
type SubscribeRequestType ¶ added in v1.1.1
type SubscribeRequestType int
const ( SubscribeRequestTypeRemove SubscribeRequestType = iota SubscribeRequestTypeAdd )
type SubscribedTrack ¶
type SubscribedTrack struct {
// contains filtered or unexported fields
}
func NewSubscribedTrack ¶
func NewSubscribedTrack(params SubscribedTrackParams) *SubscribedTrack
func (*SubscribedTrack) Bound ¶ added in v0.15.0
func (t *SubscribedTrack) Bound()
func (*SubscribedTrack) DownTrack ¶
func (t *SubscribedTrack) DownTrack() *sfu.DownTrack
func (*SubscribedTrack) ID ¶
func (t *SubscribedTrack) ID() livekit.TrackID
func (*SubscribedTrack) IsMuted ¶
func (t *SubscribedTrack) IsMuted() bool
has subscriber indicated it wants to mute this track
func (*SubscribedTrack) MediaTrack ¶ added in v0.15.0
func (t *SubscribedTrack) MediaTrack() types.MediaTrack
func (*SubscribedTrack) OnBind ¶ added in v0.15.0
func (t *SubscribedTrack) OnBind(f func())
func (*SubscribedTrack) PublisherID ¶ added in v0.15.2
func (t *SubscribedTrack) PublisherID() livekit.ParticipantID
func (*SubscribedTrack) PublisherIdentity ¶ added in v0.13.7
func (t *SubscribedTrack) PublisherIdentity() livekit.ParticipantIdentity
func (*SubscribedTrack) PublisherVersion ¶ added in v1.1.1
func (t *SubscribedTrack) PublisherVersion() uint32
func (*SubscribedTrack) SetPublisherMuted ¶
func (t *SubscribedTrack) SetPublisherMuted(muted bool)
func (*SubscribedTrack) Subscriber ¶ added in v1.1.1
func (t *SubscribedTrack) Subscriber() types.LocalParticipant
func (*SubscribedTrack) SubscriberID ¶ added in v0.15.4
func (t *SubscribedTrack) SubscriberID() livekit.ParticipantID
func (*SubscribedTrack) SubscriberIdentity ¶ added in v1.0.0
func (t *SubscribedTrack) SubscriberIdentity() livekit.ParticipantIdentity
func (*SubscribedTrack) UpdateSubscriberSettings ¶ added in v0.9.14
func (t *SubscribedTrack) UpdateSubscriberSettings(settings *livekit.UpdateTrackSettings)
func (*SubscribedTrack) UpdateVideoLayer ¶ added in v0.15.0
func (t *SubscribedTrack) UpdateVideoLayer()
type SubscribedTrackParams ¶ added in v0.15.0
type SubscribedTrackParams struct { PublisherID livekit.ParticipantID PublisherIdentity livekit.ParticipantIdentity PublisherVersion uint32 Subscriber types.LocalParticipant MediaTrack types.MediaTrack DownTrack *sfu.DownTrack AdaptiveStream bool }
type TransportManager ¶ added in v1.2.0
type TransportManager struct {
// contains filtered or unexported fields
}
func NewTransportManager ¶ added in v1.2.0
func NewTransportManager(params TransportManagerParams) (*TransportManager, error)
func (*TransportManager) AddICECandidate ¶ added in v1.2.0
func (t *TransportManager) AddICECandidate(candidate webrtc.ICECandidateInit, target livekit.SignalTarget)
AddICECandidate adds candidates for remote peer
func (*TransportManager) AddSubscribedTrack ¶ added in v1.2.0
func (t *TransportManager) AddSubscribedTrack(subTrack types.SubscribedTrack)
func (*TransportManager) AddTrackToSubscriber ¶ added in v1.2.0
func (t *TransportManager) AddTrackToSubscriber(trackLocal webrtc.TrackLocal, params types.AddTrackParams) (*webrtc.RTPSender, *webrtc.RTPTransceiver, error)
func (*TransportManager) AddTransceiverFromTrackToSubscriber ¶ added in v1.2.0
func (t *TransportManager) AddTransceiverFromTrackToSubscriber(trackLocal webrtc.TrackLocal, params types.AddTrackParams) (*webrtc.RTPSender, *webrtc.RTPTransceiver, error)
func (*TransportManager) Close ¶ added in v1.2.0
func (t *TransportManager) Close()
func (*TransportManager) GetICEConnectionType ¶ added in v1.2.1
func (t *TransportManager) GetICEConnectionType() types.ICEConnectionType
func (*TransportManager) GetLastUnmatchedMediaForOffer ¶ added in v1.2.0
func (t *TransportManager) GetLastUnmatchedMediaForOffer(offer webrtc.SessionDescription, mediaType string) (parsed *sdp.SessionDescription, unmatched *sdp.MediaDescription, err error)
func (*TransportManager) GetPublisherMid ¶ added in v1.2.0
func (t *TransportManager) GetPublisherMid(rtpReceiver *webrtc.RTPReceiver) string
func (*TransportManager) GetPublisherRTPReceiver ¶ added in v1.2.0
func (t *TransportManager) GetPublisherRTPReceiver(mid string) *webrtc.RTPReceiver
func (*TransportManager) HandleAnswer ¶ added in v1.2.0
func (t *TransportManager) HandleAnswer(answer webrtc.SessionDescription)
HandleAnswer handles a client answer response, with subscriber PC, server initiates the offer and client answers
func (*TransportManager) HandleOffer ¶ added in v1.2.0
func (t *TransportManager) HandleOffer(offer webrtc.SessionDescription, shouldPend bool)
func (*TransportManager) HasSubscriberEverConnected ¶ added in v1.2.0
func (t *TransportManager) HasSubscriberEverConnected() bool
func (*TransportManager) HaveAllTransportEverConnected ¶ added in v1.2.1
func (t *TransportManager) HaveAllTransportEverConnected() bool
func (*TransportManager) ICERestart ¶ added in v1.2.0
func (t *TransportManager) ICERestart(iceConfig *types.IceConfig)
func (*TransportManager) IsPublisherEstablished ¶ added in v1.2.0
func (t *TransportManager) IsPublisherEstablished() bool
func (*TransportManager) LastPublisherOffer ¶ added in v1.2.5
func (t *TransportManager) LastPublisherOffer() webrtc.SessionDescription
func (*TransportManager) NegotiateSubscriber ¶ added in v1.2.0
func (t *TransportManager) NegotiateSubscriber(force bool)
func (*TransportManager) OnAnyTransportFailed ¶ added in v1.2.0
func (t *TransportManager) OnAnyTransportFailed(f func())
func (*TransportManager) OnAnyTransportNegotiationFailed ¶ added in v1.2.0
func (t *TransportManager) OnAnyTransportNegotiationFailed(f func())
func (*TransportManager) OnDataMessage ¶ added in v1.2.0
func (t *TransportManager) OnDataMessage(f func(kind livekit.DataPacket_Kind, data []byte))
func (*TransportManager) OnICEConfigChanged ¶ added in v1.2.0
func (t *TransportManager) OnICEConfigChanged(f func(iceConfig types.IceConfig))
func (*TransportManager) OnPrimaryTransportFullyEstablished ¶ added in v1.2.0
func (t *TransportManager) OnPrimaryTransportFullyEstablished(f func())
func (*TransportManager) OnPrimaryTransportInitialConnected ¶ added in v1.2.0
func (t *TransportManager) OnPrimaryTransportInitialConnected(f func())
func (*TransportManager) OnPublisherAnswer ¶ added in v1.2.0
func (t *TransportManager) OnPublisherAnswer(f func(answer webrtc.SessionDescription) error)
func (*TransportManager) OnPublisherICECandidate ¶ added in v1.2.0
func (t *TransportManager) OnPublisherICECandidate(f func(c *webrtc.ICECandidate) error)
func (*TransportManager) OnPublisherInitialConnected ¶ added in v1.2.0
func (t *TransportManager) OnPublisherInitialConnected(f func())
func (*TransportManager) OnPublisherTrack ¶ added in v1.2.0
func (t *TransportManager) OnPublisherTrack(f func(track *webrtc.TrackRemote, rtpReceiver *webrtc.RTPReceiver))
func (*TransportManager) OnSubscriberICECandidate ¶ added in v1.2.0
func (t *TransportManager) OnSubscriberICECandidate(f func(c *webrtc.ICECandidate) error)
func (*TransportManager) OnSubscriberInitialConnected ¶ added in v1.2.0
func (t *TransportManager) OnSubscriberInitialConnected(f func())
func (*TransportManager) OnSubscriberOffer ¶ added in v1.2.0
func (t *TransportManager) OnSubscriberOffer(f func(offer webrtc.SessionDescription) error)
func (*TransportManager) OnSubscriberStreamStateChange ¶ added in v1.2.0
func (t *TransportManager) OnSubscriberStreamStateChange(f func(update *sfu.StreamStateUpdate) error)
func (*TransportManager) ProcessPendingPublisherDataChannels ¶ added in v1.2.0
func (t *TransportManager) ProcessPendingPublisherDataChannels()
func (*TransportManager) ProcessPendingPublisherOffer ¶ added in v1.2.0
func (t *TransportManager) ProcessPendingPublisherOffer()
func (*TransportManager) RemoveSubscribedTrack ¶ added in v1.2.0
func (t *TransportManager) RemoveSubscribedTrack(subTrack types.SubscribedTrack)
func (*TransportManager) RemoveTrackFromSubscriber ¶ added in v1.2.0
func (t *TransportManager) RemoveTrackFromSubscriber(sender *webrtc.RTPSender) error
func (*TransportManager) SendDataPacket ¶ added in v1.2.0
func (t *TransportManager) SendDataPacket(dp *livekit.DataPacket) error
func (*TransportManager) SetICEConfig ¶ added in v1.2.0
func (t *TransportManager) SetICEConfig(iceConfig types.IceConfig)
func (*TransportManager) SetMigrateInfo ¶ added in v1.2.0
func (t *TransportManager) SetMigrateInfo(previousOffer, previousAnswer *webrtc.SessionDescription, dataChannels []*livekit.DataChannelInfo)
func (*TransportManager) SubscriberAsPrimary ¶ added in v1.2.0
func (t *TransportManager) SubscriberAsPrimary() bool
func (*TransportManager) SubscriberClose ¶ added in v1.2.1
func (t *TransportManager) SubscriberClose()
func (*TransportManager) WritePublisherRTCP ¶ added in v1.2.0
func (t *TransportManager) WritePublisherRTCP(pkts []rtcp.Packet) error
func (*TransportManager) WriteSubscriberRTCP ¶ added in v1.2.0
func (t *TransportManager) WriteSubscriberRTCP(pkts []rtcp.Packet) error
type TransportManagerParams ¶ added in v1.2.0
type TransportManagerParams struct { Identity livekit.ParticipantIdentity SID livekit.ParticipantID SubscriberAsPrimary bool Config *WebRTCConfig ProtocolVersion types.ProtocolVersion Telemetry telemetry.TelemetryService CongestionControlConfig config.CongestionControlConfig EnabledCodecs []*livekit.Codec SimTracks map[uint32]SimulcastTrackInfo ClientConf *livekit.ClientConfiguration ClientInfo ClientInfo Migration bool AllowTCPFallback bool TURNSEnabled bool Logger logger.Logger }
type TransportParams ¶
type TransportParams struct { ParticipantID livekit.ParticipantID ParticipantIdentity livekit.ParticipantIdentity ProtocolVersion types.ProtocolVersion Config *WebRTCConfig DirectionConfig DirectionConfig CongestionControlConfig config.CongestionControlConfig Telemetry telemetry.TelemetryService EnabledCodecs []*livekit.Codec Logger logger.Logger SimTracks map[uint32]SimulcastTrackInfo ClientInfo ClientInfo IsOfferer bool IsSendSide bool }
type UnhandleSimulcastInterceptor ¶ added in v0.15.3
type UnhandleSimulcastInterceptor struct { interceptor.NoOp // contains filtered or unexported fields }
func (*UnhandleSimulcastInterceptor) BindRemoteStream ¶ added in v0.15.3
func (u *UnhandleSimulcastInterceptor) BindRemoteStream(info *interceptor.StreamInfo, reader interceptor.RTPReader) interceptor.RTPReader
type UnhandleSimulcastInterceptorFactory ¶ added in v0.15.3
type UnhandleSimulcastInterceptorFactory struct {
// contains filtered or unexported fields
}
func NewUnhandleSimulcastInterceptorFactory ¶ added in v0.15.3
func NewUnhandleSimulcastInterceptorFactory(opts ...UnhandleSimulcastOption) (*UnhandleSimulcastInterceptorFactory, error)
func (*UnhandleSimulcastInterceptorFactory) NewInterceptor ¶ added in v0.15.3
func (f *UnhandleSimulcastInterceptorFactory) NewInterceptor(id string) (interceptor.Interceptor, error)
type UnhandleSimulcastOption ¶ added in v0.15.3
type UnhandleSimulcastOption func(r *UnhandleSimulcastInterceptor) error
func UnhandleSimulcastTracks ¶ added in v0.15.3
func UnhandleSimulcastTracks(tracks map[uint32]SimulcastTrackInfo) UnhandleSimulcastOption
type UpTrackManager ¶ added in v0.15.3
type UpTrackManager struct {
// contains filtered or unexported fields
}
func NewUpTrackManager ¶ added in v0.15.3
func NewUpTrackManager(params UpTrackManagerParams) *UpTrackManager
func (*UpTrackManager) AddPublishedTrack ¶ added in v0.15.3
func (u *UpTrackManager) AddPublishedTrack(track types.MediaTrack)
func (*UpTrackManager) AddSubscriber ¶ added in v0.15.3
func (u *UpTrackManager) AddSubscriber(sub types.LocalParticipant, params types.AddSubscriberParams) (int, error)
AddSubscriber subscribes op to all publishedTracks
func (*UpTrackManager) Close ¶ added in v0.15.3
func (u *UpTrackManager) Close(willBeResumed bool)
func (*UpTrackManager) DebugInfo ¶ added in v0.15.3
func (u *UpTrackManager) DebugInfo() map[string]interface{}
func (*UpTrackManager) GetPublishedTrack ¶ added in v0.15.3
func (u *UpTrackManager) GetPublishedTrack(trackID livekit.TrackID) types.MediaTrack
func (*UpTrackManager) GetPublishedTracks ¶ added in v0.15.3
func (u *UpTrackManager) GetPublishedTracks() []types.MediaTrack
func (*UpTrackManager) OnPublishedTrackUpdated ¶ added in v0.15.3
func (u *UpTrackManager) OnPublishedTrackUpdated(f func(track types.MediaTrack, onlyIfReady bool))
func (*UpTrackManager) OnUpTrackManagerClose ¶ added in v0.15.3
func (u *UpTrackManager) OnUpTrackManagerClose(f func())
func (*UpTrackManager) RemovePublishedTrack ¶ added in v0.15.3
func (u *UpTrackManager) RemovePublishedTrack(track types.MediaTrack, willBeResumed bool, shouldClose bool)
func (*UpTrackManager) RemoveSubscriber ¶ added in v0.15.3
func (u *UpTrackManager) RemoveSubscriber(sub types.LocalParticipant, trackID livekit.TrackID, willBeResumed bool)
func (*UpTrackManager) SetPublishedTrackMuted ¶ added in v0.15.3
func (u *UpTrackManager) SetPublishedTrackMuted(trackID livekit.TrackID, muted bool) types.MediaTrack
func (*UpTrackManager) Start ¶ added in v0.15.3
func (u *UpTrackManager) Start()
func (*UpTrackManager) SubscriptionPermission ¶ added in v0.15.3
func (u *UpTrackManager) SubscriptionPermission() (*livekit.SubscriptionPermission, *livekit.TimedVersion)
func (*UpTrackManager) ToProto ¶ added in v0.15.3
func (u *UpTrackManager) ToProto() []*livekit.TrackInfo
func (*UpTrackManager) UpdateSubscriptionPermission ¶ added in v0.15.3
func (u *UpTrackManager) UpdateSubscriptionPermission( subscriptionPermission *livekit.SubscriptionPermission, timedVersion *livekit.TimedVersion, resolverByIdentity func(participantIdentity livekit.ParticipantIdentity) types.LocalParticipant, resolverBySid func(participantID livekit.ParticipantID) types.LocalParticipant, ) error
func (*UpTrackManager) UpdateVideoLayers ¶ added in v0.15.3
func (u *UpTrackManager) UpdateVideoLayers(updateVideoLayers *livekit.UpdateVideoLayers) error
type UpTrackManagerParams ¶ added in v0.15.3
type UpTrackManagerParams struct { SID livekit.ParticipantID Logger logger.Logger }
type WebRTCConfig ¶
type WebRTCConfig struct { Configuration webrtc.Configuration SettingEngine webrtc.SettingEngine Receiver ReceiverConfig BufferFactory *buffer.Factory UDPMux ice.UDPMux TCPMuxListener *net.TCPListener Publisher DirectionConfig Subscriber DirectionConfig }
func NewWebRTCConfig ¶
func NewWebRTCConfig(conf *config.Config, externalIP string) (*WebRTCConfig, error)
func (*WebRTCConfig) SetBufferFactory ¶ added in v0.9.11
func (c *WebRTCConfig) SetBufferFactory(factory *buffer.Factory)
type WrappedReceiver ¶
type WrappedReceiver struct { sfu.TrackReceiver // contains filtered or unexported fields }
func NewWrappedReceiver ¶
func (*WrappedReceiver) Codecs ¶ added in v1.1.0
func (r *WrappedReceiver) Codecs() []webrtc.RTPCodecParameters
func (*WrappedReceiver) DetermineReceiver ¶ added in v1.1.0
func (r *WrappedReceiver) DetermineReceiver(codec webrtc.RTPCodecCapability)
func (*WrappedReceiver) StreamID ¶
func (r *WrappedReceiver) StreamID() string
func (*WrappedReceiver) TrackID ¶
func (r *WrappedReceiver) TrackID() livekit.TrackID
Source Files ¶
- clientinfo.go
- config.go
- dynacastmanager.go
- dynacastquality.go
- errors.go
- mediaengine.go
- medialossproxy.go
- mediatrack.go
- mediatrackreceiver.go
- mediatracksubscriptions.go
- participant.go
- participant_sdp.go
- participant_signal.go
- room.go
- room_egress.go
- rtc_unix.go
- signalhandler.go
- subscribedtrack.go
- transport.go
- transportmanager.go
- unhandlesimulcast.go
- uptrackmanager.go
- utils.go
- wrappedreceiver.go
Directories ¶
Path | Synopsis |
---|---|
typesfakes
Code generated by counterfeiter.
|
Code generated by counterfeiter. |