rtph265

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 7, 2023 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package rtph265 contains a RTP/H265 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(
	"received a non-starting fragment without any previous starting fragment")

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

Functions

This section is empty.

Types

type Decoder

type Decoder struct {
	// indicates that NALUs have an additional field that specifies the decoding order.
	MaxDONDiff int
	// contains filtered or unexported fields
}

Decoder is a RTP/H265 decoder. Specification: https://datatracker.ietf.org/doc/html/rfc7798

func (*Decoder) Decode

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

Decode decodes NALUs from a RTP packet.

func (*Decoder) DecodeUntilMarker

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

DecodeUntilMarker decodes NALUs from a RTP 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) Init

func (d *Decoder) Init()

Init initializes the decoder.

type Encoder

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

	// 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

	// initial timestamp of packets (optional).
	// It defaults to a random value.
	InitialTimestamp *uint32

	// maximum size of packet payloads (optional).
	// It defaults to 1460.
	PayloadMaxSize int

	// indicates that NALUs have an additional field that specifies the decoding order.
	MaxDONDiff int
	// contains filtered or unexported fields
}

Encoder is a RTP/H265 encoder. Specification: https://datatracker.ietf.org/doc/html/rfc7798

func (*Encoder) Encode

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

Encode encodes NALUs into RTP/H265 packets.

func (*Encoder) Init

func (e *Encoder) Init()

Init initializes the encoder.

Jump to

Keyboard shortcuts

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