av

package
v0.0.0-...-9c3e309 Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2021 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TagAudio          = 0x08
	TagVideo          = 0x09
	TagScriptDataAmf0 = 0x12
	TagScriptDataAmf3 = 0x0f
)
View Source
const (
	SoundMp3 = 0x02
	SoundAac = 0x0a

	AacSeqHdr = 0x00
	AacRaw    = 0x01
)
View Source
const (
	AvcSeqHdr = 0x00

	FrameKey   = 0x01
	FrameInter = 0x02

	VideoH264 = 0x07
)
View Source
const (
	Publish = "publish"
	Play    = "play"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Alive

type Alive interface {
	Alive() bool
}

type AudioPacketHeader

type AudioPacketHeader interface {
	PacketHeader
	SoundFormat() uint8
	AACPacketType() uint8
}

type CalcTime

type CalcTime interface {
	CalcBaseTimestamp()
}

type Closer

type Closer interface {
	Info() Info
	Close(error)
}

type CodecParser

type CodecParser interface {
	SampleRater
	Parse(*Packet, io.Writer) error
}

type Demuxer

type Demuxer interface {
	Demux(*Packet) (ret *Packet, err error)
}

type GetWriter

type GetWriter interface {
	GetWriter(Info) WriteCloser
}

type Handler

type Handler interface {
	HandleReader(ReadCloser)
	HandleWriter(WriteCloser)
}

type Info

type Info struct {
	Key   string
	URL   string
	UID   string
	Inter bool
}

func (Info) IsInterval

func (info Info) IsInterval() bool

func (Info) String

func (info Info) String() string

type Muxer

type Muxer interface {
	Mux(*Packet, io.Writer) error
}

type Packet

type Packet struct {
	IsAudio    bool
	IsVideo    bool
	IsMetadata bool
	TimeStamp  uint32 // dts
	StreamID   uint32
	Header     PacketHeader
	Data       []byte
}

Header can be converted to AudioHeaderInfo or VideoHeaderInfo

type PacketHeader

type PacketHeader interface {
}

type RWBaser

type RWBaser struct {
	PreTime            time.Time
	BaseTimestamp      uint32
	LastVideoTimestamp uint32
	LastAudioTimestamp uint32
	// contains filtered or unexported fields
}

func NewRWBaser

func NewRWBaser(duration time.Duration) RWBaser

func (*RWBaser) Alive

func (rw *RWBaser) Alive() bool

func (*RWBaser) BaseTimeStamp

func (rw *RWBaser) BaseTimeStamp() uint32

func (*RWBaser) CalcBaseTimestamp

func (rw *RWBaser) CalcBaseTimestamp()

func (*RWBaser) RecTimeStamp

func (rw *RWBaser) RecTimeStamp(timestamp, typeID uint32)

func (*RWBaser) SetPreTime

func (rw *RWBaser) SetPreTime()

type ReadCloser

type ReadCloser interface {
	Closer
	Alive
	Read(*Packet) error
}

type SampleRater

type SampleRater interface {
	SampleRate() (int, error)
}

type VideoPacketHeader

type VideoPacketHeader interface {
	PacketHeader
	IsKeyFrame() bool
	IsSeq() bool
	CodecID() uint8
	CompositionTime() int32
}

type WriteCloser

type WriteCloser interface {
	Closer
	Alive
	CalcTime
	Write(*Packet) error
}

Jump to

Keyboard shortcuts

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