ADRs tagged api¶
Auto-generated by scripts/docs/generate-adr-by-tag.sh. Edit ADR Tags: lines to update.
68 ADR(s) carry this tag.
| ID | Title |
|---|---|
| ADR-0102 | DNN execution-provider selection is ordered + graceful, fp16_io does a host-side cast |
| ADR-0103 | vmaf_sycl_import_d3d11_surface ships as a staging-texture H2D path, not zero-copy |
| ADR-0104 | Compile picture_pool unconditionally and size it for the live-picture set |
| ADR-0128 | Embedded MCP server in libvmaf — SSE + UDS + stdio transports, build-flag-gated |
| ADR-0135 | Port Netflix#1424 — expose built-in VMAF model-version iterator |
| ADR-0152 | vmaf_read_pictures rejects non-monotonic indices |
| ADR-0154 | vmaf_score_pooled returns -EAGAIN for pending features |
| ADR-0156 | CUDA backend: graceful error propagation (Netflix#1420) |
| ADR-0157 | CUDA preallocation memory leak fix + vmaf_cuda_state_free public API (Netflix#1300) |
| ADR-0170 | vmaf_pre extended to 10/12-bit and optional chroma (T6-4) |
| ADR-0209 | Embedded MCP server — scaffold-only audit-first PR (T5-2) |
| ADR-0238 | Vulkan VmafPicture preallocation surface (API parity with CUDA / SYCL) |
| ADR-0374 | Build-time-optional public APIs return -ENOSYS when disabled |
| ADR-0379 | libvmaf Symbol Visibility — Hide Internal Symbols with -fvisibility=hidden |
| ADR-0402 | MCP runtime v2 — UDS transport + real compute_vmaf binding |
| ADR-0436 | MCP server backend-selector parity |
| ADR-0486 | Codify the three-function GPU backend context-API contract in docs |
| ADR-0550 | Auto-resize input plane to NR tiny-model dims + --tiny-resize flag |
| ADR-0638 | MCP P1 surface — vmaf-tune integration, list_extractors, describe_model, progress notifications |
| ADR-0646 | Route Attached DNN Multi-Output Tensors |
| ADR-0660 | Tiny-AI extractors check DNN availability before model paths |
| ADR-0767 | Phase 4b.8 — libvmaf C ABI Break for VMAFx v4.0.0 |
| ADR-0787 | 0787-libvmaf-api-error-path-audit.md |
| ADR-0788 | Doxygen doc-comment and @thread-safety tags on public C-API |
| ADR-0797 | vmafx-server OpenAPI REST contract |
| ADR-0804 | Add vmaf_context_get_backend — additive ABI introspection |
| ADR-0806 | VmafFeatureDictionary caller-ownership contract |
| ADR-0928 | VmafPicture v2 — explicit per-backend GPU state |
| ADR-0932 | iter.Seq[T] companion APIs for single-pass Go collections |
| ADR-0933 | gRPC streaming for multi-frame scoring (ScoreStream) |
| ADR-0953 | Doxygen public-API build is warning-clean |
| ADR-0972 | Public headers — replace ISO-reserved __VMAF_*__ include guards with LIBVMAF_*_H (Round 27 audit A.1, SEI CERT DCL37-C) |
| ADR-1032 | vmaf_init double-init guard and vmaf_close pointer-contract documentation |
| ADR-1064 | Wire score_fmt option on all vmaf FFmpeg filters |
| ADR-1166 | Harvest stale upstream Netflix/vmaf reports, verify each against the fork, fix what still bites |
| ADR-1188 | Percentile temporal pooling in the public C API |
| ADR-1199 | Order caller-written CUDA pictures once per frame, at the dispatch point |
| ADR-1288 | An MCP tool schema that fails to marshal is fatal, never defaulted |
| ADR-1315 | Drive libvmaf public C API Doxygen warnings to zero and fail closed |
| ADR-1337 | C++ Placement New Visibility — Hide Inline Run-time Symbols |
| ADR-1359 | The CLI maps --feature <cpu-name> to the explicit --backend's twin |
| ADR-1396 | vmaf_init() treats its handle as output-only again |
| ADR-1429 | vmaf_read_pictures() accepts an index that skips values and documents what the motion scores do |
| ADR-1431 | vmaf_read_pictures() owns the pictures it is given on every return |
| ADR-1520 | Feature-vector tiny models request their inputs, score at flush, and fail on a missing input |
| ADR-1523 | HIP twins run on the device of the imported state |
| ADR-1679 | The Metal IOSurface import reads NV12 and P010 surfaces itself, and the FFmpeg filter imports whole frames |
| ADR-1685 | A post-1.0 embedding milestone: zero-copy device-frame import with fences, asynchronous window scores, and an unchanged licence |
| ADR-1688 | The SYCL zero-copy path admits only extractors that compute from the shared luma, and names every other one |
| ADR-1755 | The feature collector owns the models it mounts |
| ADR-1822 | vmaf_picture_convert ships additively, with the source colour as an argument |
| ADR-1829 | RC4 owns the whole device-memory import API, not only the first full Rust metric |
| ADR-1852 | A new VMAFx C API generated from one definition, libvmaf as its compatibility layer, and VMAFx-named FFmpeg filters (RC4) |
| ADR-1897 | VMAFx ABI numbering before 1.0: additions take a patch bump and join the current minor's version node |
| ADR-1906 | VMAFx core API semantics: per-context logging, size negotiation, frame and model references |
| ADR-1918 | Samples above 2^bpc - 1 are invalid input; an opt-in check refuses them |
| ADR-1929 | VMAFx device frames, fences and the import rule: the shared contract the backend lanes implement |
| ADR-2023 | VMAFx device frames on CUDA: one library stream per device, fences on it, release events recorded where the frame is released |
| ADR-2044 | VMAFx option groups generate every scoring surface, and the scoring API is a versioned contract |
| ADR-2073 | The provenance record is canonical JSON with one digest over the configuration and the scores, the library writes it into every report, and --verify-provenance re-runs it |
| ADR-2074 | VMAFx window scores: a completion thread per context, one pooling implementation, the window clock and the in-flight bound |
| ADR-2090 | Derive motion2 / motion3 frame by frame: final once the frame after is scored, the same statements as the flush |
| ADR-2092 | VMAFx device frames on HIP: one library stream per device copies every frame for the twins, dma-bufs as external memory, sync_file checked on the host |
| ADR-2093 | HDR-VMAF groundwork from upstream, with the input colorimetry on the context |
| ADR-2094 | libvmaf.so.3 is a compat library on the exported VMAFx API; the engine compiles its libvmaf bodies under engine names, and backends keep theirs until their lanes land |
| ADR-2132 | HIP imports GL textures through EGL dma-buf export; the runtime's GL interop is not used |
| ADR-2133 | Device import takes 4:2:2 and 4:4:4: semi-planar NV16 / NV24 family and packed Y210 / Y410, one CPU reference, converted on the device |
| ADR-2949 | vmaf_picture_wrap ships with upstream's signature, on vmafx_frame_wrap_host, with the fork's plane rules |