Documentation
¶
Index ¶
- Constants
- func EnableDebug(flag bool)
- func EnableLog(flag bool)
- func EnableUltraDebug(flag bool)
- func Max(x, y int) int
- func Min(x, y int) int
- func NextSSRC() uint
- func SetPortRange(minPort, maxPort int) bool
- type ActiveEncoding
- type ActiveLayersInfo
- type ActiveSpeakerDetector
- type BitrateTraversal
- type EmulatedTransport
- func (e *EmulatedTransport) CreateIncomingStream(streamInfo *sdp.StreamInfo) *IncomingStream
- func (e *EmulatedTransport) Pause() bool
- func (e *EmulatedTransport) Play(time uint64) bool
- func (e *EmulatedTransport) Resume() bool
- func (e *EmulatedTransport) Seek(time uint64) bool
- func (e *EmulatedTransport) SetRemoteProperties(audio *sdp.MediaInfo, video *sdp.MediaInfo)
- func (e *EmulatedTransport) Stop()
- type Encoding
- type Endpoint
- func (e *Endpoint) CreateOffer(video *sdp.Capability, audio *sdp.Capability) *sdp.SDPInfo
- func (e *Endpoint) CreateSDPManager(sdpSemantics string, capabilities map[string]*sdp.Capability) SDPManager
- func (e *Endpoint) CreateTransport(remoteSdp *sdp.SDPInfo, localSdp *sdp.SDPInfo, options ...bool) *Transport
- func (e *Endpoint) GetDTLSFingerprint() string
- func (e *Endpoint) GetLocalCandidates() []*sdp.CandidateInfo
- func (e *Endpoint) Stop()
- type IncomingAllStats
- type IncomingStats
- type IncomingStream
- func (i *IncomingStream) AddTrack(track *IncomingStreamTrack) error
- func (i *IncomingStream) CreateTrack(track *sdp.TrackInfo) *IncomingStreamTrack
- func (i *IncomingStream) GetAudioTracks() []*IncomingStreamTrack
- func (i *IncomingStream) GetID() string
- func (i *IncomingStream) GetStats() map[string]map[string]*IncomingAllStats
- func (i *IncomingStream) GetStreamInfo() *sdp.StreamInfo
- func (i *IncomingStream) GetTrack(trackID string) *IncomingStreamTrack
- func (i *IncomingStream) GetTracks() []*IncomingStreamTrack
- func (i *IncomingStream) GetVideoTracks() []*IncomingStreamTrack
- func (i *IncomingStream) Stop()
- type IncomingStreamTrack
- func (i *IncomingStreamTrack) Attached()
- func (i *IncomingStreamTrack) Detached()
- func (i *IncomingStreamTrack) GetActiveLayers() *ActiveLayersInfo
- func (i *IncomingStreamTrack) GetEncodings() map[string]*Encoding
- func (i *IncomingStreamTrack) GetFirstEncoding() *Encoding
- func (i *IncomingStreamTrack) GetID() string
- func (i *IncomingStreamTrack) GetMedia() string
- func (i *IncomingStreamTrack) GetSSRCs() []map[string]native.RTPIncomingSource
- func (i *IncomingStreamTrack) GetStats() map[string]*IncomingAllStats
- func (i *IncomingStreamTrack) GetTrackInfo() *sdp.TrackInfo
- func (i *IncomingStreamTrack) Refresh()
- func (i *IncomingStreamTrack) Stop()
- type Layer
- type MediaFrameCallback
- type MediaStreamDuplicater
- type OutgoingStats
- type OutgoingStatss
- type OutgoingStream
- func (o *OutgoingStream) AddTrack(track *OutgoingStreamTrack)
- func (o *OutgoingStream) AttachTo(incomingStream *IncomingStream) []*Transponder
- func (o *OutgoingStream) CreateTrack(track *sdp.TrackInfo) *OutgoingStreamTrack
- func (o *OutgoingStream) Detach()
- func (o *OutgoingStream) GetAudioTracks() []*OutgoingStreamTrack
- func (o *OutgoingStream) GetID() string
- func (o *OutgoingStream) GetStats() map[string]*OutgoingStatss
- func (o *OutgoingStream) GetStreamInfo() *sdp.StreamInfo
- func (o *OutgoingStream) GetTrack(trackID string) *OutgoingStreamTrack
- func (o *OutgoingStream) GetTracks() []*OutgoingStreamTrack
- func (o *OutgoingStream) GetVideoTracks() []*OutgoingStreamTrack
- func (o *OutgoingStream) IsMuted() bool
- func (o *OutgoingStream) Mute(muting bool)
- func (o *OutgoingStream) Stop()
- type OutgoingStreamTrack
- func (o *OutgoingStreamTrack) AttachTo(incomingTrack *IncomingStreamTrack) *Transponder
- func (o *OutgoingStreamTrack) Detach()
- func (o *OutgoingStreamTrack) GetID() string
- func (o *OutgoingStreamTrack) GetMedia() string
- func (o *OutgoingStreamTrack) GetSSRCs() map[string]native.RTPOutgoingSource
- func (o *OutgoingStreamTrack) GetStats() *OutgoingStatss
- func (o *OutgoingStreamTrack) GetTrackInfo() *sdp.TrackInfo
- func (o *OutgoingStreamTrack) GetTransponder() *Transponder
- func (o *OutgoingStreamTrack) IsMuted() bool
- func (o *OutgoingStreamTrack) Mute(muting bool)
- func (o *OutgoingStreamTrack) Stop()
- type Player
- type RawRTPStreamer
- type RawRTPStreamerSession
- type Recorder
- type RecorderTrack
- type Refresher
- type RenegotiationCallback
- type SDPManager
- type SDPManagerPlanb
- type SDPManagerUnified
- type Streamer
- type StreamerSession
- type Transponder
- func (t *Transponder) GetAvailableLayers() *ActiveLayersInfo
- func (t *Transponder) GetIncomingTrack() *IncomingStreamTrack
- func (t *Transponder) GetSelectedEncoding() string
- func (t *Transponder) GetSelectedSpatialLayerId() int
- func (t *Transponder) GetSelectedTemporalLayerId() int
- func (t *Transponder) IsMuted() bool
- func (t *Transponder) Mute(muting bool)
- func (t *Transponder) SelectEncoding(encodingId string)
- func (t *Transponder) SelectLayer(spatialLayerId, temporalLayerId int)
- func (t *Transponder) SetIncomingTrack(incomingTrack *IncomingStreamTrack) error
- func (t *Transponder) SetMaximumLayers(maxSpatialLayerId, maxTemporalLayerId int)
- func (t *Transponder) SetTargetBitrate(bitrate uint, traversal BitrateTraversal, strict bool) uint
- func (t *Transponder) Stop()
- type Transport
- func (t *Transport) AddRemoteCandidate(candidate *sdp.CandidateInfo)
- func (t *Transport) CreateIncomingStream(streamInfo *sdp.StreamInfo) *IncomingStream
- func (t *Transport) CreateIncomingStreamTrack(media string, trackId string, ssrcs map[string]uint) *IncomingStreamTrack
- func (t *Transport) CreateOutgoingStream(streamID string, audio bool, video bool) *OutgoingStream
- func (t *Transport) CreateOutgoingStream2(streamInfo *sdp.StreamInfo) *OutgoingStream
- func (t *Transport) CreateOutgoingStreamTrack(media string, trackId string, ssrcs map[string]uint) *OutgoingStreamTrack
- func (t *Transport) CreateOutgoingStreamWithID(streamID string, audio bool, video bool) *OutgoingStream
- func (t *Transport) Dump(filename string, incoming bool, outgoing bool, rtcp bool) bool
- func (t *Transport) GetIncomingStream(streamId string) *IncomingStream
- func (t *Transport) GetIncomingStreams() []*IncomingStream
- func (t *Transport) GetLocalCandidates() []*sdp.CandidateInfo
- func (t *Transport) GetLocalDTLSInfo() *sdp.DTLSInfo
- func (t *Transport) GetLocalICEInfo() *sdp.ICEInfo
- func (t *Transport) GetOutgoingStream(streamId string) *OutgoingStream
- func (t *Transport) GetOutgoingStreams() []*OutgoingStream
- func (t *Transport) GetRemoteCandidates() []*sdp.CandidateInfo
- func (t *Transport) SetBandwidthProbing(probe bool)
- func (t *Transport) SetLocalProperties(audio *sdp.MediaInfo, video *sdp.MediaInfo)
- func (t *Transport) SetMaxProbingBitrate(bitrate uint)
- func (t *Transport) SetRemoteProperties(audio *sdp.MediaInfo, video *sdp.MediaInfo)
- func (t *Transport) Stop()
Constants ¶
const MaxLayerId = 0xFF
Variables ¶
This section is empty.
Functions ¶
func EnableDebug ¶
func EnableDebug(flag bool)
func EnableUltraDebug ¶
func EnableUltraDebug(flag bool)
func SetPortRange ¶
Types ¶
type ActiveEncoding ¶
ActiveEncoding info
type ActiveLayersInfo ¶
type ActiveLayersInfo struct {
Active []*ActiveEncoding
Inactive []*ActiveEncoding
Layers []*Layer
}
ActiveLayersInfo info
type ActiveSpeakerDetector ¶
type ActiveSpeakerDetector struct {
// contains filtered or unexported fields
}
func NewActiveSpeakerDetector ¶
func NewActiveSpeakerDetector() *ActiveSpeakerDetector
func (*ActiveSpeakerDetector) AddSpeaker ¶
func (a *ActiveSpeakerDetector) AddSpeaker(track *IncomingStreamTrack)
func (*ActiveSpeakerDetector) RemoveSpeaker ¶
func (a *ActiveSpeakerDetector) RemoveSpeaker(track *IncomingStreamTrack)
func (*ActiveSpeakerDetector) SetMinChangePeriod ¶
func (a *ActiveSpeakerDetector) SetMinChangePeriod(minChangePeriod uint)
func (*ActiveSpeakerDetector) Stop ¶
func (a *ActiveSpeakerDetector) Stop()
type BitrateTraversal ¶
type BitrateTraversal string
const ( TraversalDefault BitrateTraversal = "default" TraversalSpatialTemporal BitrateTraversal = "spatial-temporal" TraversalTemporalSpatial BitrateTraversal = "temporal-spatial" TraversalZigZagSpatialTemporal BitrateTraversal = "zig-zag-spatial-temporal" TraversalZigZagTemporalSpatial BitrateTraversal = "zig-zag-temporal-spatial" )
type EmulatedTransport ¶ added in v0.1.3
func NewEmulatedTransport ¶ added in v0.1.3
func NewEmulatedTransport(pcap string) *EmulatedTransport
func (*EmulatedTransport) CreateIncomingStream ¶ added in v0.1.3
func (e *EmulatedTransport) CreateIncomingStream(streamInfo *sdp.StreamInfo) *IncomingStream
func (*EmulatedTransport) Pause ¶ added in v0.1.3
func (e *EmulatedTransport) Pause() bool
func (*EmulatedTransport) Play ¶ added in v0.1.3
func (e *EmulatedTransport) Play(time uint64) bool
func (*EmulatedTransport) Resume ¶ added in v0.1.3
func (e *EmulatedTransport) Resume() bool
func (*EmulatedTransport) Seek ¶ added in v0.1.3
func (e *EmulatedTransport) Seek(time uint64) bool
func (*EmulatedTransport) SetRemoteProperties ¶ added in v0.1.3
func (e *EmulatedTransport) SetRemoteProperties(audio *sdp.MediaInfo, video *sdp.MediaInfo)
func (*EmulatedTransport) Stop ¶ added in v0.1.3
func (e *EmulatedTransport) Stop()
type Encoding ¶
type Encoding struct {
// contains filtered or unexported fields
}
Encoding info
func (*Encoding) GetDepacketizer ¶
func (e *Encoding) GetDepacketizer() native.StreamTrackDepacketizer
GetDepacketizer get native StreamTrackDepacketizer
func (*Encoding) GetSource ¶
func (e *Encoding) GetSource() native.RTPIncomingSourceGroup
GetSource get native RTPIncomingSourceGroup
type Endpoint ¶
Endpoint is an endpoint represent an UDP server socket. The endpoint will process STUN requests in order to be able to associate the remote ip:port with the registered transport and forward any further data comming from that transport. Being a server it is ICE-lite.
func NewEndpoint ¶
NewEndpoint create a new endpoint with given ip
func NewEndpointWithPort ¶
NewEndpointWithPort create a new endpint with given ip and port
func (*Endpoint) CreateOffer ¶
func (e *Endpoint) CreateOffer(video *sdp.Capability, audio *sdp.Capability) *sdp.SDPInfo
CreateOffer create offer based on audio and video capability It generates a random ICE username and password and gets endpoint fingerprint
func (*Endpoint) CreateSDPManager ¶
func (e *Endpoint) CreateSDPManager(sdpSemantics string, capabilities map[string]*sdp.Capability) SDPManager
CreateSDPManager Create new SDP manager, this object will manage the SDP O/A for you and produce a suitable trasnport.
func (*Endpoint) CreateTransport ¶
func (e *Endpoint) CreateTransport(remoteSdp *sdp.SDPInfo, localSdp *sdp.SDPInfo, options ...bool) *Transport
CreateTransport create a new transport object and register it with the remote ICE username and password disableSTUNKeepAlive - Disable ICE/STUN keep alives, required for server to server transports, set this to false if you do not how to use it
func (*Endpoint) GetDTLSFingerprint ¶
GetDTLSFingerprint Get local DTLS fingerprint for this endpoint. It will be shared by all the transport associated to this endpoint
func (*Endpoint) GetLocalCandidates ¶
func (e *Endpoint) GetLocalCandidates() []*sdp.CandidateInfo
GetLocalCandidates Get local ICE candidates for this endpoint. It will be shared by all the transport associated to this endpoint.
type IncomingAllStats ¶
type IncomingAllStats struct {
Rtt uint
MinWaitTime uint
MaxWaitTime uint
AvgWaitTime float64
Media *IncomingStats
Rtx *IncomingStats
Fec *IncomingStats
Bitrate uint
Total uint
Remb uint
SimulcastIdx int
// contains filtered or unexported fields
}
IncomingAllStats info
type IncomingStats ¶
type IncomingStats struct {
LostPackets uint
DropPackets uint
NumPackets uint
NumRTCPPackets uint
TotalBytes uint
TotalRTCPBytes uint
TotalPLIs uint
TotalNACKs uint
Bitrate uint
Layers []*Layer
}
IncomingStats info
type IncomingStream ¶
IncomingStream The incoming streams represent the recived media stream from a remote peer.
func NewIncomingStreamWithEmulatedTransport ¶ added in v0.1.3
func NewIncomingStreamWithEmulatedTransport(transport native.PCAPTransportEmulator, receiver native.RTPReceiverFacade, info *sdp.StreamInfo) *IncomingStream
NewIncomingStreamWithEmulatedTransport Create new incoming stream through PCAPTransportEmulator
func (*IncomingStream) AddTrack ¶
func (i *IncomingStream) AddTrack(track *IncomingStreamTrack) error
AddTrack Adds an incoming stream track created using the Transpocnder.CreateIncomingStreamTrack to this stream
func (*IncomingStream) CreateTrack ¶
func (i *IncomingStream) CreateTrack(track *sdp.TrackInfo) *IncomingStreamTrack
CreateTrack Create new track from a TrackInfo object and add it to this stream
func (*IncomingStream) GetAudioTracks ¶
func (i *IncomingStream) GetAudioTracks() []*IncomingStreamTrack
GetAudioTracks get all audio tracks
func (*IncomingStream) GetStats ¶
func (i *IncomingStream) GetStats() map[string]map[string]*IncomingAllStats
GetStats Get statistics for all tracks in the stream
func (*IncomingStream) GetStreamInfo ¶
func (i *IncomingStream) GetStreamInfo() *sdp.StreamInfo
GetStreamInfo get stream info
func (*IncomingStream) GetTrack ¶
func (i *IncomingStream) GetTrack(trackID string) *IncomingStreamTrack
GetTrack Get track by id
func (*IncomingStream) GetTracks ¶
func (i *IncomingStream) GetTracks() []*IncomingStreamTrack
GetTracks Get all tracks in this stream
func (*IncomingStream) GetVideoTracks ¶
func (i *IncomingStream) GetVideoTracks() []*IncomingStreamTrack
GetVideoTracks get all video tracks
func (*IncomingStream) Stop ¶
func (i *IncomingStream) Stop()
Stop Removes the media strem from the transport and also detaches from any attached incoming stream
type IncomingStreamTrack ¶
IncomingStreamTrack Audio or Video track of a remote media stream
func (*IncomingStreamTrack) Attached ¶
func (i *IncomingStreamTrack) Attached()
Attached Signal that this track has been attached.
func (*IncomingStreamTrack) Detached ¶
func (i *IncomingStreamTrack) Detached()
Detached Signal that this track has been detached.
func (*IncomingStreamTrack) GetActiveLayers ¶
func (i *IncomingStreamTrack) GetActiveLayers() *ActiveLayersInfo
GetActiveLayers Get active encodings and layers ordered by bitrate
func (*IncomingStreamTrack) GetEncodings ¶
func (i *IncomingStreamTrack) GetEncodings() map[string]*Encoding
GetEncodings get all encodings
func (*IncomingStreamTrack) GetFirstEncoding ¶
func (i *IncomingStreamTrack) GetFirstEncoding() *Encoding
GetFirstEncoding get the first Encoding
func (*IncomingStreamTrack) GetMedia ¶
func (i *IncomingStreamTrack) GetMedia() string
GetMedia get track media type "video" or "audio"
func (*IncomingStreamTrack) GetSSRCs ¶
func (i *IncomingStreamTrack) GetSSRCs() []map[string]native.RTPIncomingSource
GetSSRCs get all RTPIncomingSource include "media" "rtx" "fec"
func (*IncomingStreamTrack) GetStats ¶
func (i *IncomingStreamTrack) GetStats() map[string]*IncomingAllStats
GetStats Get stats for all encodings
func (*IncomingStreamTrack) GetTrackInfo ¶
func (i *IncomingStreamTrack) GetTrackInfo() *sdp.TrackInfo
GetTrackInfo get track info
func (*IncomingStreamTrack) Refresh ¶
func (i *IncomingStreamTrack) Refresh()
Refresh Request an intra refres
func (*IncomingStreamTrack) Stop ¶
func (i *IncomingStreamTrack) Stop()
Stop Removes the track from the incoming stream and also detaches any attached outgoing track or recorder
type Layer ¶
type Layer struct {
// EncodingId str
EncodingId string
// SpatialLayerId int
SpatialLayerId int
// TemporalLayerId int
TemporalLayerId int
// SimulcastIdx int
SimulcastIdx int
// TotalBytes uint
TotalBytes uint
// NumPackets uint
NumPackets uint
// Bitrate uint
Bitrate uint
}
Layer info
type MediaFrameCallback ¶
MediaFrameCallback callback function
type MediaStreamDuplicater ¶
type MediaStreamDuplicater struct {
// contains filtered or unexported fields
}
MediaStreamDuplicater we can make a copy of the incoming stream and callback the mediaframe data
func NewMediaStreamDuplicater ¶
func NewMediaStreamDuplicater(track *IncomingStreamTrack, callback MediaFrameCallback) *MediaStreamDuplicater
NewMediaStreamDuplicater duplicate this IncomingStreamTrack and callback the mediaframe
type OutgoingStats ¶
type OutgoingStats struct {
NumPackets uint
NumRTCPPackets uint
TotalBytes uint
TotalRTCPBytes uint
Bitrate uint
}
OutgoingStats stats info
type OutgoingStatss ¶
type OutgoingStatss struct {
Media *OutgoingStats
Rtx *OutgoingStats
Fec *OutgoingStats
// contains filtered or unexported fields
}
OutgoingStatss stats info
type OutgoingStream ¶
OutgoingStream represent the media stream sent to a remote peer
func NewOutgoingStream ¶
func NewOutgoingStream(transport native.DTLSICETransport, info *sdp.StreamInfo) *OutgoingStream
NewOutgoingStream create outgoing stream
func (*OutgoingStream) AddTrack ¶
func (o *OutgoingStream) AddTrack(track *OutgoingStreamTrack)
AddTrack add one outgoing track
func (*OutgoingStream) AttachTo ¶
func (o *OutgoingStream) AttachTo(incomingStream *IncomingStream) []*Transponder
AttachTo Listen media from the incoming stream and send it to the remote peer of the associated transport
func (*OutgoingStream) CreateTrack ¶
func (o *OutgoingStream) CreateTrack(track *sdp.TrackInfo) *OutgoingStreamTrack
CreateTrack Create new track from a TrackInfo object and add it to this stream
func (*OutgoingStream) GetAudioTracks ¶
func (o *OutgoingStream) GetAudioTracks() []*OutgoingStreamTrack
GetAudioTracks Get an array of the media stream audio tracks
func (*OutgoingStream) GetStats ¶
func (o *OutgoingStream) GetStats() map[string]*OutgoingStatss
GetStats Get statistics for all tracks in the stream
func (*OutgoingStream) GetStreamInfo ¶
func (o *OutgoingStream) GetStreamInfo() *sdp.StreamInfo
GetStreamInfo get the stream info
func (*OutgoingStream) GetTrack ¶
func (o *OutgoingStream) GetTrack(trackID string) *OutgoingStreamTrack
GetTrack get one track
func (*OutgoingStream) GetTracks ¶
func (o *OutgoingStream) GetTracks() []*OutgoingStreamTrack
GetTracks get all the tracks
func (*OutgoingStream) GetVideoTracks ¶
func (o *OutgoingStream) GetVideoTracks() []*OutgoingStreamTrack
GetVideoTracks Get an array of the media stream video tracks
func (*OutgoingStream) IsMuted ¶
func (o *OutgoingStream) IsMuted() bool
IsMuted Check if the stream is muted or not
func (*OutgoingStream) Mute ¶
func (o *OutgoingStream) Mute(muting bool)
Mute Mute/Unmute this stream and all the tracks in it
type OutgoingStreamTrack ¶
type OutgoingStreamTrack struct {
// todo outercallback
*emission.Emitter
// contains filtered or unexported fields
}
OutgoingStreamTrack Audio or Video track of a media stream sent to a remote peer
func (*OutgoingStreamTrack) AttachTo ¶
func (o *OutgoingStreamTrack) AttachTo(incomingTrack *IncomingStreamTrack) *Transponder
AttachTo Listen media from the incoming stream track and send it to the remote peer of the associated transport
func (*OutgoingStreamTrack) Detach ¶
func (o *OutgoingStreamTrack) Detach()
Detach Stop forwarding any previous attached track
func (*OutgoingStreamTrack) GetMedia ¶
func (o *OutgoingStreamTrack) GetMedia() string
GetMedia get media type
func (*OutgoingStreamTrack) GetSSRCs ¶
func (o *OutgoingStreamTrack) GetSSRCs() map[string]native.RTPOutgoingSource
GetSSRCs get ssrcs map
func (*OutgoingStreamTrack) GetStats ¶
func (o *OutgoingStreamTrack) GetStats() *OutgoingStatss
GetStats get stats info
func (*OutgoingStreamTrack) GetTrackInfo ¶
func (o *OutgoingStreamTrack) GetTrackInfo() *sdp.TrackInfo
GetTrackInfo get track info
func (*OutgoingStreamTrack) GetTransponder ¶
func (o *OutgoingStreamTrack) GetTransponder() *Transponder
GetTransponder Get attached transpoder for this track
func (*OutgoingStreamTrack) IsMuted ¶
func (o *OutgoingStreamTrack) IsMuted() bool
IsMuted Check if the track is muted or not
func (*OutgoingStreamTrack) Mute ¶
func (o *OutgoingStreamTrack) Mute(muting bool)
Mute Mute/Unmute the track
func (*OutgoingStreamTrack) Stop ¶
func (o *OutgoingStreamTrack) Stop()
Stop Removes the track from the outgoing stream and also detaches from any attached incoming track
type Player ¶
type Player struct {
// contains filtered or unexported fields
}
func (*Player) GetAudioTracks ¶
func (p *Player) GetAudioTracks() []*IncomingStreamTrack
func (*Player) GetTracks ¶
func (p *Player) GetTracks() []*IncomingStreamTrack
func (*Player) GetVideoTracks ¶
func (p *Player) GetVideoTracks() []*IncomingStreamTrack
type RawRTPStreamer ¶
type RawRTPStreamer struct {
// contains filtered or unexported fields
}
func NewRawRTPStreamer ¶
func NewRawRTPStreamer() *RawRTPStreamer
func (*RawRTPStreamer) CreateSession ¶
func (s *RawRTPStreamer) CreateSession(media *sdp.MediaInfo) *RawRTPStreamerSession
func (*RawRTPStreamer) Stop ¶
func (s *RawRTPStreamer) Stop()
type RawRTPStreamerSession ¶
func NewRawRTPStreamerSession ¶
func NewRawRTPStreamerSession(media *sdp.MediaInfo) *RawRTPStreamerSession
func (*RawRTPStreamerSession) GetID ¶
func (s *RawRTPStreamerSession) GetID() string
func (*RawRTPStreamerSession) GetIncomingStreamTrack ¶
func (s *RawRTPStreamerSession) GetIncomingStreamTrack() *IncomingStreamTrack
func (*RawRTPStreamerSession) Push ¶
func (s *RawRTPStreamerSession) Push(rtp []byte)
func (*RawRTPStreamerSession) Stop ¶
func (s *RawRTPStreamerSession) Stop()
type Recorder ¶
type Recorder struct {
// contains filtered or unexported fields
}
func (*Recorder) Record ¶
func (r *Recorder) Record(incoming *IncomingStreamTrack)
func (*Recorder) RecordStream ¶
func (r *Recorder) RecordStream(incoming *IncomingStream)
type RecorderTrack ¶
func NewRecorderTrack ¶
func NewRecorderTrack(id string, track *IncomingStreamTrack, encoding *Encoding) *RecorderTrack
func (*RecorderTrack) GetEncoding ¶
func (r *RecorderTrack) GetEncoding() *Encoding
func (*RecorderTrack) GetID ¶
func (r *RecorderTrack) GetID() string
func (*RecorderTrack) GetTrack ¶
func (r *RecorderTrack) GetTrack() *IncomingStreamTrack
func (*RecorderTrack) Stop ¶
func (r *RecorderTrack) Stop()
type Refresher ¶
func NewRefresher ¶
func (*Refresher) Add ¶
func (r *Refresher) Add(incom *IncomingStreamTrack)
func (*Refresher) AddStream ¶
func (r *Refresher) AddStream(incoming *IncomingStream)
type RenegotiationCallback ¶
type RenegotiationCallback func(transport *Transport)
type SDPManager ¶
type SDPManagerPlanb ¶
type SDPManagerPlanb struct {
OnRenegotiation RenegotiationCallback
// contains filtered or unexported fields
}
func NewSDPManagerPlanb ¶
func NewSDPManagerPlanb(endpoint *Endpoint, capabilities map[string]*sdp.Capability) *SDPManagerPlanb
func (*SDPManagerPlanb) CreateLocalDescription ¶
func (s *SDPManagerPlanb) CreateLocalDescription() (*sdp.SDPInfo, error)
func (*SDPManagerPlanb) GetState ¶
func (s *SDPManagerPlanb) GetState() string
func (*SDPManagerPlanb) GetTransport ¶
func (s *SDPManagerPlanb) GetTransport() *Transport
func (*SDPManagerPlanb) ProcessRemoteDescription ¶
func (s *SDPManagerPlanb) ProcessRemoteDescription(sdpStr string) (*sdp.SDPInfo, error)
type SDPManagerUnified ¶
type SDPManagerUnified struct {
OnRenegotiation RenegotiationCallback
// contains filtered or unexported fields
}
func NewSDPManagerUnified ¶
func NewSDPManagerUnified(endpoint *Endpoint, capabilities map[string]*sdp.Capability) *SDPManagerUnified
func (*SDPManagerUnified) CreateLocalDescription ¶
func (s *SDPManagerUnified) CreateLocalDescription() (*sdp.SDPInfo, error)
func (*SDPManagerUnified) GetState ¶
func (s *SDPManagerUnified) GetState() string
func (*SDPManagerUnified) GetTransport ¶
func (s *SDPManagerUnified) GetTransport() *Transport
func (*SDPManagerUnified) ProcessRemoteDescription ¶
func (s *SDPManagerUnified) ProcessRemoteDescription(sdpStr string) (*sdp.SDPInfo, error)
type Streamer ¶
type Streamer struct {
// contains filtered or unexported fields
}
func NewStreamer ¶
func NewStreamer() *Streamer
func (*Streamer) CreateSession ¶
type StreamerSession ¶
func NewStreamerSession ¶
func (*StreamerSession) GetID ¶
func (s *StreamerSession) GetID() string
func (*StreamerSession) GetIncomingStreamTrack ¶
func (s *StreamerSession) GetIncomingStreamTrack() *IncomingStreamTrack
func (*StreamerSession) GetOutgoingStreamTrack ¶
func (s *StreamerSession) GetOutgoingStreamTrack() *OutgoingStreamTrack
func (*StreamerSession) Stop ¶
func (s *StreamerSession) Stop()
type Transponder ¶
func NewTransponder ¶
func NewTransponder(transponderFacade native.RTPStreamTransponderFacade) *Transponder
func (*Transponder) GetAvailableLayers ¶
func (t *Transponder) GetAvailableLayers() *ActiveLayersInfo
GetAvailableLayers Get available encodings and layers
func (*Transponder) GetIncomingTrack ¶
func (t *Transponder) GetIncomingTrack() *IncomingStreamTrack
func (*Transponder) GetSelectedEncoding ¶
func (t *Transponder) GetSelectedEncoding() string
func (*Transponder) GetSelectedSpatialLayerId ¶
func (t *Transponder) GetSelectedSpatialLayerId() int
func (*Transponder) GetSelectedTemporalLayerId ¶
func (t *Transponder) GetSelectedTemporalLayerId() int
func (*Transponder) IsMuted ¶
func (t *Transponder) IsMuted() bool
func (*Transponder) Mute ¶
func (t *Transponder) Mute(muting bool)
func (*Transponder) SelectEncoding ¶
func (t *Transponder) SelectEncoding(encodingId string)
func (*Transponder) SelectLayer ¶
func (t *Transponder) SelectLayer(spatialLayerId, temporalLayerId int)
SelectLayer Select SVC temporatl and spatial layers. Only available for VP9 media.
func (*Transponder) SetIncomingTrack ¶
func (t *Transponder) SetIncomingTrack(incomingTrack *IncomingStreamTrack) error
func (*Transponder) SetMaximumLayers ¶
func (t *Transponder) SetMaximumLayers(maxSpatialLayerId, maxTemporalLayerId int)
func (*Transponder) SetTargetBitrate ¶
func (t *Transponder) SetTargetBitrate(bitrate uint, traversal BitrateTraversal, strict bool) uint
func (*Transponder) Stop ¶
func (t *Transponder) Stop()
type Transport ¶
Transport represent a connection between a local ICE candidate and a remote set of ICE candidates over a single DTLS session
func NewTransport ¶
func NewTransport(bundle native.RTPBundleTransport, remoteIce *sdp.ICEInfo, remoteDtls *sdp.DTLSInfo, remoteCandidates []*sdp.CandidateInfo, localIce *sdp.ICEInfo, localDtls *sdp.DTLSInfo, localCandidates []*sdp.CandidateInfo, disableSTUNKeepAlive bool) *Transport
NewTransport create a new transport
func (*Transport) AddRemoteCandidate ¶
func (t *Transport) AddRemoteCandidate(candidate *sdp.CandidateInfo)
AddRemoteCandidate register a remote candidate info. Only needed for ice-lite to ice-lite endpoints
func (*Transport) CreateIncomingStream ¶
func (t *Transport) CreateIncomingStream(streamInfo *sdp.StreamInfo) *IncomingStream
CreateIncomingStream Create an incoming stream object from the media stream info objet
func (*Transport) CreateIncomingStreamTrack ¶
func (t *Transport) CreateIncomingStreamTrack(media string, trackId string, ssrcs map[string]uint) *IncomingStreamTrack
CreateIncomingStreamTrack Create new incoming stream in this transport. TODO: Simulcast is still not supported You can use IncomingStream's CreateTrack
func (*Transport) CreateOutgoingStream ¶
func (t *Transport) CreateOutgoingStream(streamID string, audio bool, video bool) *OutgoingStream
CreateOutgoingStream Create new outgoing stream in this transport with given streamId
func (*Transport) CreateOutgoingStream2 ¶
func (t *Transport) CreateOutgoingStream2(streamInfo *sdp.StreamInfo) *OutgoingStream
CreateOutgoingStream2 Create new outgoing stream in this transport using StreamInfo
func (*Transport) CreateOutgoingStreamTrack ¶
func (t *Transport) CreateOutgoingStreamTrack(media string, trackId string, ssrcs map[string]uint) *OutgoingStreamTrack
CreateOutgoingStreamTrack Create new outgoing track in this transport
func (*Transport) CreateOutgoingStreamWithID ¶
func (t *Transport) CreateOutgoingStreamWithID(streamID string, audio bool, video bool) *OutgoingStream
CreateOutgoingStreamWithID alias CreateOutgoingStream
func (*Transport) Dump ¶ added in v0.1.3
Dump dump incoming and outgoint rtp and rtcp packets into a pcap file
func (*Transport) GetIncomingStream ¶
func (t *Transport) GetIncomingStream(streamId string) *IncomingStream
GetIncomingStream get one incoming stream
func (*Transport) GetIncomingStreams ¶
func (t *Transport) GetIncomingStreams() []*IncomingStream
GetIncomingStreams get all incoming streams
func (*Transport) GetLocalCandidates ¶
func (t *Transport) GetLocalCandidates() []*sdp.CandidateInfo
GetLocalCandidates Get local ICE candidates for this transport
func (*Transport) GetLocalDTLSInfo ¶
GetLocalDTLSInfo Get transport local DTLS info
func (*Transport) GetLocalICEInfo ¶
GetLocalICEInfo Get transport local ICE info
func (*Transport) GetOutgoingStream ¶
func (t *Transport) GetOutgoingStream(streamId string) *OutgoingStream
GetOutgoingStream get one outgoing stream
func (*Transport) GetOutgoingStreams ¶
func (t *Transport) GetOutgoingStreams() []*OutgoingStream
GetOutgoingStreams get all outgoing streams
func (*Transport) GetRemoteCandidates ¶
func (t *Transport) GetRemoteCandidates() []*sdp.CandidateInfo
GetRemoteCandidates Get remote ICE candidates for this transport
func (*Transport) SetBandwidthProbing ¶
SetBandwidthProbing Enable/Disable bitrate probing This will send padding only RTX packets to allow bandwidth estimation algortithm to probe bitrate beyonf current sent values. The ammoung of probing bitrate would be limited by the sender bitrate estimation and the limit set on the setMaxProbing Bitrate.
func (*Transport) SetLocalProperties ¶
SetLocalProperties Set local RTP properties
func (*Transport) SetMaxProbingBitrate ¶
SetMaxProbingBitrate Set the maximum bitrate to be used if probing is enabled.
func (*Transport) SetRemoteProperties ¶
SetRemoteProperties Set remote RTP properties
Source Files
¶
- activespeakerdetector.go
- emulatedtransport.go
- endpoint.go
- incomingstream.go
- incomingstreamtrack.go
- layerinfo.go
- mediastreamduplicater.go
- module.go
- outgoingstream.go
- outgoingstreamtrack.go
- player.go
- rawrtpstreamer.go
- rawrtpstreamersession.go
- recorder.go
- recordertrack.go
- refresher.go
- sdpmanager.go
- sdpmanagerplanb.go
- sdpmanagerunified.go
- streamer.go
- streamersession.go
- transponder.go
- transport.go
- util.go