Documentation ¶
Overview ¶
Package codec defines the encoder and factory interfaces for encoding video frames and audio chunks.
Index ¶
Constants ¶
const DefaultKeyFrameInterval = 30
DefaultKeyFrameInterval is the default interval chosen in order to produce high enough quality results at a low latency.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AudioEncoder ¶
type AudioEncoder interface { Encode(ctx context.Context, chunk wave.Audio) ([]byte, bool, error) Close() }
An AudioEncoder is anything that can encode audo chunks into bytes. This means that the encoder must follow some type of format dictated by a type (see AudioEncoderFactory.MimeType). An encoder that produces bytes of different encoding formats per call is invalid.
type AudioEncoderFactory ¶
type AudioEncoderFactory interface { New(sampleRate, channelCount int, latency time.Duration, logger logging.Logger) (AudioEncoder, error) MIMEType() string }
An AudioEncoderFactory produces AudioEncoders and provides information about the underlying encoder itself.
type VideoEncoder ¶
type VideoEncoder interface { Encode(ctx context.Context, img image.Image) ([]byte, error) Close() error }
A VideoEncoder is anything that can encode images into bytes. This means that the encoder must follow some type of format dictated by a type (see EncoderFactory.MimeType). An encoder that produces bytes of different encoding formats per call is invalid.
type VideoEncoderFactory ¶
type VideoEncoderFactory interface { New(height, width, keyFrameInterval int, logger logging.Logger) (VideoEncoder, error) MIMEType() string }
A VideoEncoderFactory produces VideoEncoders and provides information about the underlying encoder itself.