rtpmpeg4audio

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Nov 22, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package rtpmpeg4audio contains a RTP/MPEG-4 Audio decoder and encoder.

Index

Constants

This section is empty.

Variables

View Source
var ErrMorePacketsNeeded = errors.New("need more packets")

ErrMorePacketsNeeded is returned when more packets are needed.

Functions

This section is empty.

Types

type Decoder

type Decoder struct {
	// use RFC6416 (LATM) instead of RFC3640 (generic).
	LATM bool

	// Generic-only
	// The number of bits in which the AU-size field is encoded in the AU-header.
	SizeLength int
	// The number of bits in which the AU-Index is encoded in the first AU-header.
	IndexLength int
	// The number of bits in which the AU-Index-delta field is encoded in any non-first AU-header.
	IndexDeltaLength int
	// contains filtered or unexported fields
}

Decoder is a RTP/MPEG-4 Audio decoder. Specification: https://datatracker.ietf.org/doc/html/rfc3640 Specification: https://datatracker.ietf.org/doc/html/rfc6416#section-7.3

func (*Decoder) Decode

func (d *Decoder) Decode(pkt *rtp.Packet) ([][]byte, error)

Decode decodes AUs from a RTP packet. It returns the AUs and the PTS of the first AU. The PTS of subsequent AUs can be calculated by adding time.Second*mpeg4audio.SamplesPerAccessUnit/clockRate.

func (*Decoder) Init

func (d *Decoder) Init() error

Init initializes the decoder.

type Encoder

type Encoder struct {
	// payload type of packets.
	PayloadType uint8

	// use RFC6416 (LATM) instead of RFC3640 (generic).
	LATM bool

	// The number of bits in which the AU-size field is encoded in the AU-header.
	SizeLength int

	// The number of bits in which the AU-Index is encoded in the first AU-header.
	IndexLength int

	// The number of bits in which the AU-Index-delta field is encoded in any non-first AU-header.
	IndexDeltaLength int

	// SSRC of packets (optional).
	// It defaults to a random value.
	SSRC *uint32

	// initial sequence number of packets (optional).
	// It defaults to a random value.
	InitialSequenceNumber *uint16

	// maximum size of packet payloads (optional).
	// It defaults to 1460.
	PayloadMaxSize int
	// contains filtered or unexported fields
}

Encoder is a RTP/MPEG4-audio encoder. Specification: https://datatracker.ietf.org/doc/html/rfc3640 Specification: https://datatracker.ietf.org/doc/html/rfc6416#section-7.3

func (*Encoder) Encode

func (e *Encoder) Encode(aus [][]byte) ([]*rtp.Packet, error)

Encode encodes AUs into RTP packets.

func (*Encoder) Init

func (e *Encoder) Init() error

Init initializes the encoder.

Jump to

Keyboard shortcuts

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