Documentation
¶
Index ¶
- type Configs
- type Connection
- type Connections
- type LocalTracks
- type Peer
- func (p *Peer) AddAnswer(answer *webrtc.SessionDescription) error
- func (p *Peer) AddAudioRTP(trackID, peerConnectionID *string, packet *rtp.Packet) error
- func (p *Peer) AddAudioSample(trackID, peerConnectionID *string, sample *media.Sample) error
- func (p *Peer) AddAudioTrack(trackConfig *TrackConfig) error
- func (p *Peer) AddDuplicated(t string, element bool)
- func (p *Peer) AddICECandidate(icecandidate interface{}) error
- func (p *Peer) AddOffer(offer *webrtc.SessionDescription) error
- func (p *Peer) AddSDP(values interface{}) error
- func (p *Peer) AddVideoRTP(trackID, peerConnectionID *string, packet *rtp.Packet) error
- func (p *Peer) AddVideoSample(trackID, peerConnectionID *string, sample *media.Sample) error
- func (p *Peer) AddVideoTrack(trackConfig *TrackConfig) error
- func (p *Peer) Close()
- func (p *Peer) CreateAnswer() error
- func (p *Peer) CreateOffer(iceRestart bool) error
- func (p *Peer) DeleteDuplicated(t string)
- func (p *Peer) Error(v string, tags map[string]any)
- func (p *Peer) GetAudioRTPTrack(trackID *string) *webrtc.TrackLocalStaticRTP
- func (p *Peer) GetCookieID() *string
- func (p *Peer) GetDuplicated(t string) bool
- func (p *Peer) GetLocalDescription() (*webrtc.SessionDescription, error)
- func (p *Peer) GetPeerConnectionID() *string
- func (p *Peer) GetRole() *string
- func (p *Peer) GetVideoRTPTrack(trackID *string) *webrtc.TrackLocalStaticRTP
- func (p *Peer) HandleVideoTrack(remoteTrack *webrtc.TrackRemote)
- func (p *Peer) Info(v string, tags map[string]any)
- func (p *Peer) Init() (*webrtc.PeerConnection, error)
- func (p *Peer) InitDC(handleOnDatachannel func(pcID *string, d *webrtc.DataChannel)) (*webrtc.PeerConnection, error)
- func (p *Peer) IsConnected() bool
- func (p *Peer) IsFirstInit(trackID *string) string
- func (p *Peer) IsReceivedData(trackID *string) bool
- func (p *Peer) RemoveAudioTrack(trackID *string) error
- func (p *Peer) RemoveVideoTrack(trackID *string) error
- func (p *Peer) ReplaceAudioTrack(trackID, codec *string) error
- func (p *Peer) ReplaceVideoTrack(trackID, codec *string) error
- func (p *Peer) SendPictureLossIndication()
- func (p *Peer) SetCodecPreferences(payLoadType *int, trackConfig *TrackConfig) error
- func (p *Peer) SetIsConnected(states bool)
- func (p *Peer) SetLogger(log utils.Log)
- func (p *Peer) SetPliInterval(interval int)
- func (p *Peer) Stack(v ...string)
- func (p *Peer) Warn(v string, tags map[string]any)
- type Peers
- func (p *Peers) AddCandidate(peerConnectionID *string, value interface{}) error
- func (p *Peers) AddConnection(configs *Configs, ...) (*Peer, error)
- func (p *Peers) AddDCConnection(configs *Configs, ...) (*Peer, error)
- func (p *Peers) AddSDP(peerConnectionID *string, value interface{}) error
- func (p *Peers) Close()
- func (p *Peers) CountAllPeer() int64
- func (p *Peers) GetAllConnection() []*Peer
- func (p *Peers) GetAllPeerConnectionID() []string
- func (p *Peers) GetConnection(peerConnectionID *string) *Peer
- func (p *Peers) GetState(peerConnectionID string) string
- func (p *Peers) GetStates(temp map[string]string)
- func (p *Peers) RemoveConnection(peerConnectionID *string)
- type TrackConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Configs ¶
type Configs struct {
MaxMTU int // setting for max buffer
TurnConfig *webrtc.Configuration // turn server
Codec *string
// peer init
Bitrate *int
Role *string
PeerConnectionID *string
PayloadType int
AllowUpVideo bool
AllowUpAudio bool
AllowDownVideo bool
AllowDownAudio bool
IsCreateDC bool
}
Configs setting init peer config
type Connection ¶
type Connection interface {
Init() (*webrtc.PeerConnection, error)
GetRole() *string
GetCookieID() *string
GetPeerConnectionID() *string
GetLocalDescription() (*webrtc.SessionDescription, error)
GetAudioRTPTrack(trackID *string) *webrtc.TrackLocalStaticRTP
GetVideoRTPTrack(trackID *string) *webrtc.TrackLocalStaticRTP
ReplaceAudioTrack(trackID, codec *string) error
ReplaceVideoTrack(trackID, codec *string) error
CreateOffer(iceRestart bool) error
CreateAnswer() error
Close()
AddVideoTrack(trackConfig *TrackConfig) error
AddAudioTrack(trackConfig *TrackConfig) error
RemoveVideoTrack(trackID *string) error
RemoveAudioTrack(trackID *string) error
AddSDP(values interface{}) error
AddOffer(offer *webrtc.SessionDescription) error
AddAnswer(answer *webrtc.SessionDescription) error
AddICECandidate(icecandidate interface{}) error
AddVideoRTP(trackID, peerConnectionID *string, packet *rtp.Packet) error
AddAudioRTP(trackID, peerConnectionID *string, packet *rtp.Packet) error
AddVideoSample(trackID, peerConnectionID *string, sample *media.Sample) error
AddAudioSample(trackID, peerConnectionID *string, sample *media.Sample) error
HandleVideoTrack(remoteTrack *webrtc.TrackRemote)
// SetCodecPreferences sets preferred list of supported codecs
// if codecs is empty or nil we reset to default from MediaEngine
SetCodecPreferences(payLoadType *int, trackConfig *TrackConfig) error
IsConnected() bool
SetIsConnected(states bool)
// IsReceivedData linter
IsReceivedData(trackID *string) bool
// IsFirstInit return 1 if is first init, 2 is received data and not
IsFirstInit(trackID *string) string
InitDC(
handleOnDatachannel func(pcID *string, d *webrtc.DataChannel),
) (*webrtc.PeerConnection, error)
SendPictureLossIndication()
AddDuplicated(t string, element bool)
GetDuplicated(t string) bool
DeleteDuplicated(t string)
// SetPliInterval linter
SetPliInterval(int)
// init logger
SetLogger(log utils.Log)
}
Connection linter
type Connections ¶
type Connections interface {
Close()
AddConnection(
configs *Configs,
handleOnTrack func(signalID, peerConnectionID *string, remoteTrack *webrtc.TrackRemote),
handleAddPeer func(signalID, role, peerConnectionID *string),
handleFailedPeer func(signalID, role, peerConnectionID *string),
handleCandidate func(signalID, peerConnectionID *string, candidate *webrtc.ICECandidate),
handleOnNegotiationNeeded func(signalID, peerConnectionID, cookieID *string),
) (*Peer, error)
RemoveConnection(
peerConnectionID *string,
)
GetAllConnection() []*Peer
GetAllPeerConnectionID() []string
GetConnection(peerConnectionID *string) *Peer
GetStates(temp map[string]string) // get all connection states
GetState(peerConnectionID string) string // get single connection state
// AddCandidate(peerConnectionID *string, value interface{}) error
AddSDP(peerConnectionID *string, value interface{}) error
CountAllPeer() int64
AddDCConnection(
configs *Configs,
handleOnDatachannel func(pcID *string, d *webrtc.DataChannel),
handleAddDCPeer func(signalID, role, peerConnectionID *string),
handleFailedDCPeer func(signalID, role, peerConnectionID *string),
handleCandidate func(signalID, peerConnectionID *string, candidate *webrtc.ICECandidate),
) (*Peer, error)
}
Connections linter
type LocalTracks ¶
type LocalTracks struct {
// contains filtered or unexported fields
}
LocalTracks control sending track
type Peer ¶
type Peer struct {
// contains filtered or unexported fields
}
Peer linter
func (*Peer) AddAnswer ¶
func (p *Peer) AddAnswer(answer *webrtc.SessionDescription) error
AddAnswer add client answer and set remote desc
func (*Peer) AddAudioRTP ¶
AddAudioRTP linter
func (*Peer) AddAudioSample ¶
AddAudioSample linter
func (*Peer) AddAudioTrack ¶
func (p *Peer) AddAudioTrack(trackConfig *TrackConfig) error
AddAudioTrack linter
func (*Peer) AddDuplicated ¶
AddDuplicated to add and automatic delete after 10s
func (*Peer) AddICECandidate ¶
AddICECandidate to add candidate
func (*Peer) AddOffer ¶
func (p *Peer) AddOffer(offer *webrtc.SessionDescription) error
AddOffer add client offer and return answer
func (*Peer) AddVideoRTP ¶
AddVideoRTP linter
func (*Peer) AddVideoSample ¶
AddVideoSample linter
func (*Peer) AddVideoTrack ¶
func (p *Peer) AddVideoTrack(trackConfig *TrackConfig) error
AddVideoTrack linter
func (*Peer) GetAudioRTPTrack ¶
func (p *Peer) GetAudioRTPTrack(trackID *string) *webrtc.TrackLocalStaticRTP
GetAudioRTPTrack linter
func (*Peer) GetDuplicated ¶
GetDuplicated check duplicated
func (*Peer) GetLocalDescription ¶
func (p *Peer) GetLocalDescription() (*webrtc.SessionDescription, error)
GetLocalDescription get current peer local description to send to client
func (*Peer) GetPeerConnectionID ¶
GetPeerConnectionID linter
func (*Peer) GetVideoRTPTrack ¶
func (p *Peer) GetVideoRTPTrack(trackID *string) *webrtc.TrackLocalStaticRTP
GetVideoRTPTrack linter
func (*Peer) HandleVideoTrack ¶
func (p *Peer) HandleVideoTrack(remoteTrack *webrtc.TrackRemote)
HandleVideoTrack handle all video track
func (*Peer) InitDC ¶
func (p *Peer) InitDC( handleOnDatachannel func(pcID *string, d *webrtc.DataChannel), ) (*webrtc.PeerConnection, error)
InitDC linter
func (*Peer) IsConnected ¶
IsConnected check this is init connection or retrieve
func (*Peer) IsFirstInit ¶
IsFirstInit return 1 if is first init, 2 is received data and not
func (*Peer) IsReceivedData ¶
IsReceivedData linter
func (*Peer) RemoveAudioTrack ¶
RemoveAudioTrack remove peering existing track
func (*Peer) RemoveVideoTrack ¶
RemoveVideoTrack remove peering existing track
func (*Peer) ReplaceAudioTrack ¶
ReplaceAudioTrack remove peering existing track
func (*Peer) ReplaceVideoTrack ¶
ReplaceVideoTrack remove peering existing track
func (*Peer) SendPictureLossIndication ¶
func (p *Peer) SendPictureLossIndication()
SendPictureLossIndication linter
func (*Peer) SetCodecPreferences ¶
func (p *Peer) SetCodecPreferences(payLoadType *int, trackConfig *TrackConfig) error
SetCodecPreferences linter
type Peers ¶
type Peers struct {
// contains filtered or unexported fields
}
Peers handle mutilpe peer connection
func (*Peers) AddCandidate ¶
AddCandidate linter
func (*Peers) AddConnection ¶
func (p *Peers) AddConnection( configs *Configs, handleOnTrack func(signalID, peerConnectionID *string, remoteTrack *webrtc.TrackRemote), handleAddPeer func(signalID, role, peerConnectionID *string), handleFailedPeer func(signalID, role, peerConnectionID *string), handleCandidate func(signalID, peerConnectionID *string, candidate *webrtc.ICECandidate), handleOnNegotiationNeeded func(signalID, peerConnectionID, cookieID *string), ) (*Peer, error)
AddConnection add new peer connection
func (*Peers) AddDCConnection ¶
func (p *Peers) AddDCConnection( configs *Configs, handleOnDatachannel func(pcID *string, d *webrtc.DataChannel), handleAddDCPeer func(signalID, role, peerConnectionID *string), handleFailedDCPeer func(signalID, role, peerConnectionID *string), handleCandidate func(signalID, peerConnectionID *string, candidate *webrtc.ICECandidate), ) (*Peer, error)
AddDCConnection linter
func (*Peers) CountAllPeer ¶
CountAllPeer count all existing peer
func (*Peers) GetAllConnection ¶
GetAllConnection return all connection
func (*Peers) GetAllPeerConnectionID ¶
GetAllPeerConnectionID return all streamID
func (*Peers) GetConnection ¶
GetConnection get peer connection
func (*Peers) RemoveConnection ¶
RemoveConnection remove existing connection
type TrackConfig ¶
type TrackConfig struct {
// contains filtered or unexported fields
}
TrackConfig setting init track config
func NewTrackConfig ¶
func NewTrackConfig( trackID *string, codec string, role *string, kind *string, ) *TrackConfig
NewTrackConfig linter
func (*TrackConfig) GetRTPCodecCapability ¶
func (t *TrackConfig) GetRTPCodecCapability(payloadType *int) []webrtc.RTPCodecParameters
GetRTPCodecCapability for add setCodecPreferences