FilterStep

sealed interface FilterStep

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

  • Values, not magic: 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: the typed set below covers the few dozen filters most chains use; Raw carries any chain the typed set lacks, verbatim.

  • Capability-honest: 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.