Documentation ¶
Index ¶
- func SetDatagramEnabled(enabled bool) func(*QUICServer)
- func SetPacketHandler(ph PacketHandler) func(*UDPServer)
- func SetQLOGTracer(tracer logging.Tracer) func(server *QUICServer)
- func SetSessionHandler(sh SessionHandler) func(*QUICServer)
- type CCFeedback
- type ConnectionTracer
- func (c ConnectionTracer) BufferedPacket(packetType logging.PacketType)
- func (c ConnectionTracer) Close()
- func (c ConnectionTracer) ClosedConnection(reason logging.CloseReason)
- func (c ConnectionTracer) Debug(name, msg string)
- func (c ConnectionTracer) DroppedEncryptionLevel(level logging.EncryptionLevel)
- func (c ConnectionTracer) DroppedKey(generation logging.KeyPhase)
- func (c ConnectionTracer) DroppedPacket(packetType logging.PacketType, count logging.ByteCount, ...)
- func (c ConnectionTracer) LossTimerCanceled()
- func (c ConnectionTracer) LossTimerExpired(timerType logging.TimerType, level logging.EncryptionLevel)
- func (c ConnectionTracer) LostPacket(level logging.EncryptionLevel, number logging.PacketNumber, ...)
- func (c *ConnectionTracer) ReceivedPacket(hdr *logging.ExtendedHeader, size logging.ByteCount, frames []logging.Frame)
- func (c ConnectionTracer) ReceivedRetry(header *logging.Header)
- func (c ConnectionTracer) ReceivedTransportParameters(parameters *logging.TransportParameters)
- func (c ConnectionTracer) ReceivedVersionNegotiationPacket(header *logging.Header, numbers []logging.VersionNumber)
- func (c *ConnectionTracer) RestoredTransportParameters(parameters *logging.TransportParameters)
- func (c *ConnectionTracer) SentPacket(hdr *logging.ExtendedHeader, size logging.ByteCount, ack *logging.AckFrame, ...)
- func (c ConnectionTracer) SentTransportParameters(parameters *logging.TransportParameters)
- func (c ConnectionTracer) SetLossTimer(timerType logging.TimerType, level logging.EncryptionLevel, time time.Time)
- func (c ConnectionTracer) StartedConnection(local, remote net.Addr, version logging.VersionNumber, ...)
- func (c ConnectionTracer) UpdatedCongestionState(state logging.CongestionState)
- func (c ConnectionTracer) UpdatedKey(generation logging.KeyPhase, remote bool)
- func (c ConnectionTracer) UpdatedKeyFromTLS(level logging.EncryptionLevel, perspective logging.Perspective)
- func (c *ConnectionTracer) UpdatedMetrics(rttStats *logging.RTTStats, cwnd, bytesInFlight logging.ByteCount, ...)
- func (c ConnectionTracer) UpdatedPTOCount(value uint32)
- type DatagramHandler
- type DatagramSession
- type Feedback
- type FeedbackAlgorithm
- type FeedbackWriter
- type InferReceiveTime
- type InferReceiveTimeFnFactory
- type Packet
- type PacketHandler
- type QUICClient
- type QUICServer
- type QUICTracer
- func (q QUICTracer) DroppedPacket(addr net.Addr, packetType logging.PacketType, count logging.ByteCount, ...)
- func (q *QUICTracer) GetACKChan() chan []*Packet
- func (q QUICTracer) SentPacket(addr net.Addr, header *logging.Header, count logging.ByteCount, ...)
- func (q *QUICTracer) TracerForConnection(p logging.Perspective, odcid logging.ConnectionID) logging.ConnectionTracer
- type Queue
- func (q *Queue) BytesInQueue() int
- func (q *Queue) Clear()
- func (q *Queue) GetDelay(f float64) float64
- func (q *Queue) GetSizeOfLastFrame() int
- func (q *Queue) Len() int
- func (q *Queue) Pop() *RTPQueueItem
- func (q *Queue) Push(p *RTPQueueItem)
- func (q *Queue) SeqNrOfNextRTP() int
- func (q *Queue) SizeOfNextRTP() int
- func (q *Queue) SizeOfQueue() int
- type RTPQueueItem
- type SSRCReport
- type ScreamReadWriter
- type ScreamSendWriter
- func (s *ScreamSendWriter) Close() error
- func (s ScreamSendWriter) RunBitrate(setBitrate func(uint))
- func (s *ScreamSendWriter) RunInferFeedback(ackChan <-chan []*Packet)
- func (s *ScreamSendWriter) RunReceiveFeedback()
- func (s *ScreamSendWriter) SetKeyFrameRequester(requestKeyFrame func())
- func (s *ScreamSendWriter) SetReceiveTimeInferFn(fn InferReceiveTimeFnFactory)
- func (s *ScreamSendWriter) Write(b []byte) (int, error)
- type SessionHandler
- type SrcFactory
- type StreamPerFrameHandler
- type StreamPerFrameSession
- type StreamReport
- type UDPClient
- type UDPPacketHandler
- type UDPPacketSession
- type UDPServer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetDatagramEnabled ¶
func SetDatagramEnabled(enabled bool) func(*QUICServer)
func SetPacketHandler ¶
func SetPacketHandler(ph PacketHandler) func(*UDPServer)
func SetQLOGTracer ¶
func SetQLOGTracer(tracer logging.Tracer) func(server *QUICServer)
func SetSessionHandler ¶
func SetSessionHandler(sh SessionHandler) func(*QUICServer)
Types ¶
type CCFeedback ¶
type CCFeedback struct { Header *rtcp.Header SenderSSRC uint32 Reports []*SSRCReport ReportTimestamp uint32 }
func (*CCFeedback) String ¶
func (c *CCFeedback) String() string
func (*CCFeedback) UnmarshalBinary ¶
func (c *CCFeedback) UnmarshalBinary(data []byte) error
type ConnectionTracer ¶
type ConnectionTracer struct {
// contains filtered or unexported fields
}
func (ConnectionTracer) BufferedPacket ¶
func (c ConnectionTracer) BufferedPacket(packetType logging.PacketType)
func (ConnectionTracer) Close ¶
func (c ConnectionTracer) Close()
func (ConnectionTracer) ClosedConnection ¶
func (c ConnectionTracer) ClosedConnection(reason logging.CloseReason)
func (ConnectionTracer) Debug ¶
func (c ConnectionTracer) Debug(name, msg string)
func (ConnectionTracer) DroppedEncryptionLevel ¶
func (c ConnectionTracer) DroppedEncryptionLevel(level logging.EncryptionLevel)
func (ConnectionTracer) DroppedKey ¶
func (c ConnectionTracer) DroppedKey(generation logging.KeyPhase)
func (ConnectionTracer) DroppedPacket ¶
func (c ConnectionTracer) DroppedPacket(packetType logging.PacketType, count logging.ByteCount, reason logging.PacketDropReason)
func (ConnectionTracer) LossTimerCanceled ¶
func (c ConnectionTracer) LossTimerCanceled()
func (ConnectionTracer) LossTimerExpired ¶
func (c ConnectionTracer) LossTimerExpired(timerType logging.TimerType, level logging.EncryptionLevel)
func (ConnectionTracer) LostPacket ¶
func (c ConnectionTracer) LostPacket(level logging.EncryptionLevel, number logging.PacketNumber, reason logging.PacketLossReason)
func (*ConnectionTracer) ReceivedPacket ¶
func (c *ConnectionTracer) ReceivedPacket(hdr *logging.ExtendedHeader, size logging.ByteCount, frames []logging.Frame)
func (ConnectionTracer) ReceivedRetry ¶
func (c ConnectionTracer) ReceivedRetry(header *logging.Header)
func (ConnectionTracer) ReceivedTransportParameters ¶
func (c ConnectionTracer) ReceivedTransportParameters(parameters *logging.TransportParameters)
func (ConnectionTracer) ReceivedVersionNegotiationPacket ¶
func (c ConnectionTracer) ReceivedVersionNegotiationPacket(header *logging.Header, numbers []logging.VersionNumber)
func (*ConnectionTracer) RestoredTransportParameters ¶
func (c *ConnectionTracer) RestoredTransportParameters(parameters *logging.TransportParameters)
func (*ConnectionTracer) SentPacket ¶
func (c *ConnectionTracer) SentPacket(hdr *logging.ExtendedHeader, size logging.ByteCount, ack *logging.AckFrame, frames []logging.Frame)
func (ConnectionTracer) SentTransportParameters ¶
func (c ConnectionTracer) SentTransportParameters(parameters *logging.TransportParameters)
func (ConnectionTracer) SetLossTimer ¶
func (c ConnectionTracer) SetLossTimer(timerType logging.TimerType, level logging.EncryptionLevel, time time.Time)
func (ConnectionTracer) StartedConnection ¶
func (c ConnectionTracer) StartedConnection(local, remote net.Addr, version logging.VersionNumber, srcConnID, destConnID logging.ConnectionID)
func (ConnectionTracer) UpdatedCongestionState ¶
func (c ConnectionTracer) UpdatedCongestionState(state logging.CongestionState)
func (ConnectionTracer) UpdatedKey ¶
func (c ConnectionTracer) UpdatedKey(generation logging.KeyPhase, remote bool)
func (ConnectionTracer) UpdatedKeyFromTLS ¶
func (c ConnectionTracer) UpdatedKeyFromTLS(level logging.EncryptionLevel, perspective logging.Perspective)
func (*ConnectionTracer) UpdatedMetrics ¶
func (ConnectionTracer) UpdatedPTOCount ¶
func (c ConnectionTracer) UpdatedPTOCount(value uint32)
type DatagramHandler ¶
type DatagramHandler struct {
// contains filtered or unexported fields
}
func NewDatagramHandler ¶
func NewDatagramHandler(src SrcFactory) *DatagramHandler
type DatagramSession ¶
type DatagramSession struct {
// contains filtered or unexported fields
}
func (*DatagramSession) AcceptFeedback ¶
func (d *DatagramSession) AcceptFeedback()
func (*DatagramSession) Close ¶
func (d *DatagramSession) Close() error
type FeedbackAlgorithm ¶
type FeedbackAlgorithm string
const ( Receive FeedbackAlgorithm = "receive" StaticDelay FeedbackAlgorithm = "static-delay" ACKTimestamp FeedbackAlgorithm = "ack-timestamp" RTTArrival FeedbackAlgorithm = "rtt" )
func (FeedbackAlgorithm) String ¶
func (f FeedbackAlgorithm) String() string
type FeedbackWriter ¶
type FeedbackWriter chan []byte
type InferReceiveTime ¶
type InferReceiveTimeFnFactory ¶
type InferReceiveTimeFnFactory interface {
// contains filtered or unexported methods
}
type PacketHandler ¶
type PacketHandler interface {
// contains filtered or unexported methods
}
type QUICClient ¶
type QUICClient struct {
// contains filtered or unexported fields
}
func NewQUICClient ¶
func (*QUICClient) CloseChan ¶
func (c *QUICClient) CloseChan() chan struct{}
func (*QUICClient) Run ¶
func (c *QUICClient) Run() error
func (*QUICClient) RunDgram ¶
func (c *QUICClient) RunDgram() error
func (*QUICClient) RunFeedbackSender ¶
func (c *QUICClient) RunFeedbackSender() (io.Writer, chan<- struct{}, error)
func (*QUICClient) RunStreamPerFrame ¶
func (c *QUICClient) RunStreamPerFrame() error
type QUICServer ¶
type QUICServer struct { SessionHandler // contains filtered or unexported fields }
func NewQUICServer ¶
func NewQUICServer(addr string, tlsc *tls.Config, options ...func(*QUICServer)) (*QUICServer, error)
func (*QUICServer) Run ¶
func (s *QUICServer) Run() error
type QUICTracer ¶
type QUICTracer struct {
// contains filtered or unexported fields
}
func NewTracer ¶
func NewTracer(getLogWriter func(p logging.Perspective, connectionID []byte) io.WriteCloser) *QUICTracer
func (QUICTracer) DroppedPacket ¶
func (q QUICTracer) DroppedPacket(addr net.Addr, packetType logging.PacketType, count logging.ByteCount, reason logging.PacketDropReason)
func (*QUICTracer) GetACKChan ¶
func (q *QUICTracer) GetACKChan() chan []*Packet
func (QUICTracer) SentPacket ¶
func (*QUICTracer) TracerForConnection ¶
func (q *QUICTracer) TracerForConnection(p logging.Perspective, odcid logging.ConnectionID) logging.ConnectionTracer
type Queue ¶
type Queue struct {
// contains filtered or unexported fields
}
func (*Queue) BytesInQueue ¶
func (*Queue) GetSizeOfLastFrame ¶
func (*Queue) Pop ¶
func (q *Queue) Pop() *RTPQueueItem
func (*Queue) Push ¶
func (q *Queue) Push(p *RTPQueueItem)
func (*Queue) SeqNrOfNextRTP ¶
func (*Queue) SizeOfNextRTP ¶
func (*Queue) SizeOfQueue ¶
type RTPQueueItem ¶
type SSRCReport ¶
type SSRCReport struct { StreamSSRC uint32 BeginSeq uint16 NumReports uint16 Reports []*StreamReport }
func (*SSRCReport) String ¶
func (s *SSRCReport) String() string
func (*SSRCReport) UnmarshalBinary ¶
func (s *SSRCReport) UnmarshalBinary(data []byte) error
type ScreamReadWriter ¶
type ScreamReadWriter struct { CloseChan chan struct{} // contains filtered or unexported fields }
func NewScreamReadWriter ¶
func (*ScreamReadWriter) RunFullFeedback ¶
func (s *ScreamReadWriter) RunFullFeedback(fbw io.Writer)
func (*ScreamReadWriter) RunMinimalFeedback ¶
func (s *ScreamReadWriter) RunMinimalFeedback(fbw io.Writer)
type ScreamSendWriter ¶
type ScreamSendWriter struct {
// contains filtered or unexported fields
}
func NewScreamWriter ¶
func NewScreamWriter(ssrc uint, bitrate int, w io.WriteCloser, fb <-chan []byte, screamLogWriter io.Writer) *ScreamSendWriter
func (*ScreamSendWriter) Close ¶
func (s *ScreamSendWriter) Close() error
func (ScreamSendWriter) RunBitrate ¶
func (s ScreamSendWriter) RunBitrate(setBitrate func(uint))
func (*ScreamSendWriter) RunInferFeedback ¶
func (s *ScreamSendWriter) RunInferFeedback(ackChan <-chan []*Packet)
func (*ScreamSendWriter) RunReceiveFeedback ¶
func (s *ScreamSendWriter) RunReceiveFeedback()
func (*ScreamSendWriter) SetKeyFrameRequester ¶
func (s *ScreamSendWriter) SetKeyFrameRequester(requestKeyFrame func())
func (*ScreamSendWriter) SetReceiveTimeInferFn ¶
func (s *ScreamSendWriter) SetReceiveTimeInferFn(fn InferReceiveTimeFnFactory)
type SessionHandler ¶
type SessionHandler interface {
// contains filtered or unexported methods
}
type SrcFactory ¶
type SrcFactory interface {
MakeSrc(writer io.WriteCloser, feedback <-chan []byte) func()
}
type StreamPerFrameHandler ¶
type StreamPerFrameHandler struct {
// contains filtered or unexported fields
}
func NewStreamPerFrameHandler ¶
func NewStreamPerFrameHandler(src SrcFactory) *StreamPerFrameHandler
type StreamPerFrameSession ¶
type StreamPerFrameSession struct {
// contains filtered or unexported fields
}
func (*StreamPerFrameSession) AcceptFeedback ¶
func (m *StreamPerFrameSession) AcceptFeedback() error
func (*StreamPerFrameSession) Close ¶
func (m *StreamPerFrameSession) Close() error
type StreamReport ¶
func (*StreamReport) UnmarshalBinary ¶
func (s *StreamReport) UnmarshalBinary(data []byte) error
type UDPPacketHandler ¶
type UDPPacketHandler struct {
// contains filtered or unexported fields
}
func NewUDPPacketHandler ¶
func NewUDPPacketHandler(src SrcFactory) *UDPPacketHandler
type UDPPacketSession ¶
type UDPPacketSession struct {
// contains filtered or unexported fields
}
func (*UDPPacketSession) AcceptFeedback ¶
func (s *UDPPacketSession) AcceptFeedback(msg []byte)
func (*UDPPacketSession) Close ¶
func (s *UDPPacketSession) Close() error
Click to show internal directories.
Click to hide internal directories.