Documentation ¶
Index ¶
- Variables
- func HandleM3u8Writer(key string, getSource func(string) (*Source, bool), w http.ResponseWriter)
- func HandleTsWriter(key, url string, getSource func(string) (*Source, bool), w http.ResponseWriter)
- type Server
- func (self *Server) GetSource(key string) (*Source, bool)
- func (self *Server) GetWriter(info av.Info) av.WriteCloser
- func (self *Server) Handle(w http.ResponseWriter, r *http.Request)
- func (self *Server) HandleCrossdomain(w http.ResponseWriter, r *http.Request)
- func (self *Server) NewSource(info av.Info) *Source
- func (server *Server) Serve(listener net.Listener) error
- type Source
- type TSCacheItem
- type TSItem
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrNoPublisher = fmt.Errorf("no publisher") ErrInvalidReq = fmt.Errorf("invalid req url path") ErrNoSupportVideoCodec = fmt.Errorf("no support video codec") ErrNoSupportAudioCodec = fmt.Errorf("no support audio codec") )
View Source
var (
ErrNoKey = fmt.Errorf("No key for cache")
)
View Source
var KeepAfterEnd = true
Functions ¶
func HandleM3u8Writer ¶
func HandleTsWriter ¶
Types ¶
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func NewServer ¶
func NewServer(h *rtmp.RtmpStream) *Server
func (*Server) HandleCrossdomain ¶
func (self *Server) HandleCrossdomain(w http.ResponseWriter, r *http.Request)
type Source ¶
func (*Source) GetCacheInc ¶
func (source *Source) GetCacheInc() *TSCacheItem
func (*Source) SendPacket ¶
type TSCacheItem ¶
type TSCacheItem struct {
// contains filtered or unexported fields
}
func NewTSCacheItem ¶
func NewTSCacheItem(id string) *TSCacheItem
func (*TSCacheItem) GenM3U8PlayList ¶
func (tcCacheItem *TSCacheItem) GenM3U8PlayList() ([]byte, error)
TODO: found data race, fix it
func (*TSCacheItem) ID ¶
func (tcCacheItem *TSCacheItem) ID() string
func (*TSCacheItem) SetItem ¶
func (tcCacheItem *TSCacheItem) SetItem(key string, item TSItem)
Click to show internal directories.
Click to hide internal directories.