package ingest

import "context"

type Source interface {
	Descriptor() SourceDescriptor
	Start(ctx context.Context) error
	Stop() error
	Chunks() <-chan PCMChunk
	Errors() <-chan error
	Stats() SourceStats
}

// StreamTitleSource is an optional extension for sources that expose
// title/metadata updates (for example ICY StreamTitle).
type StreamTitleSource interface {
	StreamTitleUpdates() <-chan string
}
