Milestones
List view
On-device subjective study tool: participants run the study locally from freely licensed sources, results pool through signed, opt-in result files. Go ports of the score recovery and codec comparison tools.
No due date•0/1 issues closed3.0: host C and C++ deleted, native device sources on the named exception list.
No due date•0/2 issues closedP4+P5: GPU host runtimes and dispatch, then kernels where a Rust toolchain reaches parity.
No due date•0/2 issues closedP3: engine core, CLI and tools.
No due date•0/2 issues closedP2: predict, pooling and model sets.
No due date•0/1 issues closedP1b: remaining extractors and SIMD incl. new ISAs and CPU tuning targets.
No due date•0/1 issues closedP1a: default-model extractors and their SIMD in Rust.
No due date•0/1 issues closedRetrain on the expanded corpus with the feature mix chosen in 1.4; model cards, A/B against the v1 models, benchmarks and tuning. Every minor release runs its own candidate cycle: features, then deduplication + tests + bug fixing, then capability tables + benchmarks/tuning, then training when models change, then the release. ## Order #2242 after the 1.4 decision record; #2262 predictor evaluation alongside.
No due date•0/2 issues closedA/B evaluation harness for metrics and features against subjective datasets, the best current feature mix per use case, and licence-cleared training-corpus expansion. Every minor release runs its own candidate cycle: features, then deduplication + tests + bug fixing, then capability tables + benchmarks/tuning, then training when models change, then the release. ## Order #2240 harness first, on the fixture pack (#2313) and presets (#2315); then #2241 corpus expansion; then #2270 and #2273 (need the session score #2269 and the result document #2311 from 1.1); #2261 research ADRs alongside.
No due date•2/11 issues closedRolling. The fork adds and changes a lot, so the codebase needs repeated slimming: duplicated twins (.c/.cpp pairs, Go/Python shadows), dead scaffolds, redundant GPU kernel templates, the clang-tidy ratchet trending down, and removing surfaces that a newer one replaced. Recurring by design — each pass lands as a measurable decrease (baseline, LOC, or duplicate count), not a one-off cleanup. ## Order Newcomer entry points first (#2338, #2339, labelled good first issue); recurring deduplication follows the existing order.
No due date•6/16 issues closedRolling, not tied to a single release: model retraining programme, benchmark baselines, tuning sweeps, and the corpus/dataset work that feeds them. ## Order Published benchmarks and baselines (#1245, #1255) come as reproducible bundles on the fixture pack (#2313) and the result document (#2311).
No due date•0/4 issues closedBreaking changes only: the libvmaf.h compatibility layer removed (ADR-1852 D7: warnings opt-in 1.0, default 1.1, removed 2.0), C++23 core internals, the language-modernization remainder (#1254). Cloud-native work moved into 1.0.0 (2026-10-06).
No due date•1/7 issues closedNew metrics, each with exact CPU / GPU twins: butteraugli-family distance (#2165), spatio-temporal colour visible-difference predictor (#2167), no-reference neural model (#2166), picks from the research watch (#2168). Every minor release runs its own candidate cycle: features, then deduplication + tests + bug fixing, then capability tables + benchmarks/tuning, then training when models change, then the release. ## Order #2337 extractor SDK first (it defines how later metrics are contributed; the in-tree metrics below are not blocked by it), then #2165, #2167, #2166, then picks from #2168, then #2272 artefact detectors (needs #2311).
No due date•0/12 issues closedZero-copy encoder quality feedback and embedding (#2067 remainder), CUDA on Linux aarch64 (#2164), exactness and throughput on Arm servers (#2156), mobile and web targets: iOS / iPadOS (#2246), Android incl. a GPU compute backend study (#2247), WebAssembly (#2248). Every minor release runs its own candidate cycle: features, then deduplication + tests + bug fixing, then capability tables + benchmarks/tuning, then training when models change, then the release. ## Order Needs the 1.1 distribution manifest (#2314) and result document (#2311). #2067 epic and its device-frame work first, then #2156 and #2164 (hardware evidence), then #2246, #2247, #2248 (packages from #2314), then #2336 browser demo (needs #2248 and the viewer #2316).
No due date•0/19 issues closedOBS Studio plugin, reference-grade encoder sign-off (#2148), vmaf-tune adapters for non-FFmpeg encoders (#2147), vendor-neutral reference kit (#2144), integrator pack / CRA mapping (#2146), signed provenance assertion (#2159). Every minor release runs its own candidate cycle: features, then deduplication + tests + bug fixing, then capability tables + benchmarks/tuning, then training when models change, then the release. ## Order Unblockers first (each later item is built on them, one implementation per behaviour): 1. #2162 external-tool contract (lands in 1.0.0), then #2311 result document, #2312 error catalogue, #2313 fixture pack, #2314 distribution manifest, #2315 presets and config file. 2. On the result document: #2274 gate, #2269 session score, #2271 bitstream facts, #2159 signed provenance export, #2316 viewer, #2317 frame dump, #2327 quality metrics for dashboards, #2239 OBS plugin. 3. On the distribution manifest: #2318 Python package, #2319 package managers, #2320 Rust and Go registries, #2321 clients, #2326 VapourSynth plugin, #2146 integrator pack. 4. On the above: #2322 CI action, #2323 doctor, #2324 completions and man pages, #2325 compatibility matrix, #2147 encoder adapters, #2144 reference kit, #2148 epic, #2251 LCEVC. 5. Docs: #2328 executable docs first, then #2329 troubleshooting, #2330 tutorials, #2331 migration, #2332 concepts, #2333 onboarding; then #2334 quick-start container, #2335 samples. 6. Last: #2280 (needs the patent review).
No due date•0/55 issues closedThe fork's first release is staged by evidence, not by one mixed queue. - RC1 (`v1.0.0-rc.1`): converge correctness and prove that outside CPU/CUDA/SYCL/HIP/Metal testers can produce a reproducible hardware report. Exit requires no confirmed actionable release blocker, no untriaged docs/state.md row, and required checks green on the exact candidate head. - RC2 (`v1.0.0-rc.2`): stabilisation candidate. The dependency and fix train since rc.1 meets the same exit bar as RC1; no benchmark or model-quality claims. - RC3 (`v1.0.0-rc.3`): twin exactness. Every GPU and SIMD twin returns the CPU extractor's scores bit for bit, or carries a measured tolerance with an ADR (#1721). - RC4 (`v1.0.0-rc.4`): the first full Rust metric, zero-copy device-frame import, the VMAFx API with generated surfaces and bindings, the FFmpeg and GStreamer integrations, provenance, input formats, observability and the cloud-native platform (#1723). - RC5 (`v1.0.0-rc.5`): deduplication and `libgpudispatch` (#1724, #1455), tool consolidation (live alignment, interlaced video, region masks, container input, bits per pixel and BD-rate, HandBrake, one implementation per tool), the new metrics with exact twins, containers, Helm and the operator. - RC6 (`v1.0.0-rc.6`): GPU capability source of truth. A generated per-vendor table in the repository drives dispatch and kernel parameters; every kernel is compiled and audited for every target (#1725). - RC7 (`v1.0.0-rc.7`): CPU capability source of truth. A generated table of the CPU features every SIMD kernel needs, a disassembly audit against the runtime gates, and every dispatch level run bit-exact against scalar under emulation (#1885). - RC8 (`v1.0.0-rc.8`): benchmark, profile, and tune on available hardware (#1245), while preserving every correctness contract of RC1–RC7. - RC9 (`v1.0.0-rc.9`): run the real one-shot model retraining only after the accepted RC8 tree is clean and frozen (#1246; remaining tiny-AI training in #1242). - Final v1.0.0 follows accepted RC9 evidence and any required repair candidate. No candidate takes work from a later one: benchmarking and tuning stay out of RC3–RC7, and training never starts before RC8 evidence is accepted. Ordinary Renovate/version PRs remain allowed in every candidate through normal review, pinning, build, test, and security gates. A merge after evidence collection invalidates that exact-head evidence and requires targeted revalidation. Recurring post-1.0 benchmark/model work remains in #1255 under milestone 6. Governing decisions: ADR-1341 for the evidence rules; the candidate mapping is ADR-1490 (PR #1888), which replaces ADR-1421's numbering from RC7 on; the scope of each candidate follows ADR-1868, ADR-1880, ADR-2001 and ADR-2342.
No due date•1083/1195 issues closed