Documentation
¶
Index ¶
- Constants
- type Buf
- type BufPos
- type Header
- type Queue
- func (q *Queue) Close() (err error)
- func (q *Queue) CursorByDelayedFrame(id, sid string, startOffset, skipFrameThreshold int) *QueueCursor
- func (q *Queue) CursorBySliceReq(id, sid string, sliceStartId uint32, sliceSubstreamId, sliceStreamBase uint8) *QueueCursor
- func (q *Queue) Format() string
- func (q *Queue) GetPktCount() int
- func (q *Queue) SetMaxGopCount(n int)
- func (q *Queue) SetMaxPktCount(n int)
- func (q *Queue) SetSID(id string)
- func (q *Queue) Stat() *Stat
- func (q *Queue) WriteHeader(data []av.CodecData) error
- func (q *Queue) WritePacket(pkt av.Packet) error
- func (q *Queue) WriteTrailer() error
- type QueueCursor
- func (qc *QueueCursor) Close() error
- func (qc *QueueCursor) Format() string
- func (q *QueueCursor) Headers() (cdata []av.CodecData, err error)
- func (q *QueueCursor) ReadPacket() (av.Packet, error)
- func (qc *QueueCursor) SeekToConfirmedAudioPkt(confirmedPktTime time.Duration)
- func (qc *QueueCursor) SeekToConfirmedPkt(confirmedPktTime time.Duration)
- func (q *QueueCursor) SetStartPts(startPts int)
- func (q *QueueCursor) SetTimeOffset(timeOffset int)
- func (q *QueueCursor) UpdateOption(startOffset, skipFrameThreshold int)
- type Stat
Constants ¶
View Source
const ( // DefaultGopCount 默认bufqueue缓存gop个数 DefaultGopCount = 6 // DefaultPktCount 默认bufqueue缓存pkt个数 DefaultPktCount = 2000 // DefaultTimeAdjustThreshold 默认时间修正阀值 DefaultTimeAdjustThreshold = time.Second * 1 // DefaultWaitTimeout DefaultWaitTimeout = time.Second * 10 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Buf ¶
func (*Buf) IsValidPos ¶
type Queue ¶
type Queue struct {
// contains filtered or unexported fields
}
Queue buffer queue
func (*Queue) CursorByDelayedFrame ¶
func (q *Queue) CursorByDelayedFrame(id, sid string, startOffset, skipFrameThreshold int) *QueueCursor
CursorByDelayedFrame 按帧偏移量初始化游标,对齐到关键帧
func (*Queue) CursorBySliceReq ¶
func (q *Queue) CursorBySliceReq(id, sid string, sliceStartId uint32, sliceSubstreamId, sliceStreamBase uint8) *QueueCursor
CursorBySliceReq 按切片请求参数,找到对应的位置
func (*Queue) WriteHeader ¶
WriteHeader write header
func (*Queue) WritePacket ¶
WritePacket Put packet into buffer, old packets will be discared.
type QueueCursor ¶
type QueueCursor struct {
StartOffset int
SkipFrameThreshold int
// P2P quickTime req
TimeOffset int
// LAS startPts req
StartPts int
// slice req
EnableSlice bool
SliceStartId uint32
SliceSubstreamId uint8
SliceStreamBase uint8
// contains filtered or unexported fields
}
QueueCursor Cursor of queue
func (*QueueCursor) Close ¶
func (qc *QueueCursor) Close() error
func (*QueueCursor) Format ¶
func (qc *QueueCursor) Format() string
func (*QueueCursor) Headers ¶
func (q *QueueCursor) Headers() (cdata []av.CodecData, err error)
Headers 返回队列中缓存的音视频header
func (*QueueCursor) ReadPacket ¶
func (q *QueueCursor) ReadPacket() (av.Packet, error)
ReadPacket will not consume packets in Queue, it's just a cursor.
func (*QueueCursor) SeekToConfirmedAudioPkt ¶
func (qc *QueueCursor) SeekToConfirmedAudioPkt(confirmedPktTime time.Duration)
func (*QueueCursor) SeekToConfirmedPkt ¶
func (qc *QueueCursor) SeekToConfirmedPkt(confirmedPktTime time.Duration)
func (*QueueCursor) SetStartPts ¶
func (q *QueueCursor) SetStartPts(startPts int)
func (*QueueCursor) SetTimeOffset ¶
func (q *QueueCursor) SetTimeOffset(timeOffset int)
func (*QueueCursor) UpdateOption ¶
func (q *QueueCursor) UpdateOption(startOffset, skipFrameThreshold int)
type Stat ¶
type Stat struct {
PktCount uint32 `json:"pkt_count"`
LossPktCount uint32 `json:"loss_pkt_count"`
GopCount uint32 `json:"gop_count"`
VideoCount uint32 `json:"video_count"`
AudioCount uint32 `json:"audio_count"`
HeadPos int `json:"head_pos"`
TailPos int `json:"tail_pos"`
Closed bool `json:"closed"`
}
Stat ...
Click to show internal directories.
Click to hide internal directories.