codec

package
v0.0.0-...-66afe1b Latest Latest
Warning

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

Go to latest
Published: Feb 19, 2026 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AttributeKey

type AttributeKey int
const (
	ChromaSubsampling AttributeKey = iota
	IsKeyFrame
	SampleDuration
	Width
	Height
)

type Attributes

type Attributes map[any]any

type Config

type Config struct {
	Codec       string
	Width       uint
	Height      uint
	TimebaseNum int
	TimebaseDen int
	TargetRate  uint64
}

type Decoder

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

func NewDecoder

func NewDecoder() (*Decoder, error)

func (*Decoder) Close

func (d *Decoder) Close()

func (*Decoder) Decode

func (d *Decoder) Decode(encFrame []byte) ([]byte, Attributes, error)
func (d *Decoder) Link(next Writer, i Info) (Writer, error)

type Encoder

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

func NewEncoder

func NewEncoder(c Config) (*Encoder, error)

func (*Encoder) Encode

func (e *Encoder) Encode(
	image *image.YCbCr,
	ts time.Time,
	duration time.Duration,
) (*VP8Frame, error)

func (*Encoder) SetTargetRate

func (e *Encoder) SetTargetRate(targetRate uint64)

type FrameSpacer

type FrameSpacer struct {
	Ctx context.Context
	// contains filtered or unexported fields
}
func (p *FrameSpacer) Link(w Writer, i Info) (Writer, error)

func (*FrameSpacer) Write

func (p *FrameSpacer) Write(pkt []byte, attr Attributes) error

func (*FrameSpacer) WriteAll

func (p *FrameSpacer) WriteAll(pkts [][]byte, attr Attributes) error

type IVFDataSource

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

func NewIVFDataSource

func NewIVFDataSource(reader io.ReadCloser) (*IVFDataSource, error)

func (*IVFDataSource) Close

func (s *IVFDataSource) Close() error

func (*IVFDataSource) Read

func (s *IVFDataSource) Read(buf []byte) (int, error)

func (*IVFDataSource) TimeUntilNextFrame

func (s *IVFDataSource) TimeUntilNextFrame() time.Duration

type Info

type Info struct {
	Width       uint
	Height      uint
	TimebaseNum int
	TimebaseDen int
}

type MediaFrameSource

type MediaFrameSource interface {
	FrameRate() (numerator uint, denominator uint)
	ReadFrame(targetSize uint) ([]byte, error)
}

type MultiWriter

type MultiWriter interface {
	Writer
	WriteAll([][]byte, Attributes) error
}

type Processor

type Processor interface {
	Link(Writer, Info) (Writer, error)
}

type RTPDepacketizer

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

RTPDepacketizer is a linkable depacketizer element

func NewRTPDepacketizer

func NewRTPDepacketizer(timeout time.Duration) *RTPDepacketizer

func (*RTPDepacketizer) Close

func (d *RTPDepacketizer) Close() error
func (d *RTPDepacketizer) Link(next Writer, i Info) (Writer, error)

type RTPPacketizer

type RTPPacketizer struct {
	MTU       uint16
	PT        uint8
	SSRC      uint32
	ClockRate uint32
	// contains filtered or unexported fields
}

func (*RTPPacketizer) Write

func (p *RTPPacketizer) Write(encFrame []byte, a Attributes) error

type RTPPacketizerFactory

type RTPPacketizerFactory struct {
	MTU       uint16
	PT        uint8
	SSRC      uint32
	ClockRate uint32
}
func (p *RTPPacketizerFactory) Link(w Writer, i Info) (Writer, error)

type Scheduler

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

func NewScheduler

func NewScheduler() *Scheduler

func (*Scheduler) Run

func (s *Scheduler) Run() error

func (*Scheduler) SetTargetRate

func (s *Scheduler) SetTargetRate(rate uint)

type VP8Encoder

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

func NewVP8Encoder

func NewVP8Encoder() *VP8Encoder
func (e *VP8Encoder) Link(f Writer, i Info) (Writer, error)

func (*VP8Encoder) SetTargetRate

func (e *VP8Encoder) SetTargetRate(targetRate uint64)

type VP8Frame

type VP8Frame struct {
	IsKeyFrame bool
	Payload    []byte
}

type Writer

type Writer interface {
	Write([]byte, Attributes) error
}

func Chain

func Chain(i Info, f Writer, processors ...Processor) (Writer, error)

type WriterFunc

type WriterFunc func([]byte, Attributes) error

func (WriterFunc) Write

func (f WriterFunc) Write(b []byte, a Attributes) error

type Y4MSink

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

func NewY4MSink

func NewY4MSink(filePath string, fpsNum, fpsDen int) (*Y4MSink, error)

func (*Y4MSink) Close

func (s *Y4MSink) Close() error

func (*Y4MSink) SaveFrame

func (s *Y4MSink) SaveFrame(frameData []byte, width, height int, subsampling image.YCbCrSubsampleRatio) error

func (*Y4MSink) Write

func (a *Y4MSink) Write(b []byte, attrs Attributes) error

Write implements the Writer interface for Y4MSink. For use in the processing pipeline.

type Y4MSource

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

func NewY4MSource

func NewY4MSource(reader io.Reader) (*Y4MSource, error)

func (*Y4MSource) GetFrame

func (s *Y4MSource) GetFrame() ([]byte, Attributes, error)

func (*Y4MSource) GetInfo

func (s *Y4MSource) GetInfo() Info

Jump to

Keyboard shortcuts

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