gb28181

package
v0.37.4 Latest Latest
Warning

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

Go to latest
Published: Apr 18, 2024 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StreamTypeH264    uint8 = 0x1b
	StreamTypeH265          = 0x24
	StreamTypeAAC           = 0x0f
	StreamTypeG711A         = 0x90 //PCMA
	StreamTypeG711U         = 0x91 //PCMU
	StreamTypeG7221         = 0x92
	StreamTypeG7231         = 0x93
	StreamTypeG729          = 0x99
	StreamTypeUnknown       = -1
)
View Source
const (
	PsHeaderlen     int = 14
	SysHeaderlen    int = 18
	SysMapHeaderLen int = 24
	PesHeaderLen    int = 19
)
View Source
const (
	StreamIdVideo = 0xe0
	StreamIdAudio = 0xc0
)
View Source
const (
	MaxPesLen = 0xFFFF
)

Variables

View Source
var ErrGb28181 = errors.New("lal.gb28181: fxxk")

ErrGb28181 TODO(chef): [refactor] move to pkg base 202207

Functions

This section is empty.

Types

type OnReadPacket added in v0.31.0

type OnReadPacket func(b []byte)

type Pes

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

Pes ----------------------------------------------------------- <iso13818-1.pdf> <2.4.3.6 PES packet> <page 49/174> <Table E.1 - PES packet header example> <page 142/174> <F.0.2 PES packet> <page 144/174> packet_start_code_prefix [24b] *** always 0x00, 0x00, 0x01 stream_id [8b] * PES_packet_length [16b] ** '10' [2b] PES_scrambling_control [2b] PES_priority [1b] data_alignment_indicator [1b] copyright [1b] original_or_copy [1b] * PTS_DTS_flags [2b] ESCR_flag [1b] ES_rate_flag [1b] DSM_trick_mode_flag [1b] additional_copy_info_flag [1b] PES_CRC_flag [1b] PES_extension_flag [1b] * PES_header_data_length [8b] * -----------------------------------------------------------

func ParsePes

func ParsePes(b []byte) (pes Pes, length int)

type PsUnpacker

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

PsUnpacker 解析ps(Program Stream)流

func NewPsUnpacker

func NewPsUnpacker() *PsUnpacker

func (*PsUnpacker) Dispose added in v0.31.0

func (p *PsUnpacker) Dispose()

func (*PsUnpacker) FeedRtpBody

func (p *PsUnpacker) FeedRtpBody(rtpBody []byte, rtpts uint32) error

FeedRtpBody 注意,传入的数据应该是连续的,属于完整帧的

func (*PsUnpacker) FeedRtpPacket

func (p *PsUnpacker) FeedRtpPacket(b []byte) error

FeedRtpPacket

注意,内部会处理丢包、乱序等问题

@param b: rtp包,注意,包含rtp包头部分,内部不持有该内存块

func (*PsUnpacker) WithOnAvPacket added in v0.31.0

func (p *PsUnpacker) WithOnAvPacket(onAvPacket base.OnAvPacketFunc) *PsUnpacker

WithOnAvPacket

@param onAvPacket: 回调函数中 base.AvPacket 字段说明: PayloadType AvPacketPt 见 base.AvPacketPt。 Timestamp int64 dts,单位毫秒。 Pts int64 pts,单位毫秒。 Payload []byte 对于视频,h264和h265是AnnexB格式。 对于音频,AAC是前面携带adts的格式。

type PubSession added in v0.31.0

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

func NewPubSession added in v0.31.0

func NewPubSession() *PubSession

func (*PubSession) AppName added in v0.31.0

func (session *PubSession) AppName() string

func (*PubSession) Dispose added in v0.31.0

func (session *PubSession) Dispose() error

func (*PubSession) GetStat added in v0.31.0

func (session *PubSession) GetStat() base.StatSession

func (*PubSession) IsAlive added in v0.31.0

func (session *PubSession) IsAlive() (readAlive, writeAlive bool)

func (*PubSession) Listen added in v0.31.0

func (session *PubSession) Listen(port int, isTcpFlag bool) (int, error)

Listen 非阻塞函数

注意,当`port`参数为0时,内部会自动选择一个可用端口监听,并通过返回值返回该端口

func (*PubSession) RawQuery added in v0.31.0

func (session *PubSession) RawQuery() string

func (*PubSession) RunLoop added in v0.31.0

func (session *PubSession) RunLoop() error

RunLoop 阻塞函数

func (*PubSession) StreamName added in v0.31.0

func (session *PubSession) StreamName() string

func (*PubSession) UniqueKey added in v0.31.0

func (session *PubSession) UniqueKey() string

func (*PubSession) UpdateStat added in v0.31.0

func (session *PubSession) UpdateStat(intervalSec uint32)

func (*PubSession) Url added in v0.31.0

func (session *PubSession) Url() string

func (*PubSession) WithHookReadPacket added in v0.31.0

func (session *PubSession) WithHookReadPacket(fn OnReadPacket) *PubSession

WithHookReadPacket

将接收的数据返回给上层。 注意,底层的解析逻辑依然走。 可以用这个方式来截取数据进行调试。

func (*PubSession) WithOnAvPacket added in v0.31.0

func (session *PubSession) WithOnAvPacket(onAvPacket base.OnAvPacketFunc) *PubSession

WithOnAvPacket 设置音视频的回调。

@param onAvPacket: 见 PsUnpacker.WithOnAvPacket 的注释

func (*PubSession) WithStreamName added in v0.31.0

func (session *PubSession) WithStreamName(streamName string) *PubSession

Jump to

Keyboard shortcuts

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