Documentation
¶
Index ¶
- Variables
- func Dispose()
- func Entry(confFile string)
- type Config
- type GOP
- type GOPCache
- type Group
- func (group *Group) AddHTTPFLVSubSession(session *httpflv.SubSession)
- func (group *Group) AddHTTPTSSubSession(session *httpts.SubSession)
- func (group *Group) AddRTMPPubSession(session *rtmp.ServerSession) bool
- func (group *Group) AddRTMPPullSession(session *rtmp.PullSession)
- func (group *Group) AddRTMPPushSession(url string, session *rtmp.PushSession)
- func (group *Group) AddRTMPSubSession(session *rtmp.ServerSession)
- func (group *Group) AddRTSPPubSession(session *rtsp.PubSession) bool
- func (group *Group) DelHTTPFLVSubSession(session *httpflv.SubSession)
- func (group *Group) DelHTTPTSSubSession(session *httpts.SubSession)
- func (group *Group) DelRTMPPubSession(session *rtmp.ServerSession)
- func (group *Group) DelRTMPPullSession(session *rtmp.PullSession)
- func (group *Group) DelRTMPPushSession(url string, session *rtmp.PushSession)
- func (group *Group) DelRTMPSubSession(session *rtmp.ServerSession)
- func (group *Group) DelRTSPPubSession(session *rtsp.PubSession)
- func (group *Group) Dispose()
- func (group *Group) IsTotalEmpty() bool
- func (group *Group) OnASC(asc []byte)
- func (group *Group) OnAVPacket(pkt base.AVPacket)
- func (group *Group) OnReadRTMPAVMsg(msg base.RTMPMsg)
- func (group *Group) OnSPSPPS(sps, pps []byte)
- func (group *Group) OnTSPackets(rawFrame []byte, boundary bool)
- func (group *Group) OnVPSSPSPPS(vps, sps, pps []byte)
- func (group *Group) RunLoop()
- func (group *Group) StringifyStats() string
- func (group *Group) Tick()
- type HLSConfig
- type HTTPFLVConfig
- type HTTPTSConfig
- type LazyChunkDivider
- type LazyGet
- type LazyRTMPMsg2FLVTag
- type PProfConfig
- type RTMPConfig
- type RTSPConfig
- type RelayPullConfig
- type RelayPushConfig
- type ServerManager
- func (sm *ServerManager) Dispose()
- func (sm *ServerManager) OnDelHTTPFLVSubSession(session *httpflv.SubSession)
- func (sm *ServerManager) OnDelHTTPTSSubSession(session *httpts.SubSession)
- func (sm *ServerManager) OnDelRTMPPubSession(session *rtmp.ServerSession)
- func (sm *ServerManager) OnDelRTMPSubSession(session *rtmp.ServerSession)
- func (sm *ServerManager) OnDelRTSPPubSession(session *rtsp.PubSession)
- func (sm *ServerManager) OnNewHTTPFLVSubSession(session *httpflv.SubSession) bool
- func (sm *ServerManager) OnNewHTTPTSSubSession(session *httpts.SubSession) bool
- func (sm *ServerManager) OnNewRTMPPubSession(session *rtmp.ServerSession) bool
- func (sm *ServerManager) OnNewRTMPSubSession(session *rtmp.ServerSession) bool
- func (sm *ServerManager) OnNewRTSPPubSession(session *rtsp.PubSession) bool
- func (sm *ServerManager) RunLoop()
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrLogic = errors.New("lal.logic: fxxk")
View Source
var Trans trans
Functions ¶
Types ¶
type Config ¶
type Config struct { RTMPConfig RTMPConfig `json:"rtmp"` HTTPFLVConfig HTTPFLVConfig `json:"httpflv"` HLSConfig HLSConfig `json:"hls"` HTTPTSConfig HTTPTSConfig `json:"httpts"` RTSPConfig RTSPConfig `json:"rtsp"` RelayPushConfig RelayPushConfig `json:"relay_push"` RelayPullConfig RelayPullConfig `json:"relay_pull"` PProfConfig PProfConfig `json:"pprof"` LogConfig nazalog.Option `json:"log"` }
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 (*GOPCache) GetGOPCount ¶ added in v0.10.0
func (*GOPCache) GetGOPDataAt ¶ added in v0.10.0
type Group ¶
type Group struct { UniqueKey string // contains filtered or unexported fields }
func (*Group) AddHTTPFLVSubSession ¶ added in v0.4.0
func (group *Group) AddHTTPFLVSubSession(session *httpflv.SubSession)
func (*Group) AddHTTPTSSubSession ¶ added in v0.15.0
func (group *Group) AddHTTPTSSubSession(session *httpts.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) AddRTSPPubSession ¶ added in v0.14.0
func (group *Group) AddRTSPPubSession(session *rtsp.PubSession) bool
TODO chef: rtsp package中,增加回调返回值判断,如果是false,将连接关掉
func (*Group) DelHTTPFLVSubSession ¶ added in v0.4.0
func (group *Group) DelHTTPFLVSubSession(session *httpflv.SubSession)
func (*Group) DelHTTPTSSubSession ¶ added in v0.15.0
func (group *Group) DelHTTPTSSubSession(session *httpts.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) DelRTSPPubSession ¶ added in v0.15.0
func (group *Group) DelRTSPPubSession(session *rtsp.PubSession)
func (*Group) Dispose ¶
func (group *Group) Dispose()
主动释放所有资源。保证所有资源的生命周期逻辑上都在我们的控制中。降低出bug的几率,降低心智负担。 注意,Dispose后,不应再使用这个对象。 值得一提,如果是从其他协程回调回来的消息,在使用Group中的资源前,要判断资源是否存在以及可用。
TODO chef:
后续弄个协程来替换掉目前锁的方式,来做消息同步。这样有个好处,就是不用写很多的资源有效判断。统一写一个就好了。 目前Dispose在IsTotalEmpty时调用,暂时没有这个问题。
func (*Group) IsTotalEmpty ¶
func (*Group) OnAVPacket ¶ added in v0.14.0
rtsp.PubSession
func (*Group) OnReadRTMPAVMsg ¶ added in v0.5.0
rtmp.PubSession or rtmp.PullSession
func (*Group) OnTSPackets ¶ added in v0.15.0
hls.Muxer
func (*Group) OnVPSSPSPPS ¶ added in v0.15.0
rtsp.PubSession
func (*Group) StringifyStats ¶ added in v0.12.0
type HLSConfig ¶ added in v0.10.0
type HLSConfig struct { SubListenAddr string `json:"sub_listen_addr"` hls.MuxerConfig }
type HTTPFLVConfig ¶ added in v0.10.0
type HTTPFLVConfig struct { httpflv.ServerConfig GOPNum int `json:"gop_num"` }
type HTTPTSConfig ¶ added in v0.15.0
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 *base.RTMPHeader)
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 base.RTMPMsg)
type PProfConfig ¶ added in v0.10.0
type RTMPConfig ¶ added in v0.10.0
type RTSPConfig ¶ added in v0.14.0
type RelayPullConfig ¶ added in v0.12.0
type RelayPushConfig ¶ added in v0.11.0
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) OnDelHTTPTSSubSession ¶ added in v0.15.0
func (sm *ServerManager) OnDelHTTPTSSubSession(session *httpts.SubSession)
ServerObserver of httpts.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) OnDelRTSPPubSession ¶ added in v0.14.0
func (sm *ServerManager) OnDelRTSPPubSession(session *rtsp.PubSession)
ServerObserver of rtsp.Server
func (*ServerManager) OnNewHTTPFLVSubSession ¶ added in v0.13.0
func (sm *ServerManager) OnNewHTTPFLVSubSession(session *httpflv.SubSession) bool
ServerObserver of httpflv.Server
func (*ServerManager) OnNewHTTPTSSubSession ¶ added in v0.15.0
func (sm *ServerManager) OnNewHTTPTSSubSession(session *httpts.SubSession) bool
ServerObserver of httpts.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) OnNewRTSPPubSession ¶ added in v0.14.0
func (sm *ServerManager) OnNewRTSPPubSession(session *rtsp.PubSession) bool
ServerObserver of rtsp.Server
func (*ServerManager) RunLoop ¶
func (sm *ServerManager) RunLoop()
Click to show internal directories.
Click to hide internal directories.