queue

package
v1.0.4 Latest Latest
Warning

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

Go to latest
Published: Jan 27, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

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

type Buf struct {
	Head, Tail BufPos

	Size  int
	Count int
	// contains filtered or unexported fields
}

func NewBuf

func NewBuf() *Buf

func (*Buf) Get

func (self *Buf) Get(pos BufPos) av.Packet

func (*Buf) IsValidPos

func (self *Buf) IsValidPos(pos BufPos) bool

func (*Buf) Pop

func (self *Buf) Pop() av.Packet

func (*Buf) Push

func (self *Buf) Push(pkt av.Packet)

type BufPos

type BufPos int

func (BufPos) GE

func (self BufPos) GE(pos BufPos) bool

func (BufPos) GT

func (self BufPos) GT(pos BufPos) bool

func (BufPos) LT

func (self BufPos) LT(pos BufPos) bool
type Header struct {
	Datas   []av.Header
	BeginAt BufPos
}

Header header info of stream

type Queue

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

Queue buffer queue

func NewQueue

func NewQueue() *Queue

NewQueue new a queue

func (*Queue) Close

func (q *Queue) Close() (err error)

Close After Close() called, all QueueCursor's ReadPacket will return io.EOF.

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) Format

func (q *Queue) Format() string

func (*Queue) GetPktCount

func (q *Queue) GetPktCount() int

GetPktCount

func (*Queue) SetMaxGopCount

func (q *Queue) SetMaxGopCount(n int)

SetMaxGopCount set MaxGopCount

func (*Queue) SetMaxPktCount

func (q *Queue) SetMaxPktCount(n int)

SetMaxPktCount set MaxPktCount

func (*Queue) SetSID

func (q *Queue) SetSID(id string)

SetSID 设置流ID

func (*Queue) Stat

func (q *Queue) Stat() *Stat

func (*Queue) WriteHeader

func (q *Queue) WriteHeader(data []av.CodecData) error

WriteHeader write header

func (*Queue) WritePacket

func (q *Queue) WritePacket(pkt av.Packet) error

WritePacket Put packet into buffer, old packets will be discared.

func (*Queue) WriteTrailer

func (q *Queue) WriteTrailer() error

WriteTrailer write trailer

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 ...

Jump to

Keyboard shortcuts

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