Documentation
¶
Index ¶
- Constants
- Variables
- func DoAuthenticatePlainTextPassword(params map[string]string, password string) bool
- func NewHandler(password string) *handler
- func NewOKResponse(cseq string) *http.Response
- func NewResponse(code int, cseq string) *http.Response
- func NewSession(conn net.Conn) *session
- func NewSink(id stream.SinkID, sourceId string, conn net.Conn, cb func(sdp string)) stream.Sink
- func NewTransStream(addr net.IPAddr, urlFormat string, oldTracks map[byte]uint16) stream.TransStream
- func TransStreamFactory(source stream.Source, protocol stream.TransStreamProtocol, ...) (stream.TransStream, error)
- type Handler
- type Request
- type Server
- type SessionState
- type Sink
- type Track
- type TransStream
- func (t *TransStream) AddTrack(track *stream.Track) error
- func (t *TransStream) Close() ([][]byte, int64, error)
- func (t *TransStream) Input(packet utils.AVPacket) ([][]byte, int64, bool, error)
- func (t *TransStream) OverTCP(data []byte, channel int)
- func (t *TransStream) PackRtpPayload(track *Track, channel int, data []byte, timestamp uint32)
- func (t *TransStream) ReadExtraData(ts int64) ([][]byte, int64, error)
- func (t *TransStream) WriteHeader() error
Constants ¶
View Source
const ( Version = "RTSP/1.0" SessionStateOptions = SessionState(0x1) SessionStateDescribe = SessionState(0x2) SessionStateSetup = SessionState(0x3) SessionStatePlay = SessionState(0x4) SessionStateTeardown = SessionState(0x5) SessionStatePause = SessionState(0x6) )
View Source
const ( OverTcpHeaderSize = 4 OverTcpMagic = 0x24 )
Variables ¶
View Source
var (
TransportManger transport.Manager
)
Functions ¶
func NewHandler ¶
func NewHandler(password string) *handler
func NewOKResponse ¶
func NewSession ¶
func NewTransStream ¶
func TransStreamFactory ¶
func TransStreamFactory(source stream.Source, protocol stream.TransStreamProtocol, tracks []*stream.Track) (stream.TransStream, error)
Types ¶
type Handler ¶
type Handler interface { // Process 路由请求给具体的handler, 并发送响应 Process(session *session, method string, url_ *url.URL, headers textproto.MIMEHeader) error OnOptions(request Request) (*http.Response, []byte, error) // OnDescribe 获取spd OnDescribe(request Request) (*http.Response, []byte, error) // OnSetup 订阅track OnSetup(request Request) (*http.Response, []byte, error) // OnPlay 请求播放 OnPlay(request Request) (*http.Response, []byte, error) // OnTeardown 结束播放 OnTeardown(request Request) (*http.Response, []byte, error) OnPause(request Request) (*http.Response, []byte, error) OnGetParameter(request Request) (*http.Response, []byte, error) OnSetParameter(request Request) (*http.Response, []byte, error) OnRedirect(request Request) (*http.Response, []byte, error) // OnRecord 推流 OnRecord(request Request) (*http.Response, []byte, error) }
Handler 处理RTSP各个请求消息
type SessionState ¶
type SessionState int
type Sink ¶
Sink rtsp拉流sink 对于udp而言, 每个sink维护多个transport tcp使用信令链路传输
func (*Sink) StartStreaming ¶
func (s *Sink) StartStreaming(transStream stream.TransStream) error
type Track ¶
type Track struct { PT byte Rate int MediaType utils.AVMediaType StartSeq uint16 EndSeq uint16 Muxer librtp.Muxer ExtraDataBuffer [][]byte // 缓存带有编码信息的rtp包, 对所有sink通用 }
Track RtspTrack 对rtsp每路输出流的封装
func NewRTSPTrack ¶
type TransStream ¶
type TransStream struct { stream.BaseTransStream RtspTracks []*Track // contains filtered or unexported fields }
TransStream rtsp传输流封装 低延迟是rtsp特性, 所以不考虑实现GOP缓存
func (*TransStream) OverTCP ¶
func (t *TransStream) OverTCP(data []byte, channel int)
func (*TransStream) PackRtpPayload ¶
func (t *TransStream) PackRtpPayload(track *Track, channel int, data []byte, timestamp uint32)
func (*TransStream) ReadExtraData ¶
func (t *TransStream) ReadExtraData(ts int64) ([][]byte, int64, error)
func (*TransStream) WriteHeader ¶
func (t *TransStream) WriteHeader() error
Click to show internal directories.
Click to hide internal directories.