Documentation
¶
Index ¶
- Constants
- Variables
- func CodecByPayloadType(typ byte) media.Codec
- func HandleLoop(r Reader, h HandlerCloser) error
- func ListenUDPPortRange(portMin, portMax int, ip netip.Addr) (*net.UDPConn, error)
- type AudioCodec
- type AudioEncoder
- type Buffer
- type BytesFrame
- type Event
- type Handler
- type HandlerCloser
- type HandlerFunc
- type Header
- type MediaStreamIn
- type MediaStreamOut
- type Mux
- type Packet
- type ReadStream
- type Reader
- type SeqWriter
- type Session
- type Stream
- type WriteStream
- type Writer
Constants ¶
View Source
const ( // DefClockRate is a default clock rate at which RTP timestamps increment. DefClockRate = 8000 // DefFrameDur is a default duration of an audio frame. DefFrameDur = media.DefFrameDur // DefFramesPerSec is a default number of audio frames per second. DefFramesPerSec = media.DefFramesPerSec )
View Source
const (
MTUSize = 1500
)
Variables ¶
View Source
var ErrListenFailed = errors.New("failed to listen on udp port")
Functions ¶
func CodecByPayloadType ¶
func HandleLoop ¶
func HandleLoop(r Reader, h HandlerCloser) error
Types ¶
type AudioCodec ¶
type AudioCodec interface {
media.Codec
EncodeRTP(w *Stream) media.PCM16Writer
DecodeRTP(w media.Writer[media.PCM16Sample], typ byte) Handler
}
func NewAudioCodec ¶
func NewAudioCodec[S BytesFrame]( info media.CodecInfo, decode func(writer media.PCM16Writer) media.WriteCloser[S], encode func(writer media.WriteCloser[S]) media.PCM16Writer, ) AudioCodec
type AudioEncoder ¶
type AudioEncoder[S BytesFrame] interface { AudioCodec Decode(writer media.PCM16Writer) media.WriteCloser[S] Encode(writer media.WriteCloser[S]) media.PCM16Writer }
type Buffer ¶
type Buffer []*Packet
Buffer is a Writer that clones and appends RTP packets into a slice.
type BytesFrame ¶
type HandlerCloser ¶
type HandlerCloser interface {
Handler
Close()
}
func HandleJitter ¶
func HandleJitter(h HandlerCloser) HandlerCloser
func NewNopCloser ¶
func NewNopCloser(h Handler) HandlerCloser
type HandlerFunc ¶
func (HandlerFunc) HandleRTP ¶
func (fnc HandlerFunc) HandleRTP(h *rtp.Header, payload []byte) error
func (HandlerFunc) String ¶
func (fnc HandlerFunc) String() string
type MediaStreamIn ¶
type MediaStreamIn[T BytesFrame] struct { Writer media.Writer[T] }
func NewMediaStreamIn ¶
func NewMediaStreamIn[T BytesFrame](w media.Writer[T]) *MediaStreamIn[T]
func (*MediaStreamIn[T]) HandleRTP ¶
func (s *MediaStreamIn[T]) HandleRTP(_ *rtp.Header, payload []byte) error
func (*MediaStreamIn[T]) String ¶
func (s *MediaStreamIn[T]) String() string
type MediaStreamOut ¶
type MediaStreamOut[T BytesFrame] struct { // contains filtered or unexported fields }
func NewMediaStreamOut ¶
func NewMediaStreamOut[T BytesFrame](s *Stream, sampleRate int) *MediaStreamOut[T]
func (*MediaStreamOut[T]) Close ¶
func (s *MediaStreamOut[T]) Close() error
func (*MediaStreamOut[T]) SampleRate ¶
func (s *MediaStreamOut[T]) SampleRate() int
func (*MediaStreamOut[T]) String ¶
func (s *MediaStreamOut[T]) String() string
func (*MediaStreamOut[T]) WriteSample ¶
func (s *MediaStreamOut[T]) WriteSample(sample T) error
type Mux ¶
type Mux struct {
// contains filtered or unexported fields
}
func NewMux ¶
NewMux creates an RTP handler mux that selects a Handler based on RTP payload type. See Mux.HandleRTP for details.
func (*Mux) HandleRTP ¶
HandleRTP selects a Handler based on payload type. Types can be registered with Register. If no handler is set, a default one will be used.
func (*Mux) SetDefault ¶
SetDefault sets a default RTP handler. Setting nil will drop packets with unregistered type.
type ReadStream ¶
type Reader ¶
type Reader interface {
ReadRTP() (*rtp.Packet, interceptor.Attributes, error)
}
type SeqWriter ¶
type SeqWriter struct {
// contains filtered or unexported fields
}
func NewSeqWriter ¶
NewSeqWriter creates an RTP writer that automatically increments the sequence number.
func (*SeqWriter) NewStream ¶
NewStream creates a new media stream in RTP and tracks timestamps associated with it.
func (*SeqWriter) NewStreamWithDur ¶
func (*SeqWriter) WriteEvent ¶
type Session ¶
type Session interface {
OpenWriteStream() (WriteStream, error)
AcceptStream() (ReadStream, uint32, error)
Close() error
}
type Stream ¶
type Stream struct {
// contains filtered or unexported fields
}
func (*Stream) GetCurrentTimestamp ¶
func (*Stream) ResetTimestamp ¶
func (*Stream) WritePayload ¶
WritePayload writes the payload to RTP and increments the timestamp.
type WriteStream ¶
Click to show internal directories.
Click to hide internal directories.