Documentation
¶
Index ¶
- Constants
- func IsCandidateMDNS(candidate webrtc.ICECandidateInit) bool
- func IsICECandidateMDNS(candidate ice.Candidate) bool
- func IsIntentionalDisconnect(reason livekit.DisconnectReason) bool
- func TrafficLoadToTrafficRate(trafficLoad *TrafficLoad) (packetRateIn float64, byteRateIn float64, packetRateOut float64, ...)
- type AddSubscriberParams
- type AddTrackParams
- type ChangeNotifier
- type DataDownTrack
- type DataMessageCache
- type DataResolverResult
- type DataTrack
- type DataTrackResolver
- type DataTrackSender
- type DataTrackTransport
- type ICECandidateExtended
- type ICEConnectionDetails
- func (d *ICEConnectionDetails) AddLocalCandidate(c *webrtc.ICECandidate, filtered, trickle bool)
- func (d *ICEConnectionDetails) AddLocalICECandidate(c ice.Candidate, filtered, trickle bool)
- func (d *ICEConnectionDetails) AddRemoteCandidate(c webrtc.ICECandidateInit, filtered, trickle, canUpdate bool)
- func (d *ICEConnectionDetails) AddRemoteICECandidate(iceCandidate ice.Candidate, filtered, trickle, canUpdate bool)
- func (d *ICEConnectionDetails) Clear()
- func (d *ICEConnectionDetails) GetConnectionType() ICEConnectionType
- func (d *ICEConnectionDetails) GetInfo() *ICEConnectionInfo
- func (d *ICEConnectionDetails) SetSelectedPair(pair *webrtc.ICECandidatePair)
- type ICEConnectionInfo
- type ICEConnectionType
- type LocalMediaTrack
- type LocalParticipant
- type LocalParticipantHelper
- type LocalParticipantListener
- type MediaResolverResult
- type MediaTrack
- type MediaTrackResolver
- type MigrateState
- type MoveToRoomParams
- type NullLocalParticipantListener
- func (*NullLocalParticipantListener) OnDataMessage(LocalParticipant, livekit.DataPacket_Kind, *livekit.DataPacket)
- func (*NullLocalParticipantListener) OnDataMessageUnlabeled(LocalParticipant, []byte)
- func (*NullLocalParticipantListener) OnGetDataBlob(LocalParticipant, *livekit.GetDataBlobRequest)
- func (*NullLocalParticipantListener) OnLeave(LocalParticipant, ParticipantCloseReason)
- func (*NullLocalParticipantListener) OnMigrateStateChange(LocalParticipant, MigrateState)
- func (*NullLocalParticipantListener) OnSimulateScenario(LocalParticipant, *livekit.SimulateScenario) error
- func (*NullLocalParticipantListener) OnStateChange(LocalParticipant)
- func (*NullLocalParticipantListener) OnStoreDataBlob(LocalParticipant, *livekit.DataBlob)
- func (*NullLocalParticipantListener) OnSubscribeStatusChanged(LocalParticipant, livekit.ParticipantID, bool)
- func (*NullLocalParticipantListener) OnSubscriberReady(LocalParticipant)
- func (*NullLocalParticipantListener) OnSyncState(LocalParticipant, *livekit.SyncState) error
- func (*NullLocalParticipantListener) OnUpdateDataSubscriptions(LocalParticipant, *livekit.UpdateDataSubscription)
- func (*NullLocalParticipantListener) OnUpdateSubscriptionPermission(LocalParticipant, *livekit.SubscriptionPermission) error
- func (*NullLocalParticipantListener) OnUpdateSubscriptions(LocalParticipant, []livekit.TrackID, []*livekit.ParticipantTracks, bool)
- type NullParticipantListener
- func (*NullParticipantListener) OnDataTrackMessage(Participant, []byte, *datatrack.Packet)
- func (*NullParticipantListener) OnDataTrackPublished(Participant, DataTrack)
- func (*NullParticipantListener) OnDataTrackUnpublished(Participant, DataTrack)
- func (*NullParticipantListener) OnMetrics(Participant, *livekit.DataPacket)
- func (*NullParticipantListener) OnParticipantUpdate(Participant)
- func (*NullParticipantListener) OnTrackPublished(Participant, MediaTrack)
- func (*NullParticipantListener) OnTrackUnpublished(Participant, MediaTrack)
- func (*NullParticipantListener) OnTrackUpdated(Participant, MediaTrack)
- type NullParticipantTelemetryListener
- func (NullParticipantTelemetryListener) OnTrackMaxSubscribedVideoQuality(pID livekit.ParticipantID, ti *livekit.TrackInfo, mime mime.MimeType, ...)
- func (NullParticipantTelemetryListener) OnTrackMuted(pID livekit.ParticipantID, ti *livekit.TrackInfo)
- func (NullParticipantTelemetryListener) OnTrackPublishRTPStats(pID livekit.ParticipantID, trackID livekit.TrackID, mimeType mime.MimeType, ...)
- func (NullParticipantTelemetryListener) OnTrackPublishRequested(pID livekit.ParticipantID, identity livekit.ParticipantIdentity, ...)
- func (NullParticipantTelemetryListener) OnTrackPublished(pID livekit.ParticipantID, identity livekit.ParticipantIdentity, ...)
- func (NullParticipantTelemetryListener) OnTrackPublishedUpdate(pID livekit.ParticipantID, ti *livekit.TrackInfo)
- func (NullParticipantTelemetryListener) OnTrackStats(key telemetry.StatsKey, stat *livekit.AnalyticsStat)
- func (NullParticipantTelemetryListener) OnTrackSubscribeFailed(pID livekit.ParticipantID, trackID livekit.TrackID, err error, ...)
- func (NullParticipantTelemetryListener) OnTrackSubscribeRTPStats(pID livekit.ParticipantID, trackID livekit.TrackID, mimeType mime.MimeType, ...)
- func (NullParticipantTelemetryListener) OnTrackSubscribeRequested(pID livekit.ParticipantID, ti *livekit.TrackInfo)
- func (NullParticipantTelemetryListener) OnTrackSubscribeStreamStarted(pID livekit.ParticipantID, ti *livekit.TrackInfo, elapsed time.Duration)
- func (NullParticipantTelemetryListener) OnTrackSubscribed(pID livekit.ParticipantID, ti *livekit.TrackInfo, ...)
- func (NullParticipantTelemetryListener) OnTrackUnmuted(pID livekit.ParticipantID, ti *livekit.TrackInfo)
- func (NullParticipantTelemetryListener) OnTrackUnpublished(pID livekit.ParticipantID, identity livekit.ParticipantIdentity, ...)
- func (NullParticipantTelemetryListener) OnTrackUnsubscribed(pID livekit.ParticipantID, ti *livekit.TrackInfo, shouldSendEvent bool)
- type OperationMonitor
- type OperationMonitorData
- type OperationMonitorEvent
- type Participant
- type ParticipantCloseReason
- type ParticipantListener
- type ParticipantTelemetryListener
- type ProtocolVersion
- func (v ProtocolVersion) HandlesDataPackets() bool
- func (v ProtocolVersion) SubscriberAsPrimary() bool
- func (v ProtocolVersion) SupportFastStart() bool
- func (v ProtocolVersion) SupportsAsyncRoomID() bool
- func (v ProtocolVersion) SupportsConnectionQuality() bool
- func (v ProtocolVersion) SupportsConnectionQualityLost() bool
- func (v ProtocolVersion) SupportsDisconnectedUpdate() bool
- func (v ProtocolVersion) SupportsICELite() bool
- func (v ProtocolVersion) SupportsIdentityBasedReconnection() bool
- func (v ProtocolVersion) SupportsMoving() bool
- func (v ProtocolVersion) SupportsNonErrorSignalResponse() bool
- func (v ProtocolVersion) SupportsPackedStreamId() bool
- func (v ProtocolVersion) SupportsPacketTrailer() bool
- func (v ProtocolVersion) SupportsProtobuf() bool
- func (v ProtocolVersion) SupportsRegionsInLeaveRequest() bool
- func (v ProtocolVersion) SupportsSessionMigrate() bool
- func (v ProtocolVersion) SupportsSpeakerChanged() bool
- func (v ProtocolVersion) SupportsSyncStreamID() bool
- func (v ProtocolVersion) SupportsTransceiverReuse() bool
- func (v ProtocolVersion) SupportsUnpublish() bool
- type Room
- type RoomCloseReason
- type SignallingCloseReason
- type SubscribedCodecQuality
- type SubscribedTrack
- type TrafficLoad
- type TrafficStats
- type TrafficTypeStats
- type WebsocketClient
Constants ¶
const ( ParticipantCloseKeyNormal = "normal" ParticipantCloseKeyWHIP = "whip" )
const CurrentProtocol = 17
Variables ¶
This section is empty.
Functions ¶
func IsCandidateMDNS ¶ added in v1.8.0
func IsCandidateMDNS(candidate webrtc.ICECandidateInit) bool
func IsICECandidateMDNS ¶ added in v1.8.0
func IsIntentionalDisconnect ¶ added in v1.13.0
func IsIntentionalDisconnect(reason livekit.DisconnectReason) bool
IsIntentionalDisconnect reports whether a disconnect reason represents an intentional/expected closure (client leaving, admin action, room teardown, migration, etc.) as opposed to a connection failure.
func TrafficLoadToTrafficRate ¶ added in v1.5.2
func TrafficLoadToTrafficRate(trafficLoad *TrafficLoad) ( packetRateIn float64, byteRateIn float64, packetRateOut float64, byteRateOut float64, )
Types ¶
type AddSubscriberParams ¶ added in v0.15.2
type AddTrackParams ¶ added in v1.2.5
type ChangeNotifier ¶ added in v1.3.4
type DataDownTrack ¶ added in v1.9.7
type DataDownTrack interface {
Close()
OnClose(fn func())
Handle() uint16
PublishDataTrack() DataTrack
UpdateSubscriptionOptions(subscriptionOptions *livekit.DataTrackSubscriptionOptions)
}
type DataMessageCache ¶ added in v1.9.1
type DataMessageCache struct {
Data []byte
SenderID livekit.ParticipantID
Seq uint32
DestIdentities []livekit.ParticipantIdentity
}
type DataResolverResult ¶ added in v1.9.7
type DataResolverResult struct {
TrackChangedNotifier ChangeNotifier
TrackRemovedNotifier ChangeNotifier
DataTrack DataTrack
// is permission given to the requesting participant
HasPermission bool
PublisherID livekit.ParticipantID
PublisherIdentity livekit.ParticipantIdentity
}
type DataTrack ¶ added in v1.9.7
type DataTrack interface {
ID() livekit.TrackID
PubHandle() uint16
Name() string
ToProto() *livekit.DataTrackInfo
PublisherID() livekit.ParticipantID
PublisherIdentity() livekit.ParticipantIdentity
AddSubscriber(sub LocalParticipant) (DataDownTrack, error)
RemoveSubscriber(participantID livekit.ParticipantID)
IsSubscriber(subID livekit.ParticipantID) bool
RevokeDisallowedSubscribers(allowedSubscriberIdentities []livekit.ParticipantIdentity) []livekit.ParticipantIdentity
AddDataDownTrack(sender DataTrackSender) error
DeleteDataDownTrack(subscriberID livekit.ParticipantID)
HandlePacket(data []byte, packet *datatrack.Packet, arrivalTime int64)
Close()
}
DataTrack represents a data track
type DataTrackResolver ¶ added in v1.9.7
type DataTrackResolver func(LocalParticipant, livekit.TrackID) DataResolverResult
DataTrackResolver locates a specific data track for a subscriber
type DataTrackSender ¶ added in v1.9.7
type DataTrackTransport ¶ added in v1.9.7
type ICECandidateExtended ¶ added in v1.5.2
type ICECandidateExtended struct {
Candidate *webrtc.ICECandidate
SelectedOrder int
Filtered bool
Trickle bool
}
type ICEConnectionDetails ¶ added in v1.5.2
type ICEConnectionDetails struct {
ICEConnectionInfo
// contains filtered or unexported fields
}
func NewICEConnectionDetails ¶ added in v1.5.2
func NewICEConnectionDetails(transport livekit.SignalTarget, l logger.Logger) *ICEConnectionDetails
func (*ICEConnectionDetails) AddLocalCandidate ¶ added in v1.5.2
func (d *ICEConnectionDetails) AddLocalCandidate(c *webrtc.ICECandidate, filtered, trickle bool)
func (*ICEConnectionDetails) AddLocalICECandidate ¶ added in v1.7.1
func (d *ICEConnectionDetails) AddLocalICECandidate(c ice.Candidate, filtered, trickle bool)
func (*ICEConnectionDetails) AddRemoteCandidate ¶ added in v1.5.2
func (d *ICEConnectionDetails) AddRemoteCandidate(c webrtc.ICECandidateInit, filtered, trickle, canUpdate bool)
func (*ICEConnectionDetails) AddRemoteICECandidate ¶ added in v1.7.1
func (d *ICEConnectionDetails) AddRemoteICECandidate(iceCandidate ice.Candidate, filtered, trickle, canUpdate bool)
func (*ICEConnectionDetails) Clear ¶ added in v1.5.2
func (d *ICEConnectionDetails) Clear()
func (*ICEConnectionDetails) GetConnectionType ¶ added in v1.9.0
func (d *ICEConnectionDetails) GetConnectionType() ICEConnectionType
func (*ICEConnectionDetails) GetInfo ¶ added in v1.8.0
func (d *ICEConnectionDetails) GetInfo() *ICEConnectionInfo
func (*ICEConnectionDetails) SetSelectedPair ¶ added in v1.5.2
func (d *ICEConnectionDetails) SetSelectedPair(pair *webrtc.ICECandidatePair)
type ICEConnectionInfo ¶ added in v1.8.0
type ICEConnectionInfo struct {
Local []*ICECandidateExtended
Remote []*ICECandidateExtended
Transport livekit.SignalTarget
Type ICEConnectionType
}
func (*ICEConnectionInfo) HasCandidates ¶ added in v1.8.0
func (i *ICEConnectionInfo) HasCandidates() bool
type ICEConnectionType ¶ added in v1.2.1
type ICEConnectionType int
const ( // this is in ICE priority highest -> lowest ordering // WARNING: Keep this ordering as it is used to find lowest priority connection type. ICEConnectionTypeUnknown ICEConnectionType = iota ICEConnectionTypeUDP ICEConnectionTypeTCP ICEConnectionTypeTURN )
func ICEConnectionInfosType ¶ added in v1.9.1
func ICEConnectionInfosType(infos []*ICEConnectionInfo) ICEConnectionType
func (ICEConnectionType) ReporterType ¶ added in v1.9.1
func (i ICEConnectionType) ReporterType() roomobs.ConnectionType
func (ICEConnectionType) String ¶ added in v1.9.0
func (i ICEConnectionType) String() string
type LocalMediaTrack ¶ added in v0.15.3
type LocalMediaTrack interface {
MediaTrack
Restart()
HasSignalCid(cid string) bool
HasSdpCid(cid string) bool
SetMigrated(bool)
Migrated() bool
SetPublished(bool)
Published() bool
GetConnectionScoreAndQuality() (float32, livekit.ConnectionQuality)
GetTrackStats() *livekit.RTPStats
SetRTT(rtt uint32)
NotifySubscriberNodeMaxQuality(nodeID livekit.NodeID, qualities []SubscribedCodecQuality)
NotifySubscriptionNode(nodeID livekit.NodeID, codecs []*livekit.SubscribedAudioCodec)
ClearSubscriberNodes()
NotifySubscriberNodeMediaLoss(nodeID livekit.NodeID, fractionalLoss uint8)
}
type LocalParticipant ¶ added in v0.15.3
type LocalParticipant interface {
Participant
TelemetryGuard() *telemetry.ReferenceGuard
GetTelemetryListener() ParticipantTelemetryListener
// getters
GetCountry() string
GetTrailer() []byte
GetLoggerResolver() logger.DeferredFieldResolver
GetReporter() roomobs.ParticipantSessionReporter
GetReporterResolver() roomobs.ParticipantReporterResolver
GetAdaptiveStream() bool
GetEnableStartAtDesiredQuality() bool
ProtocolVersion() ProtocolVersion
SupportsSyncStreamID() bool
SupportsTransceiverReuse(mt MediaTrack) bool
IsUsingSinglePeerConnection() bool
IsReady() bool
ActiveAt() time.Time
Disconnected() <-chan struct{}
IsConnectionCanceled(closeReason ParticipantCloseReason) bool
IsIdle() bool
SubscriberAsPrimary() bool
GetClientInfo() *livekit.ClientInfo
GetClientConfiguration() *livekit.ClientConfiguration
GetBufferFactory() *buffer.Factory
GetPlayoutDelayConfig() *livekit.PlayoutDelay
GetPendingTrack(trackID livekit.TrackID) *livekit.TrackInfo
GetICEConnectionInfo() []*ICEConnectionInfo
HasICEConnected() bool
HasConnected() bool
GetEnabledPublishCodecs() []*livekit.Codec
GetPublisherICESessionUfrag() (string, error)
SupportsMoving() error
GetLastReliableSequence(migrateOut bool) uint32
IsWarpEnabled() bool
SwapResponseSink(sink routing.MessageSink, reason SignallingCloseReason)
GetResponseSink() routing.MessageSink
CloseSignalConnection(reason SignallingCloseReason)
UpdateLastSeenSignal()
SetSignalSourceValid(valid bool)
HandleSignalSourceClose()
// updates
UpdateMetadata(update *livekit.UpdateParticipantMetadata, fromAdmin bool) error
SetName(name string)
SetMetadata(metadata string)
SetAttributes(attributes map[string]string)
UpdateAudioTrack(update *livekit.UpdateLocalAudioTrack) error
UpdateVideoTrack(update *livekit.UpdateLocalVideoTrack) error
// permissions
ClaimGrants() *auth.ClaimGrants
TokenExpiresAt() time.Time
SetPermission(permission *livekit.ParticipantPermission) bool
CanPublish() bool
CanPublishSource(source livekit.TrackSource) bool
CanSubscribe() bool
CanPublishData() bool
// PeerConnection
HandleICETrickle(trickleRequest *livekit.TrickleRequest)
HandleOffer(sd *livekit.SessionDescription) error
GetAnswer() (webrtc.SessionDescription, uint32, error)
HandleICETrickleSDPFragment(sdpFragment string) error
HandleICERestartSDPFragment(sdpFragment string) (string, error)
AddTrack(req *livekit.AddTrackRequest)
SetTrackMuted(mute *livekit.MuteTrackRequest, fromAdmin bool) *livekit.TrackInfo
HandleAnswer(sd *livekit.SessionDescription)
Negotiate(force bool)
ICERestart(iceConfig *livekit.ICEConfig)
AddTrackLocal(trackLocal webrtc.TrackLocal, params AddTrackParams) (*webrtc.RTPSender, *webrtc.RTPTransceiver, error)
AddTransceiverFromTrackLocal(trackLocal webrtc.TrackLocal, params AddTrackParams) (*webrtc.RTPSender, *webrtc.RTPTransceiver, error)
RemoveTrackLocal(sender *webrtc.RTPSender) error
WriteSubscriberRTCP(pkts []rtcp.Packet) error
// subscriptions
SubscribeToTrack(trackID livekit.TrackID, isSync bool)
UnsubscribeFromTrack(trackID livekit.TrackID)
UpdateSubscribedTrackSettings(trackID livekit.TrackID, settings *livekit.UpdateTrackSettings)
GetSubscribedTracks() []SubscribedTrack
GetSubscribedDataTracks() []DataDownTrack
IsTrackNameSubscribed(publisherIdentity livekit.ParticipantIdentity, trackName string) bool
SubscribeToDataTrack(trackID livekit.TrackID)
UnsubscribeFromDataTrack(trackID livekit.TrackID)
UpdateDataTrackSubscriptionOptions(trackID livekit.TrackID, subscriptionOptions *livekit.DataTrackSubscriptionOptions)
Verify() bool
VerifySubscribeParticipantInfo(pID livekit.ParticipantID, version uint32)
// WaitUntilSubscribed waits until all subscriptions have been settled, or if the timeout
// has been reached. If the timeout expires, it will return an error.
WaitUntilSubscribed(timeout time.Duration) error
StopAndGetSubscribedTracksForwarderState() map[livekit.TrackID]*livekit.RTPForwarderState
SupportsCodecChange() bool
// returns list of participant identities that the current participant is subscribed to
GetSubscribedParticipants() []livekit.ParticipantID
IsSubscribedTo(sid livekit.ParticipantID) bool
GetConnectionQuality() *livekit.ConnectionQualityInfo
// server sent messages
SendJoinResponse(joinResponse *livekit.JoinResponse) error
SendParticipantUpdate(participants []*livekit.ParticipantInfo) error
SendSpeakerUpdate(speakers []*livekit.SpeakerInfo, force bool) error
SendDataMessage(kind livekit.DataPacket_Kind, data []byte, senderID livekit.ParticipantID, seq uint32) error
SendDataMessageUnlabeled(data []byte, useRaw bool, sender livekit.ParticipantIdentity) error
SendRoomUpdate(room *livekit.Room) error
SendConnectionQualityUpdate(update *livekit.ConnectionQualityUpdate) error
SendSubscriptionPermissionUpdate(publisherID livekit.ParticipantID, trackID livekit.TrackID, allowed bool) error
SendRefreshToken(token string) error
HandleReconnectAndSendResponse(reconnectReason livekit.ReconnectReason, reconnectResponse *livekit.ReconnectResponse, recentlyDisconnectedParticipants []*livekit.ParticipantInfo) error
IssueFullReconnect(reason ParticipantCloseReason)
SendRoomMovedResponse(moved *livekit.RoomMovedResponse) error
SendDataTrackSubscriberHandles(handles map[uint32]*livekit.DataTrackSubscriberHandles_PublishedDataTrack) error
GetRecentlyDisconnectedParticipants() []*livekit.ParticipantInfo
AddOnClose(key string, callback func(LocalParticipant))
OnClaimsChanged(callback func(LocalParticipant))
HandleReceiverReport(dt *sfu.DownTrack, report *rtcp.ReceiverReport)
// session migration
MaybeStartMigration(force bool, onStart func()) bool
NotifyMigration()
SetMigrateState(s MigrateState)
SetMigrateInfo(
previousOffer *webrtc.SessionDescription,
previousAnswer *webrtc.SessionDescription,
mediaTracks []*livekit.TrackPublishedResponse,
dataChannels []*livekit.DataChannelInfo,
dataChannelReceiveState []*livekit.DataChannelReceiveState,
dataTracks []*livekit.PublishDataTrackResponse,
)
IsReconnect() bool
IsMigration() bool
LeaveSession(leave func())
JoinSession(join func())
MoveToRoom(params MoveToRoomParams)
UpdateMediaRTT(rtt uint32)
UpdateSignalingRTT(rtt uint32)
CacheDownTrack(trackID livekit.TrackID, rtpTransceiver *webrtc.RTPTransceiver, downTrackState sfu.DownTrackState)
UncacheDownTrack(rtpTransceiver *webrtc.RTPTransceiver)
GetCachedDownTrack(trackID livekit.TrackID) (*webrtc.RTPTransceiver, sfu.DownTrackState)
SetICEConfig(iceConfig *livekit.ICEConfig)
GetICEConfig() *livekit.ICEConfig
OnICEConfigChanged(callback func(participant LocalParticipant, iceConfig *livekit.ICEConfig))
UpdateSubscribedQuality(nodeID livekit.NodeID, trackID livekit.TrackID, maxQualities []SubscribedCodecQuality) error
UpdateSubscribedAudioCodecs(nodeID livekit.NodeID, trackID livekit.TrackID, codecs []*livekit.SubscribedAudioCodec) error
UpdateMediaLoss(nodeID livekit.NodeID, trackID livekit.TrackID, fractionalLoss uint32) error
// down stream bandwidth management
SetSubscriberAllowPause(allowPause bool)
SetSubscriberChannelCapacity(channelCapacity int64)
GetPacer() pacer.Pacer
GetDisableSenderReportPassThrough() bool
HandleMetrics(senderParticipantID livekit.ParticipantID, batch *livekit.MetricsBatch) error
HandleUpdateSubscriptions(
[]livekit.TrackID,
[]*livekit.ParticipantTracks,
bool,
)
HandleUpdateSubscriptionPermission(*livekit.SubscriptionPermission) error
HandleSyncState(*livekit.SyncState) error
HandleSimulateScenario(*livekit.SimulateScenario) error
HandleLeaveRequest(reason ParticipantCloseReason)
HandlePublishDataTrackRequest(*livekit.PublishDataTrackRequest)
HandleUnpublishDataTrackRequest(*livekit.UnpublishDataTrackRequest)
HandleUpdateDataSubscription(*livekit.UpdateDataSubscription)
HandleStoreDataBlobRequest(*livekit.StoreDataBlobRequest)
HandleGetDataBlobRequest(*livekit.GetDataBlobRequest)
ProcessGetDataBlobRequest(*livekit.GetDataBlobRequest, Participant)
HandleSignalMessage(msg proto.Message) error
PerformRpc(req *livekit.PerformRpcRequest, resultCh chan string, errorCh chan error)
GetDataTrackTransport() DataTrackTransport
ClearParticipantListener()
GetNextSubscribedDataTrackHandle() uint16
GetAllDataBlob() []*livekit.DataBlob
}
type LocalParticipantHelper ¶ added in v1.9.0
type LocalParticipantHelper interface {
ResolveMediaTrack(LocalParticipant, livekit.TrackID) MediaResolverResult
ResolveDataTrack(LocalParticipant, livekit.TrackID) DataResolverResult
GetParticipantInfo(pID livekit.ParticipantID) *livekit.ParticipantInfo
GetRegionSettings(ip string) *livekit.RegionSettings
GetSubscriberForwarderState(p LocalParticipant) (map[livekit.TrackID]*livekit.RTPForwarderState, error)
ShouldRegressCodec() bool
GetCachedReliableDataMessage(seqs map[livekit.ParticipantID]uint32) []*DataMessageCache
}
type LocalParticipantListener ¶ added in v1.9.8
type LocalParticipantListener interface {
ParticipantListener
OnStateChange(LocalParticipant)
OnSubscriberReady(LocalParticipant)
OnMigrateStateChange(LocalParticipant, MigrateState)
OnDataMessage(LocalParticipant, livekit.DataPacket_Kind, *livekit.DataPacket)
OnDataMessageUnlabeled(LocalParticipant, []byte)
OnSubscribeStatusChanged(LocalParticipant, livekit.ParticipantID, bool)
OnUpdateSubscriptions(
LocalParticipant,
[]livekit.TrackID,
[]*livekit.ParticipantTracks,
bool,
)
OnUpdateSubscriptionPermission(LocalParticipant, *livekit.SubscriptionPermission) error
OnUpdateDataSubscriptions(LocalParticipant, *livekit.UpdateDataSubscription)
OnStoreDataBlob(LocalParticipant, *livekit.DataBlob)
OnGetDataBlob(LocalParticipant, *livekit.GetDataBlobRequest)
OnSyncState(LocalParticipant, *livekit.SyncState) error
OnSimulateScenario(LocalParticipant, *livekit.SimulateScenario) error
OnLeave(LocalParticipant, ParticipantCloseReason)
}
type MediaResolverResult ¶ added in v1.3.4
type MediaResolverResult struct {
TrackChangedNotifier ChangeNotifier
TrackRemovedNotifier ChangeNotifier
Track MediaTrack
// is permission given to the requesting participant
HasPermission bool
PublisherID livekit.ParticipantID
PublisherIdentity livekit.ParticipantIdentity
}
type MediaTrack ¶ added in v0.15.0
type MediaTrack interface {
ID() livekit.TrackID
Kind() livekit.TrackType
Name() string
Source() livekit.TrackSource
Stream() string
UpdateTrackInfo(ti *livekit.TrackInfo)
UpdateAudioTrack(update *livekit.UpdateLocalAudioTrack)
UpdateVideoTrack(update *livekit.UpdateLocalVideoTrack)
ToProto() *livekit.TrackInfo
PublisherID() livekit.ParticipantID
PublisherIdentity() livekit.ParticipantIdentity
PublisherVersion() uint32
Logger() logger.Logger
IsMuted() bool
SetMuted(muted bool)
GetAudioLevel() (level float64, active bool)
Close(isExpectedToResume bool)
IsOpen() bool
// callbacks
AddOnClose(func(isExpectedToResume bool))
// subscribers
AddSubscriber(participant LocalParticipant) (SubscribedTrack, error)
RemoveSubscriber(participantID livekit.ParticipantID, isExpectedToResume bool)
IsSubscriber(subID livekit.ParticipantID) bool
RevokeDisallowedSubscribers(allowedSubscriberIdentities []livekit.ParticipantIdentity) []livekit.ParticipantIdentity
GetAllSubscribers() []livekit.ParticipantID
GetNumSubscribers() int
OnTrackSubscribed()
// returns quality information that's appropriate for width & height
GetQualityForDimension(mimeType mime.MimeType, width, height uint32) livekit.VideoQuality
// returns temporal layer that's appropriate for fps
GetTemporalLayerForSpatialFps(mimeType mime.MimeType, spatial int32, fps uint32) int32
Receivers() []sfu.TrackReceiver
ClearAllReceivers(isExpectedToResume bool)
IsEncrypted() bool
HasPacketTrailer() bool
}
MediaTrack represents a media track
type MediaTrackResolver ¶ added in v1.3.4
type MediaTrackResolver func(LocalParticipant, livekit.TrackID) MediaResolverResult
MediaTrackResolver locates a specific media track for a subscriber
type MigrateState ¶ added in v0.15.3
type MigrateState int32
const ( MigrateStateInit MigrateState = iota MigrateStateSync MigrateStateComplete )
func (MigrateState) String ¶ added in v0.15.3
func (m MigrateState) String() string
type MoveToRoomParams ¶ added in v1.9.0
type MoveToRoomParams struct {
RoomName livekit.RoomName
ParticipantID livekit.ParticipantID
Listener LocalParticipantListener
TelemetryListener ParticipantTelemetryListener
Helper LocalParticipantHelper
}
type NullLocalParticipantListener ¶ added in v1.9.8
type NullLocalParticipantListener struct {
NullParticipantListener
}
func (*NullLocalParticipantListener) OnDataMessage ¶ added in v1.9.8
func (*NullLocalParticipantListener) OnDataMessage(LocalParticipant, livekit.DataPacket_Kind, *livekit.DataPacket)
func (*NullLocalParticipantListener) OnDataMessageUnlabeled ¶ added in v1.9.10
func (*NullLocalParticipantListener) OnDataMessageUnlabeled(LocalParticipant, []byte)
func (*NullLocalParticipantListener) OnGetDataBlob ¶ added in v1.13.2
func (*NullLocalParticipantListener) OnGetDataBlob(LocalParticipant, *livekit.GetDataBlobRequest)
func (*NullLocalParticipantListener) OnLeave ¶ added in v1.9.8
func (*NullLocalParticipantListener) OnLeave(LocalParticipant, ParticipantCloseReason)
func (*NullLocalParticipantListener) OnMigrateStateChange ¶ added in v1.9.8
func (*NullLocalParticipantListener) OnMigrateStateChange(LocalParticipant, MigrateState)
func (*NullLocalParticipantListener) OnSimulateScenario ¶ added in v1.9.8
func (*NullLocalParticipantListener) OnSimulateScenario(LocalParticipant, *livekit.SimulateScenario) error
func (*NullLocalParticipantListener) OnStateChange ¶ added in v1.9.8
func (*NullLocalParticipantListener) OnStateChange(LocalParticipant)
func (*NullLocalParticipantListener) OnStoreDataBlob ¶ added in v1.13.2
func (*NullLocalParticipantListener) OnStoreDataBlob(LocalParticipant, *livekit.DataBlob)
func (*NullLocalParticipantListener) OnSubscribeStatusChanged ¶ added in v1.9.8
func (*NullLocalParticipantListener) OnSubscribeStatusChanged(LocalParticipant, livekit.ParticipantID, bool)
func (*NullLocalParticipantListener) OnSubscriberReady ¶ added in v1.9.8
func (*NullLocalParticipantListener) OnSubscriberReady(LocalParticipant)
func (*NullLocalParticipantListener) OnSyncState ¶ added in v1.9.8
func (*NullLocalParticipantListener) OnSyncState(LocalParticipant, *livekit.SyncState) error
func (*NullLocalParticipantListener) OnUpdateDataSubscriptions ¶ added in v1.9.8
func (*NullLocalParticipantListener) OnUpdateDataSubscriptions(LocalParticipant, *livekit.UpdateDataSubscription)
func (*NullLocalParticipantListener) OnUpdateSubscriptionPermission ¶ added in v1.9.8
func (*NullLocalParticipantListener) OnUpdateSubscriptionPermission(LocalParticipant, *livekit.SubscriptionPermission) error
func (*NullLocalParticipantListener) OnUpdateSubscriptions ¶ added in v1.9.8
func (*NullLocalParticipantListener) OnUpdateSubscriptions( LocalParticipant, []livekit.TrackID, []*livekit.ParticipantTracks, bool, )
type NullParticipantListener ¶ added in v1.9.8
type NullParticipantListener struct{}
func (*NullParticipantListener) OnDataTrackMessage ¶ added in v1.9.10
func (*NullParticipantListener) OnDataTrackMessage(Participant, []byte, *datatrack.Packet)
func (*NullParticipantListener) OnDataTrackPublished ¶ added in v1.9.8
func (*NullParticipantListener) OnDataTrackPublished(Participant, DataTrack)
func (*NullParticipantListener) OnDataTrackUnpublished ¶ added in v1.9.8
func (*NullParticipantListener) OnDataTrackUnpublished(Participant, DataTrack)
func (*NullParticipantListener) OnMetrics ¶ added in v1.9.8
func (*NullParticipantListener) OnMetrics(Participant, *livekit.DataPacket)
func (*NullParticipantListener) OnParticipantUpdate ¶ added in v1.9.8
func (*NullParticipantListener) OnParticipantUpdate(Participant)
func (*NullParticipantListener) OnTrackPublished ¶ added in v1.9.8
func (*NullParticipantListener) OnTrackPublished(Participant, MediaTrack)
func (*NullParticipantListener) OnTrackUnpublished ¶ added in v1.9.8
func (*NullParticipantListener) OnTrackUnpublished(Participant, MediaTrack)
func (*NullParticipantListener) OnTrackUpdated ¶ added in v1.9.8
func (*NullParticipantListener) OnTrackUpdated(Participant, MediaTrack)
type NullParticipantTelemetryListener ¶ added in v1.9.12
type NullParticipantTelemetryListener struct{}
func (NullParticipantTelemetryListener) OnTrackMaxSubscribedVideoQuality ¶ added in v1.9.12
func (NullParticipantTelemetryListener) OnTrackMaxSubscribedVideoQuality(pID livekit.ParticipantID, ti *livekit.TrackInfo, mime mime.MimeType, maxQuality livekit.VideoQuality)
func (NullParticipantTelemetryListener) OnTrackMuted ¶ added in v1.9.12
func (NullParticipantTelemetryListener) OnTrackMuted(pID livekit.ParticipantID, ti *livekit.TrackInfo)
func (NullParticipantTelemetryListener) OnTrackPublishRTPStats ¶ added in v1.9.12
func (NullParticipantTelemetryListener) OnTrackPublishRTPStats(pID livekit.ParticipantID, trackID livekit.TrackID, mimeType mime.MimeType, layer int, stats *livekit.RTPStats)
func (NullParticipantTelemetryListener) OnTrackPublishRequested ¶ added in v1.9.12
func (NullParticipantTelemetryListener) OnTrackPublishRequested(pID livekit.ParticipantID, identity livekit.ParticipantIdentity, ti *livekit.TrackInfo, shouldSendEvent bool)
func (NullParticipantTelemetryListener) OnTrackPublished ¶ added in v1.9.12
func (NullParticipantTelemetryListener) OnTrackPublished(pID livekit.ParticipantID, identity livekit.ParticipantIdentity, ti *livekit.TrackInfo, shouldSendEvent bool)
func (NullParticipantTelemetryListener) OnTrackPublishedUpdate ¶ added in v1.9.12
func (NullParticipantTelemetryListener) OnTrackPublishedUpdate(pID livekit.ParticipantID, ti *livekit.TrackInfo)
func (NullParticipantTelemetryListener) OnTrackStats ¶ added in v1.9.12
func (NullParticipantTelemetryListener) OnTrackStats(key telemetry.StatsKey, stat *livekit.AnalyticsStat)
func (NullParticipantTelemetryListener) OnTrackSubscribeFailed ¶ added in v1.9.12
func (NullParticipantTelemetryListener) OnTrackSubscribeFailed(pID livekit.ParticipantID, trackID livekit.TrackID, err error, isUserError bool)
func (NullParticipantTelemetryListener) OnTrackSubscribeRTPStats ¶ added in v1.9.12
func (NullParticipantTelemetryListener) OnTrackSubscribeRTPStats(pID livekit.ParticipantID, trackID livekit.TrackID, mimeType mime.MimeType, stats *livekit.RTPStats)
func (NullParticipantTelemetryListener) OnTrackSubscribeRequested ¶ added in v1.9.12
func (NullParticipantTelemetryListener) OnTrackSubscribeRequested(pID livekit.ParticipantID, ti *livekit.TrackInfo)
func (NullParticipantTelemetryListener) OnTrackSubscribeStreamStarted ¶ added in v1.11.0
func (NullParticipantTelemetryListener) OnTrackSubscribeStreamStarted(pID livekit.ParticipantID, ti *livekit.TrackInfo, elapsed time.Duration)
func (NullParticipantTelemetryListener) OnTrackSubscribed ¶ added in v1.9.12
func (NullParticipantTelemetryListener) OnTrackSubscribed(pID livekit.ParticipantID, ti *livekit.TrackInfo, publisherInfo *livekit.ParticipantInfo, shouldSendEvent bool)
func (NullParticipantTelemetryListener) OnTrackUnmuted ¶ added in v1.9.12
func (NullParticipantTelemetryListener) OnTrackUnmuted(pID livekit.ParticipantID, ti *livekit.TrackInfo)
func (NullParticipantTelemetryListener) OnTrackUnpublished ¶ added in v1.9.12
func (NullParticipantTelemetryListener) OnTrackUnpublished(pID livekit.ParticipantID, identity livekit.ParticipantIdentity, ti *livekit.TrackInfo, wasPublishedLocally bool, shouldSendEvent bool)
func (NullParticipantTelemetryListener) OnTrackUnsubscribed ¶ added in v1.9.12
func (NullParticipantTelemetryListener) OnTrackUnsubscribed(pID livekit.ParticipantID, ti *livekit.TrackInfo, shouldSendEvent bool)
type OperationMonitor ¶ added in v1.2.2
type OperationMonitor interface {
PostEvent(ome OperationMonitorEvent, omd OperationMonitorData)
Check() error
IsIdle() bool
}
type OperationMonitorData ¶ added in v1.2.2
type OperationMonitorData any
type OperationMonitorEvent ¶ added in v1.2.2
type OperationMonitorEvent int
Supervisor/operation monitor related definitions
const ( OperationMonitorEventPublisherPeerConnectionConnected OperationMonitorEvent = iota OperationMonitorEventAddPendingPublication OperationMonitorEventSetPublicationMute OperationMonitorEventSetPublishedTrack OperationMonitorEventClearPublishedTrack )
func (OperationMonitorEvent) String ¶ added in v1.2.2
func (o OperationMonitorEvent) String() string
type Participant ¶
type Participant interface {
ID() livekit.ParticipantID
Identity() livekit.ParticipantIdentity
State() livekit.ParticipantInfo_State
ConnectedAt() time.Time
CloseReason() ParticipantCloseReason
Kind() livekit.ParticipantInfo_Kind
KindDetails() []livekit.ParticipantInfo_KindDetail
IsRecorder() bool
IsDependent() bool
IsAgent() bool
GetLogger() logger.Logger
CanSkipBroadcast() bool
Version() utils.TimedVersion
ToProto() *livekit.ParticipantInfo
ToProtoWithVersion() (*livekit.ParticipantInfo, utils.TimedVersion)
IsPublisher() bool
GetPublishedTrack(trackID livekit.TrackID) MediaTrack
GetPublishedTracks() []MediaTrack
RemovePublishedTrack(track MediaTrack, isExpectedToResume bool)
GetPublishedDataTracks() []DataTrack
GetPublishedDataTrack(handle uint16) DataTrack
RemovePublishedDataTrack(track DataTrack)
GetAudioLevel() (smoothedLevel float64, active bool)
// HasPermission checks permission of the subscriber by identity. Returns true if subscriber is allowed to subscribe
// to the track with trackID
HasPermission(trackID livekit.TrackID, subIdentity livekit.ParticipantIdentity) bool
// permissions
Hidden() bool
MigrateState() MigrateState
Close(sendLeave bool, reason ParticipantCloseReason, isExpectedToResume bool) error
IsClosed() bool
IsDisconnected() bool
SubscriptionPermission() (*livekit.SubscriptionPermission, utils.TimedVersion)
// updates from remotes
UpdateSubscriptionPermission(
subscriptionPermission *livekit.SubscriptionPermission,
timedVersion utils.TimedVersion,
resolverBySid func(participantID livekit.ParticipantID) LocalParticipant,
) error
DebugInfo() map[string]any
HandleReceivedDataTrackMessage([]byte, *datatrack.Packet, int64)
GetParticipantListener() ParticipantListener
AddDataBlob(dataBlob *livekit.DataBlob)
GetDataBlob(key *livekit.DataBlobKey) *livekit.DataBlob
}
type ParticipantCloseReason ¶ added in v1.1.0
type ParticipantCloseReason int
const ( ParticipantCloseReasonNone ParticipantCloseReason = iota ParticipantCloseReasonClientRequestLeave ParticipantCloseReasonRoomManagerStop ParticipantCloseReasonVerifyFailed ParticipantCloseReasonJoinFailed ParticipantCloseReasonJoinTimeout ParticipantCloseReasonMessageBusFailed ParticipantCloseReasonPeerConnectionDisconnected ParticipantCloseReasonDuplicateIdentity ParticipantCloseReasonMigrationComplete ParticipantCloseReasonStale ParticipantCloseReasonServiceRequestRemoveParticipant ParticipantCloseReasonServiceRequestDeleteRoom ParticipantCloseReasonSimulateMigration ParticipantCloseReasonSimulateNodeFailure ParticipantCloseReasonSimulateServerLeave ParticipantCloseReasonSimulateLeaveRequest ParticipantCloseReasonNegotiateFailed ParticipantCloseReasonMigrationRequested ParticipantCloseReasonPublicationError ParticipantCloseReasonSubscriptionError ParticipantCloseReasonDataChannelError ParticipantCloseReasonMigrateCodecMismatch ParticipantCloseReasonSignalSourceClose ParticipantCloseReasonRoomClosed ParticipantCloseReasonUserRejected ParticipantCloseReasonMoveFailed ParticipantCloseReasonAgentError ParticipantCloseReasonSIPTrunkFailure )
func (ParticipantCloseReason) String ¶ added in v1.1.0
func (p ParticipantCloseReason) String() string
func (ParticipantCloseReason) ToDisconnectReason ¶ added in v1.1.1
func (p ParticipantCloseReason) ToDisconnectReason() livekit.DisconnectReason
type ParticipantListener ¶ added in v1.9.8
type ParticipantListener interface {
OnParticipantUpdate(Participant)
OnTrackPublished(Participant, MediaTrack)
OnTrackUpdated(Participant, MediaTrack)
OnTrackUnpublished(Participant, MediaTrack)
OnDataTrackPublished(Participant, DataTrack)
OnDataTrackUnpublished(Participant, DataTrack)
OnDataTrackMessage(Participant, []byte, *datatrack.Packet)
OnMetrics(Participant, *livekit.DataPacket)
}
type ParticipantTelemetryListener ¶ added in v1.9.12
type ParticipantTelemetryListener interface {
OnTrackPublishRequested(pID livekit.ParticipantID, identity livekit.ParticipantIdentity, ti *livekit.TrackInfo, shouldSendEvent bool)
OnTrackPublished(pID livekit.ParticipantID, identity livekit.ParticipantIdentity, ti *livekit.TrackInfo, shouldSendEvent bool)
OnTrackUnpublished(pID livekit.ParticipantID, identity livekit.ParticipantIdentity, ti *livekit.TrackInfo, wasPublishedLocally bool, shouldSendEvent bool)
OnTrackSubscribeRequested(pID livekit.ParticipantID, ti *livekit.TrackInfo)
OnTrackSubscribed(pID livekit.ParticipantID, ti *livekit.TrackInfo, publisherInfo *livekit.ParticipantInfo, shouldSendEvent bool)
OnTrackUnsubscribed(pID livekit.ParticipantID, ti *livekit.TrackInfo, shouldSendEvent bool)
OnTrackSubscribeFailed(pID livekit.ParticipantID, trackID livekit.TrackID, err error, isUserError bool)
OnTrackSubscribeStreamStarted(pID livekit.ParticipantID, ti *livekit.TrackInfo, elapsed time.Duration)
OnTrackMuted(pID livekit.ParticipantID, ti *livekit.TrackInfo)
OnTrackUnmuted(pID livekit.ParticipantID, ti *livekit.TrackInfo)
OnTrackPublishedUpdate(pID livekit.ParticipantID, ti *livekit.TrackInfo)
OnTrackMaxSubscribedVideoQuality(pID livekit.ParticipantID, ti *livekit.TrackInfo, mime mime.MimeType, maxQuality livekit.VideoQuality)
OnTrackPublishRTPStats(pID livekit.ParticipantID, trackID livekit.TrackID, mimeType mime.MimeType, layer int, stats *livekit.RTPStats)
OnTrackSubscribeRTPStats(pID livekit.ParticipantID, trackID livekit.TrackID, mimeType mime.MimeType, stats *livekit.RTPStats)
OnTrackStats(key telemetry.StatsKey, stat *livekit.AnalyticsStat)
}
type ProtocolVersion ¶
type ProtocolVersion int
func (ProtocolVersion) HandlesDataPackets ¶
func (v ProtocolVersion) HandlesDataPackets() bool
func (ProtocolVersion) SubscriberAsPrimary ¶ added in v0.13.0
func (v ProtocolVersion) SubscriberAsPrimary() bool
SubscriberAsPrimary indicates clients initiate subscriber connection as primary
func (ProtocolVersion) SupportFastStart ¶ added in v1.1.0
func (v ProtocolVersion) SupportFastStart() bool
SupportFastStart - if client supports fast start, server side will send media streams in the first offer
func (ProtocolVersion) SupportsAsyncRoomID ¶ added in v1.5.3
func (v ProtocolVersion) SupportsAsyncRoomID() bool
func (ProtocolVersion) SupportsConnectionQuality ¶ added in v0.14.0
func (v ProtocolVersion) SupportsConnectionQuality() bool
SupportsConnectionQuality - avoid sending frequent ConnectionQuality updates for lower protocol versions
func (ProtocolVersion) SupportsConnectionQualityLost ¶ added in v1.5.2
func (v ProtocolVersion) SupportsConnectionQualityLost() bool
func (ProtocolVersion) SupportsDisconnectedUpdate ¶ added in v1.9.1
func (v ProtocolVersion) SupportsDisconnectedUpdate() bool
func (ProtocolVersion) SupportsICELite ¶ added in v0.15.4
func (v ProtocolVersion) SupportsICELite() bool
func (ProtocolVersion) SupportsIdentityBasedReconnection ¶ added in v1.5.3
func (v ProtocolVersion) SupportsIdentityBasedReconnection() bool
func (ProtocolVersion) SupportsMoving ¶ added in v1.9.0
func (v ProtocolVersion) SupportsMoving() bool
func (ProtocolVersion) SupportsNonErrorSignalResponse ¶ added in v1.8.0
func (v ProtocolVersion) SupportsNonErrorSignalResponse() bool
func (ProtocolVersion) SupportsPackedStreamId ¶
func (v ProtocolVersion) SupportsPackedStreamId() bool
func (ProtocolVersion) SupportsPacketTrailer ¶ added in v1.10.1
func (v ProtocolVersion) SupportsPacketTrailer() bool
func (ProtocolVersion) SupportsProtobuf ¶ added in v0.11.0
func (v ProtocolVersion) SupportsProtobuf() bool
func (ProtocolVersion) SupportsRegionsInLeaveRequest ¶ added in v1.5.3
func (v ProtocolVersion) SupportsRegionsInLeaveRequest() bool
func (ProtocolVersion) SupportsSessionMigrate ¶ added in v0.15.3
func (v ProtocolVersion) SupportsSessionMigrate() bool
func (ProtocolVersion) SupportsSpeakerChanged ¶ added in v0.13.0
func (v ProtocolVersion) SupportsSpeakerChanged() bool
SupportsSpeakerChanged - if client handles speaker info deltas, instead of a comprehensive list
func (ProtocolVersion) SupportsSyncStreamID ¶ added in v1.9.1
func (v ProtocolVersion) SupportsSyncStreamID() bool
func (ProtocolVersion) SupportsTransceiverReuse ¶ added in v0.13.3
func (v ProtocolVersion) SupportsTransceiverReuse() bool
SupportsTransceiverReuse - if transceiver reuse is supported, optimizes SDP size
func (ProtocolVersion) SupportsUnpublish ¶ added in v0.15.6
func (v ProtocolVersion) SupportsUnpublish() bool
type Room ¶ added in v0.15.0
type Room interface {
Name() livekit.RoomName
ID() livekit.RoomID
RemoveParticipant(identity livekit.ParticipantIdentity, pID livekit.ParticipantID, reason ParticipantCloseReason)
UpdateSubscriptions(
participant LocalParticipant,
trackIDs []livekit.TrackID,
participantTracks []*livekit.ParticipantTracks,
subscribe bool,
)
ResolveMediaTrackForSubscriber(sub LocalParticipant, trackID livekit.TrackID) MediaResolverResult
ResolveDataTrackForSubscriber(sub LocalParticipant, trackID livekit.TrackID) DataResolverResult
GetLocalParticipants() []LocalParticipant
IsDataMessageUserPacketDuplicate(ip *livekit.UserPacket) bool
}
Room is a container of participants, and can provide room-level actions
type RoomCloseReason ¶ added in v1.13.7
type RoomCloseReason int
const ( RoomCloseReasonUnknown RoomCloseReason = iota RoomCloseReasonAPIDelete RoomCloseReasonIdleTimeout RoomCloseReasonServerShutdown RoomCloseReasonSuperseded RoomCloseReasonOpenFailed )
func (RoomCloseReason) String ¶ added in v1.13.7
func (r RoomCloseReason) String() string
func (RoomCloseReason) ToParticipantCloseReason ¶ added in v1.13.7
func (r RoomCloseReason) ToParticipantCloseReason() ParticipantCloseReason
ToParticipantCloseReason gives the reason participants are closed with when the room closes for this reason, so the two can never disagree.
func (RoomCloseReason) ToProto ¶ added in v1.13.7
func (r RoomCloseReason) ToProto() livekit.RoomEndReason
type SignallingCloseReason ¶ added in v1.4.4
type SignallingCloseReason int
const ( SignallingCloseReasonUnknown SignallingCloseReason = iota SignallingCloseReasonMigration SignallingCloseReasonResume SignallingCloseReasonTransportFailure SignallingCloseReasonFullReconnectPublicationError SignallingCloseReasonFullReconnectSubscriptionError SignallingCloseReasonFullReconnectDataChannelError SignallingCloseReasonFullReconnectNegotiateFailed SignallingCloseReasonParticipantClose SignallingCloseReasonDisconnectOnResume SignallingCloseReasonDisconnectOnResumeNoMessages )
func (SignallingCloseReason) String ¶ added in v1.4.4
func (s SignallingCloseReason) String() string
type SubscribedCodecQuality ¶ added in v1.1.0
type SubscribedCodecQuality struct {
CodecMime mime.MimeType
Quality livekit.VideoQuality
}
type SubscribedTrack ¶
type SubscribedTrack interface {
AddOnBind(f func(error))
IsBound() bool
OnSubscribeStreamStarted(f func(elapsed time.Duration))
Close(isExpectedToResume bool)
OnClose(f func(isExpectedToResume bool))
ID() livekit.TrackID
PublisherID() livekit.ParticipantID
PublisherIdentity() livekit.ParticipantIdentity
PublisherVersion() uint32
SubscriberID() livekit.ParticipantID
SubscriberIdentity() livekit.ParticipantIdentity
Subscriber() LocalParticipant
DownTrack() *sfu.DownTrack
MediaTrack() MediaTrack
RTPSender() *webrtc.RTPSender
IsMuted() bool
SetPublisherMuted(muted bool)
UpdateSubscriberSettings(settings *livekit.UpdateTrackSettings, isImmediate bool)
// selects appropriate video layer according to subscriber preferences
UpdateVideoLayer()
NeedsNegotiation() bool
}
type TrafficLoad ¶ added in v1.5.2
type TrafficLoad struct {
TrafficTypeStats []*TrafficTypeStats
}
type TrafficStats ¶ added in v1.5.2
type TrafficStats struct {
StartTime time.Time
EndTime time.Time
Packets uint32
PacketsLost uint32
PacketsPadding uint32
PacketsOutOfOrder uint32
Bytes uint64
}
func AggregateTrafficStats ¶ added in v1.5.2
func AggregateTrafficStats(statsList ...*TrafficStats) *TrafficStats
func RTPStatsDiffToTrafficStats ¶ added in v1.5.2
func RTPStatsDiffToTrafficStats(before, after *livekit.RTPStats) *TrafficStats
type TrafficTypeStats ¶ added in v1.5.2
type TrafficTypeStats struct {
TrackType livekit.TrackType
StreamType livekit.StreamType
TrafficStats *TrafficStats
}
type WebsocketClient ¶
type WebsocketClient interface {
ReadMessage() (messageType int, p []byte, err error)
NextReader() (messageType int, r io.Reader, err error)
WriteMessage(messageType int, data []byte) error
WriteControl(messageType int, data []byte, deadline time.Time) error
SetReadDeadline(deadline time.Time) error
Close() error
}