FilterStep

sealed interface FilterStep

The typed filter DSL (KD-1): a compilation layer onto the description STRINGS the existing FilterGraph.buildVideo/buildAudio already take. Nothing here crosses into C; the laws that bind it:

  • Values, not magic (law 4): every construct is a plain data class first, and FilterChain.compile is a pure function whose output is inspectable, printable and golden-tested.

  • Curated core plus escape hatch, never a mirror (law 2): the typed set below is the register's few dozen; Raw carries any chain the typed set lacks, verbatim.

  • Capability-honest (law 6): FilterChain.requireAvailable asks FFmpeg.hasFilter for every typed step and fails TYPED naming the missing filter; it never silently no-ops. Raw steps are the caller's own claim and are exempt, which their KDoc says.

Inheritors

Properties

Link copied to clipboard
abstract val filterName: String?

The FFmpeg filter name, for capability checks. Null for Raw, whose content is opaque.

Functions

Link copied to clipboard
abstract fun compile(): String

The compiled name=args fragment, exactly as it joins the description string.