Repository navigation
docs(adr): record eight deliberate deviations from Netflix's source, each with its size and the upstream change that ends it (ADR-1479 to ADR-1486) - #1884
Merged
Conversation
14 of 15 tasks
lusoris
force-pushed
the
docs/adr-deliberate-upstream-deviations
branch
from
October 2, 2026 21:50
d6719ba to
79bdacd
Compare
…each with its size and the upstream change that ends it (ADR-1479 to ADR-1486) (#1884) * docs(adr): record eight deliberate deviations from Netflix's source, each with its size and the upstream change that ends it (ADR-1479 to ADR-1486) The reference for code inherited from Netflix/vmaf is Netflix's source; a difference needs an ADR. The upstream parity audit of 2026-10-02 found deliberate differences that had none of their own, or whose ADR (ADR-1033) names neither upstream's behaviour nor the size: - ADR-1479 ciede on 4:2:2: chroma flags (fork PR #1050); 0.153 on 48 of 48 frames; Netflix/vmaf#1611. - ADR-1480 speed_temporal buffers at speed_prescale above 1 (#1643); up to 195, upstream segfaults on two fixtures; Netflix/vmaf#1627. - ADR-1481 a failing extractor fails the run (#871); status only, 78 probe runs where upstream is silent and 88 where it crashes. - ADR-1482 integer adm on frames of 17 to 32 pixels (#1473, #1507); scale 3 up to 0.23; Netflix/vmaf#1599, #1600. - ADR-1483 odd-sized chroma planes round up (4f08d32); psnr_cb / cr up to 0.684 / 0.826 dB, ciede 0.198. - ADR-1484 float_ms_ssim magnitude before pow() (#641, ADR-1033 item 2); NaN upstream on the 10 px checkerboard; Netflix/vmaf#1665. - ADR-1485 apsnr of a plane without error (#641, item 1); 114 against 60 dB; Netflix/vmaf#1666. - ADR-1486 float_motion scale-1 stride (#641, item 9); up to 25.1; Netflix/vmaf#1667. Each ADR gives upstream's file and line at Netflix 9e48141b, the fork's lines, the reason found in the fork's pull request, commit or code, and the measured size from the audit. Documentation only. * fix(test): give test_cuda_motion_tiny_frames 120s timeout On an unloaded RTX 4090 test_cuda_motion_tiny_frames runs 106 cases across 9 geometries and 3 bit depths in ~24s. Under parallel host load during merge-train validation the default 30s Meson test timeout was exceeded at 30.04s (SIGTERM). Set explicit timeout to 120s matching sibling CUDA parity suites. * docs: regenerate the indexes and the citation map after rebasing
lusoris
force-pushed
the
docs/adr-deliberate-upstream-deviations
branch
from
October 2, 2026 22:29
79bdacd to
7c2c559
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Eight deliberate differences from Netflix's libvmaf get an ADR each. The upstream parity audit of 2026-10-02 found them without one of their own, or covered only by ADR-1033, which names neither upstream's behaviour nor the size of the difference. Documentation only: no code, no score and no test changes.
Each ADR gives upstream's behaviour with file and line at Netflix
9e48141b, the fork's lines, the reason as found in the fork's pull request, commit or code, the measured size from the audit, the upstream pull request or issue where one exists, and what ends the deviation.ciede4:2:2 chroma flagsspeed_temporalbuffers atspeed_prescaleabove 1admon frames of 17 to 32 pxadm20.1044f08d32b2psnr_cb/psnr_cr0.684 / 0.826 dB,ciede20000.198float_ms_ssimmagnitude beforepow()apsnrof a plane without errorfloat_motionscale-1 strideChecked and not given a new ADR, because one records the decision: D1 (ADR-1442), D2 (ADR-0125), D6 (ADR-1402), D7 (ADR-1413), D8 (ADR-1191, ADR-1325, ADR-1472), D10 (ADR-1301). Their measured sizes against upstream go into the allowlist of the parity guard (next PR).
Two upstream forms differ from the fork's without differing in value, and the ADRs say so: #1665 takes the magnitude of the structure term only, #1666 keeps the factor 2 in the ceiling. At the sync that brings them, the fork takes upstream's lines.
Also sets a 120s timeout on
test_cuda_motion_tiny_framesincore/test/meson.buildso the 106-case GPU test suite does not exceed Meson's default 30s timeout under host load.Type
docs— documentation onlyChecklist
scripts/adr/next-free.sh --claim; index rows live indocs/adr/_index_fragments/and_order.txt;docs/adr/README.mdis regenerated.Bug-status hygiene (ADR-0165)
docs/state.md— no state delta: the ADRs record behaviour that is already on master; no bug is opened, closed or ruled out.Netflix golden-data gate (ADR-0024)
assertAlmostEqual(...)score in the Netflix golden Python tests.Deep-dive deliverables (ADR-0108)
## Alternatives considered.AGENTS.mdinvariant note —docs/development/rebase-sensitive-invariants.md, entry "Deliberate deviations from Netflix's source, by ADR".changelog.d/changed/adr-deliberate-upstream-deviations.md.docs/rebase-notes.md, "Eight deliberate deviations from Netflix's source have their ADR": the fork lines a sync keeps, upstream's form, and the pull request that ends each.Reproducer
Known follow-ups