sdp

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Dec 8, 2023 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ARtpMapEncodingNameH265  = "H265"
	ARtpMapEncodingNameH264  = "H264"
	ARtpMapEncodingNameAac   = "MPEG4-GENERIC"
	ARtpMapEncodingNameG711A = "PCMA"
	ARtpMapEncodingNameG711U = "PCMU"
)

Variables

This section is empty.

Functions

func ParseAsc

func ParseAsc(a *AFmtPBase) ([]byte, error)

func ParseSpsPps

func ParseSpsPps(a *AFmtPBase) (sps, pps []byte, err error)

ParseSpsPps

解析AVC/H264的sps,pps 例子见单元测试

func ParseVpsSpsPps

func ParseVpsSpsPps(a *AFmtPBase) (vps, sps, pps []byte, err error)

Types

type AControl

type AControl struct {
	Value string
}

func ParseAControl

func ParseAControl(s string) (ret AControl, err error)

type AFmtPBase

type AFmtPBase struct {
	Format     int               // same as PayloadType
	Parameters map[string]string // name -> value
}

func ParseAFmtPBase

func ParseAFmtPBase(s string) (ret AFmtPBase, err error)

ParseAFmtPBase 例子见单元测试

type ARtpMap

type ARtpMap struct {
	PayloadType        int
	EncodingName       string
	ClockRate          int
	EncodingParameters string
}

func ParseARtpMap

func ParseARtpMap(s string) (ret ARtpMap, err error)

type AudioInfo

type AudioInfo struct {
	AudioPt           media.AvMediaType
	SamplingFrequency int
	Asc               []byte
}

type LogicContext

type LogicContext struct {
	RawSdp []byte

	AudioClockRate int
	VideoClockRate int

	Asc []byte
	Vps []byte
	Sps []byte
	Pps []byte

	AudioMediaType media.AvMediaType // 本端使用的PT值(用于代码中编码类型判断)
	VideoMediaType media.AvMediaType // 本端使用的PT值(用于代码中编码类型判断)

	// 没有用上的
	HasAudio bool
	HasVideo bool
	// contains filtered or unexported fields
}

func Pack

func Pack(videoInfo VideoInfo, audioInfo AudioInfo) (ctx LogicContext, err error)

func ParseSdp2LogicContext

func ParseSdp2LogicContext(b []byte) (LogicContext, error)

func (*LogicContext) GetAudioMediaType

func (lc *LogicContext) GetAudioMediaType() media.AvMediaType

func (*LogicContext) GetVideoMediaType

func (lc *LogicContext) GetVideoMediaType() media.AvMediaType

func (*LogicContext) HasAudioAControl

func (lc *LogicContext) HasAudioAControl() bool

func (*LogicContext) HasVideoAControl

func (lc *LogicContext) HasVideoAControl() bool

func (*LogicContext) IsAudioAvailable

func (lc *LogicContext) IsAudioAvailable() bool

func (*LogicContext) IsAudioPayloadType

func (lc *LogicContext) IsAudioPayloadType(t int) bool

func (*LogicContext) IsAudioUri

func (lc *LogicContext) IsAudioUri(uri string) bool

func (*LogicContext) IsPayloadType

func (lc *LogicContext) IsPayloadType(t int) bool

func (*LogicContext) IsVideoAvailable

func (lc *LogicContext) IsVideoAvailable() bool

func (*LogicContext) IsVideoPayloadType

func (lc *LogicContext) IsVideoPayloadType(t int) bool

func (*LogicContext) IsVideoUri

func (lc *LogicContext) IsVideoUri(uri string) bool

func (*LogicContext) MakeAudioSetupUri

func (lc *LogicContext) MakeAudioSetupUri(uri string) string

func (*LogicContext) MakeVideoSetupUri

func (lc *LogicContext) MakeVideoSetupUri(uri string) string

type M

type M struct {
	Media string // audio/video
	PT    int    // 暂时只支持m只有一个pt值的情况,拿的是第一个pt
}

func ParseM

func ParseM(s string) (ret M, err error)

ParseM m=video 0 RTP/AVP 96 m=audio 0 RTP/AVP 8

type MediaDesc

type MediaDesc struct {
	M         M
	ARtpMap   ARtpMap
	AFmtPBase *AFmtPBase
	AControl  AControl
}

type RawContext

type RawContext struct {
	MediaDescList []MediaDesc
}

func ParseSdp2RawContext

func ParseSdp2RawContext(b []byte) (RawContext, error)

ParseSdp2RawContext 例子见单元测试

type VideoInfo

type VideoInfo struct {
	VideoPt       media.AvMediaType
	Vps, Sps, Pps []byte
}

Jump to

Keyboard shortcuts

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