logic

package
v0.13.0 Latest Latest
Warning

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

Go to latest
Published: Jul 18, 2020 License: MIT Imports: 18 Imported by: 7

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrLogic = errors.New("lal.logic: fxxk")
View Source
var Trans trans

Functions

func Entry added in v0.10.0

func Entry(confFile string)

Types

type Config

type Config struct {
	RTMPConfig      RTMPConfig      `json:"rtmp"`
	HTTPFLVConfig   HTTPFLVConfig   `json:"httpflv"`
	HLSConfig       HLSConfig       `json:"hls"`
	RelayPushConfig RelayPushConfig `json:"relay_push"`
	RelayPullConfig RelayPullConfig `json:"relay_pull"`

	PProfConfig PProfConfig    `json:"pprof"`
	LogConfig   nazalog.Option `json:"log"`
}

func LoadConf

func LoadConf(confFile string) (*Config, error)

type GOP added in v0.8.0

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

func (*GOP) Clear added in v0.10.0

func (g *GOP) Clear()

func (*GOP) Feed added in v0.8.0

func (g *GOP) Feed(msg rtmp.AVMsg, b []byte)

type GOPCache added in v0.7.0

type GOPCache struct {
	Metadata       []byte
	VideoSeqHeader []byte
	AACSeqHeader   []byte
	// contains filtered or unexported fields
}

func NewGOPCache added in v0.10.0

func NewGOPCache(t string, uniqueKey string, gopNum int) *GOPCache

func (*GOPCache) Clear added in v0.8.0

func (gc *GOPCache) Clear()

func (*GOPCache) Feed added in v0.7.0

func (gc *GOPCache) Feed(msg rtmp.AVMsg, lg LazyGet)

func (*GOPCache) GetGOPCount added in v0.10.0

func (gc *GOPCache) GetGOPCount() int

func (*GOPCache) GetGOPDataAt added in v0.10.0

func (gc *GOPCache) GetGOPDataAt(pos int) [][]byte

type Group

type Group struct {
	UniqueKey string
	// contains filtered or unexported fields
}

func NewGroup

func NewGroup(appName string, streamName string) *Group

func (*Group) AddHTTPFLVSubSession added in v0.4.0

func (group *Group) AddHTTPFLVSubSession(session *httpflv.SubSession)

func (*Group) AddRTMPPubSession

func (group *Group) AddRTMPPubSession(session *rtmp.ServerSession) bool

func (*Group) AddRTMPPullSession added in v0.12.0

func (group *Group) AddRTMPPullSession(session *rtmp.PullSession)

func (*Group) AddRTMPPushSession added in v0.12.0

func (group *Group) AddRTMPPushSession(url string, session *rtmp.PushSession)

func (*Group) AddRTMPSubSession

func (group *Group) AddRTMPSubSession(session *rtmp.ServerSession)

func (*Group) DelHTTPFLVSubSession added in v0.4.0

func (group *Group) DelHTTPFLVSubSession(session *httpflv.SubSession)

func (*Group) DelRTMPPubSession

func (group *Group) DelRTMPPubSession(session *rtmp.ServerSession)

func (*Group) DelRTMPPullSession added in v0.12.0

func (group *Group) DelRTMPPullSession(session *rtmp.PullSession)

func (*Group) DelRTMPPushSession added in v0.12.0

func (group *Group) DelRTMPPushSession(url string, session *rtmp.PushSession)

func (*Group) DelRTMPSubSession

func (group *Group) DelRTMPSubSession(session *rtmp.ServerSession)

func (*Group) Dispose

func (group *Group) Dispose()

func (*Group) IsTotalEmpty

func (group *Group) IsTotalEmpty() bool

func (*Group) OnReadRTMPAVMsg added in v0.5.0

func (group *Group) OnReadRTMPAVMsg(msg rtmp.AVMsg)

PubSession or PullSession

func (*Group) RunLoop

func (group *Group) RunLoop()

func (*Group) StringifyStats added in v0.12.0

func (group *Group) StringifyStats() string

func (*Group) Tick added in v0.12.0

func (group *Group) Tick()

TODO chef: 传入时间

type HLSConfig added in v0.10.0

type HLSConfig struct {
	Enable        bool   `json:"enable"`
	SubListenAddr string `json:"sub_listen_addr"`
	hls.MuxerConfig
}

type HTTPFLVConfig added in v0.10.0

type HTTPFLVConfig struct {
	Enable        bool   `json:"enable"`
	SubListenAddr string `json:"sub_listen_addr"`
	GOPNum        int    `json:"gop_num"`
}

type LazyChunkDivider added in v0.7.0

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

考虑以下两种场景: - 只有上行,没有下行,没有必要做rtmp chunk切片的操作 - 有多个下行,只需要做一次rtmp chunk切片 所以这一步做了懒处理

func (*LazyChunkDivider) Get added in v0.7.0

func (lcd *LazyChunkDivider) Get() []byte

func (*LazyChunkDivider) Init added in v0.7.0

func (lcd *LazyChunkDivider) Init(message []byte, header *rtmp.Header)

type LazyGet added in v0.8.0

type LazyGet func() []byte

type LazyRTMPMsg2FLVTag added in v0.8.0

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

懒转换

func (*LazyRTMPMsg2FLVTag) Get added in v0.8.0

func (l *LazyRTMPMsg2FLVTag) Get() []byte

func (*LazyRTMPMsg2FLVTag) Init added in v0.8.0

func (l *LazyRTMPMsg2FLVTag) Init(msg rtmp.AVMsg)

type PProfConfig added in v0.10.0

type PProfConfig struct {
	Enable bool   `json:"enable"`
	Addr   string `json:"addr"`
}

type RTMPConfig added in v0.10.0

type RTMPConfig struct {
	Enable bool   `json:"enable"`
	Addr   string `json:"addr"`
	GOPNum int    `json:"gop_num"`
}

type RelayPullConfig added in v0.12.0

type RelayPullConfig struct {
	Enable bool   `json:"enable"`
	Addr   string `json:"addr"`
}

type RelayPushConfig added in v0.11.0

type RelayPushConfig struct {
	Enable   bool     `json:"enable"`
	AddrList []string `json:"addr_list"`
}

type ServerManager

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

func NewServerManager

func NewServerManager() *ServerManager

func (*ServerManager) Dispose

func (sm *ServerManager) Dispose()

func (*ServerManager) OnDelHTTPFLVSubSession added in v0.13.0

func (sm *ServerManager) OnDelHTTPFLVSubSession(session *httpflv.SubSession)

ServerObserver of httpflv.Server

func (*ServerManager) OnDelRTMPPubSession added in v0.13.0

func (sm *ServerManager) OnDelRTMPPubSession(session *rtmp.ServerSession)

ServerObserver of rtmp.Server

func (*ServerManager) OnDelRTMPSubSession added in v0.13.0

func (sm *ServerManager) OnDelRTMPSubSession(session *rtmp.ServerSession)

ServerObserver of rtmp.Server

func (*ServerManager) OnNewHTTPFLVSubSession added in v0.13.0

func (sm *ServerManager) OnNewHTTPFLVSubSession(session *httpflv.SubSession) bool

ServerObserver of httpflv.Server

func (*ServerManager) OnNewRTMPPubSession added in v0.13.0

func (sm *ServerManager) OnNewRTMPPubSession(session *rtmp.ServerSession) bool

ServerObserver of rtmp.Server

func (*ServerManager) OnNewRTMPSubSession added in v0.13.0

func (sm *ServerManager) OnNewRTMPSubSession(session *rtmp.ServerSession) bool

ServerObserver of rtmp.Server

func (*ServerManager) RunLoop

func (sm *ServerManager) RunLoop()

Jump to

Keyboard shortcuts

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