plugins

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2020 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TypeJitterBuffer = "JitterBuffer"
)

Variables

View Source
var (
	// ErrCodecNotSupported is returned when a rtp packed it pushed with an unsupported codec
	ErrCodecNotSupported = errors.New("codec not supported")
)

Functions

func CheckPlugins added in v0.2.0

func CheckPlugins(config Config) error

func IsVP8KeyFrame

func IsVP8KeyFrame(pkt *rtp.Packet) bool

IsVP8KeyFrame check key frame

Types

type Buffer

type Buffer struct {
	// contains filtered or unexported fields
}

Buffer contains all packets

func NewBuffer

func NewBuffer() *Buffer

NewBuffer constructs a new Buffer

func (*Buffer) FindPacket added in v0.2.0

func (b *Buffer) FindPacket(sn uint16) *rtp.Packet

FindPacket find packet from buffer

func (*Buffer) GetLostRateBandwidth added in v0.2.0

func (b *Buffer) GetLostRateBandwidth(cycle uint64) (float64, uint64)

GetLostRateBandwidth calc lostRate and bandwidth by cycle

func (*Buffer) GetNackPair added in v0.2.0

func (b *Buffer) GetNackPair(buffer [65536]*rtp.Packet, begin, end uint16) (rtcp.NackPair, int)

GetNackPair calc nackpair

func (*Buffer) GetPacket

func (b *Buffer) GetPacket(sn uint16) *rtp.Packet

GetPacket get packet by sequence number

func (*Buffer) GetPayloadType

func (b *Buffer) GetPayloadType() uint8

GetPayloadType get payloadtype

func (*Buffer) GetRTCPChan

func (b *Buffer) GetRTCPChan() chan rtcp.Packet

GetRTCPChan return rtcp channel

func (*Buffer) GetSSRC

func (b *Buffer) GetSSRC() uint32

GetSSRC get ssrc

func (*Buffer) GetStat

func (b *Buffer) GetStat() string

GetStat get status from buffer

func (*Buffer) InitBufferTime added in v0.2.0

func (b *Buffer) InitBufferTime(time int)

InitBufferTime init buffer time by ms

func (*Buffer) Push

func (b *Buffer) Push(p *rtp.Packet)

Push adds a RTP Packet, out of order, new packet may be arrived later

func (*Buffer) SetSSRCPT

func (b *Buffer) SetSSRCPT(ssrc uint32, pt uint8)

SetSSRCPT set ssrc payloadtype

func (*Buffer) Stop

func (b *Buffer) Stop()

Stop stop buffer

type Config added in v0.2.0

type Config struct {
	On           bool
	JitterBuffer JitterBufferConfig
}

type JitterBuffer

type JitterBuffer struct {
	Pub transport.Transport
	// contains filtered or unexported fields
}

JitterBuffer core buffer module

func NewJitterBuffer

func NewJitterBuffer(config JitterBufferConfig) *JitterBuffer

NewJitterBuffer return new JitterBuffer

func (*JitterBuffer) AddBuffer

func (j *JitterBuffer) AddBuffer(ssrc uint32) *Buffer

AddBuffer add a buffer by ssrc

func (*JitterBuffer) AttachPre added in v0.2.0

func (j *JitterBuffer) AttachPre(plugin Plugin)

AttachPre ..

func (*JitterBuffer) AttachPub added in v0.2.0

func (j *JitterBuffer) AttachPub(t transport.Transport)

func (*JitterBuffer) GetBuffer

func (j *JitterBuffer) GetBuffer(ssrc uint32) *Buffer

GetBuffer get a buffer by ssrc

func (*JitterBuffer) GetBuffers

func (j *JitterBuffer) GetBuffers() map[uint32]*Buffer

GetBuffers get all buffers

func (*JitterBuffer) GetPacket

func (j *JitterBuffer) GetPacket(ssrc uint32, sn uint16) *rtp.Packet

GetPacket get packet from buffer

func (*JitterBuffer) ID

func (j *JitterBuffer) ID() string

ID return id

func (*JitterBuffer) Init

func (j *JitterBuffer) Init(config JitterBufferConfig)

Init jitterbuffer config

func (*JitterBuffer) ReadRTP added in v0.2.0

func (j *JitterBuffer) ReadRTP() <-chan *rtp.Packet

ReadRTP return the last packet

func (*JitterBuffer) Stat

func (j *JitterBuffer) Stat() string

Stat get stat from buffers

func (*JitterBuffer) Stop

func (j *JitterBuffer) Stop()

Stop stop all buffer

func (*JitterBuffer) WriteRTP added in v0.2.0

func (j *JitterBuffer) WriteRTP(pkt *rtp.Packet) error

WriteRTP push rtp packet which from pub

type JitterBufferConfig added in v0.2.0

type JitterBufferConfig struct {
	ID            string
	On            bool
	REMBCycle     int
	PLICycle      int
	MaxBandwidth  int
	MaxBufferTime int
}

JitterBufferConfig .

type Plugin added in v0.2.0

type Plugin interface {
	ID() string
	WriteRTP(*rtp.Packet) error
	ReadRTP() <-chan *rtp.Packet
	AttachPre(Plugin)
	Stop()
}

Plugin some interfaces

type PluginChain added in v0.2.0

type PluginChain struct {
	// contains filtered or unexported fields
}

func NewPluginChain added in v0.2.0

func NewPluginChain() *PluginChain

func (*PluginChain) AddPlugin added in v0.2.0

func (p *PluginChain) AddPlugin(id string, i Plugin)

AddPlugin add a plugin

func (*PluginChain) AttachPub added in v0.2.0

func (p *PluginChain) AttachPub(pub transport.Transport)

func (*PluginChain) Close added in v0.2.0

func (p *PluginChain) Close()

func (*PluginChain) DelPlugin added in v0.2.0

func (p *PluginChain) DelPlugin(id string)

DelPlugin del plugin

func (*PluginChain) DelPluginChain added in v0.2.0

func (p *PluginChain) DelPluginChain()

DelPluginChain del all plugins

func (*PluginChain) GetPlugin added in v0.2.0

func (p *PluginChain) GetPlugin(id string) Plugin

GetPlugin get plugin by id

func (*PluginChain) GetPluginsTotal added in v0.2.0

func (p *PluginChain) GetPluginsTotal() int

GetPluginsTotal get plugin total count

func (*PluginChain) Init added in v0.2.0

func (p *PluginChain) Init(config Config) error

func (*PluginChain) On added in v0.2.0

func (p *PluginChain) On() bool

func (*PluginChain) ReadRTP added in v0.2.0

func (p *PluginChain) ReadRTP() *rtp.Packet

type WebmSaver added in v0.2.0

type WebmSaver struct {
	// contains filtered or unexported fields
}

func NewWebmSaver added in v0.2.0

func NewWebmSaver(id string) *WebmSaver

func (*WebmSaver) Close added in v0.2.0

func (s *WebmSaver) Close()

func (*WebmSaver) ID added in v0.2.0

func (s *WebmSaver) ID() string

func (*WebmSaver) Init added in v0.2.0

func (s *WebmSaver) Init(...interface{})

func (*WebmSaver) InitWriter added in v0.2.0

func (s *WebmSaver) InitWriter(width, height int)

func (*WebmSaver) PushOpus added in v0.2.0

func (s *WebmSaver) PushOpus(rtpPacket *rtp.Packet)

func (*WebmSaver) PushRTCP added in v0.2.0

func (s *WebmSaver) PushRTCP(rtcp.Packet) error

func (*WebmSaver) PushRTP added in v0.2.0

func (s *WebmSaver) PushRTP(pkt *rtp.Packet) error

func (*WebmSaver) PushVP8 added in v0.2.0

func (s *WebmSaver) PushVP8(rtpPacket *rtp.Packet)

func (*WebmSaver) Stop added in v0.2.0

func (s *WebmSaver) Stop()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL