Skip to content

ADR-0023: Tiny-AI user surfaces span CLI, C API, ffmpeg, and training

  • Status: Accepted
  • Date: 2026-04-17
  • Deciders: Lusoris, Claude (Anthropic)
  • Tags: ai, dnn, cli, framework

Context

Tiny-AI is not usable unless every real consumer has an entry point: CLI users, libvmaf C clients, ffmpeg pipelines, and model authors. A subset would leave one of these groups with no supported path.

Decision

We will ship all four user surfaces: (1) vmaf CLI --tiny-model PATH, (2) libvmaf C API vmaf_use_tiny_model() in new dnn.h + extended model.h, (3) ffmpeg patches — option on libvmaf filter + new vmaf_pre filter, (4) standalone vmaf-train Python CLI.

Alternatives considered

Option Pros Cons Why not chosen
C API only Smallest CLI and ffmpeg users unsupported Rejected
CLI + C API Covers most ffmpeg pipelines excluded Partial
All four (chosen) Every consumer class reachable Larger surface Rationale: not duplicates — C API is the single mechanism; CLI/ffmpeg are thin wrappers; vmaf-train is the training surface (separate concern)

Consequences

  • Positive: any consumer has a documented path; tiny-AI is a first-class feature, not a gated experiment.
  • Negative: four places to keep in sync.
  • Neutral / follow-ups: ADR-0042 requires docs for each surface in the same PR.

References

  • Source: Q5.4
  • Related ADRs: ADR-0020, ADR-0022, ADR-0042