rtph264

package
v0.0.0-...-3b681cf Latest Latest
Warning

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

Go to latest
Published: Feb 25, 2022 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package rtph264 contains a RTP/H264 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.

View Source
var ErrNonStartingPacketAndNoPrevious = errors.New(
	"decoded a non-starting fragmented packet without any previous starting packet")

ErrNonStartingPacketAndNoPrevious is returned when we decoded a non-starting packet of a fragmented NALU and we didn't received anything before. It's normal to receive this when we are decoding a stream that has been already running for some time.

Functions

This section is empty.

Types

type Decoder

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

Decoder is a RTP/H264 decoder.

func NewDecoder

func NewDecoder() *Decoder

NewDecoder allocates a Decoder.

func (*Decoder) Decode

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

Decode decodes NALUs from a RTP/H264 packet.

func (*Decoder) DecodeUntilMarker

func (d *Decoder) DecodeUntilMarker(pkt *rtp.Packet) ([][]byte, time.Duration, error)

DecodeUntilMarker decodes NALUs from a RTP/H264 packet and puts them in a buffer. When a packet has the marker flag (meaning that all the NALUs with the same PTS have been received), the buffer is returned.

func (*Decoder) ReadSPSPPS

func (d *Decoder) ReadSPSPPS(r io.Reader) ([]byte, []byte, error)

ReadSPSPPS reads RTP/H264 packets from a reader until SPS and PPS are found, and returns them.

type Encoder

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

Encoder is a RTP/H264 encoder.

func NewEncoder

func NewEncoder(payloadType uint8,
	sequenceNumber *uint16,
	ssrc *uint32,
	initialTs *uint32) *Encoder

NewEncoder allocates an Encoder.

func (*Encoder) Encode

func (e *Encoder) Encode(nalus [][]byte, pts time.Duration) ([]*rtp.Packet, error)

Encode encodes NALUs into RTP/H264 packets.

type PacketConnReader

type PacketConnReader struct {
	net.PacketConn
}

PacketConnReader creates a io.Reader around a net.PacketConn.

func (PacketConnReader) Read

func (r PacketConnReader) Read(p []byte) (int, error)

Read implements io.Reader.

Jump to

Keyboard shortcuts

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