Repository navigation
Conversation
LeeO86
marked this pull request as ready for review
October 23, 2026 10:00
tests/nmos/amwa.sh runs the four suites against a fresh mxl-scopes node each, with an nmos-cpp registry (DNS-SD off, the platform default), then checks that the node deregisters on SIGTERM; tests/nmos/check_amwa.py fails on any result not listed with its reason in tests/nmos/amwa-expected-off.json. Adapted from mxl-audio-mixer (MIT, same author), as are the registry config and the TAI offset script. The build-and-test job runs it and uploads the results. The expected list starts empty; the first CI run gives the results. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01St7QwmonpoG9EEEqaLFXLi
The receiver replaced the caps that make_receiver wrote, so caps.media_types was missing (BCP-007-03-01 test_07 failed, IS-04-01 test_25 warned). The constraint sets are now added to those caps. tests/nmos/amwa-expected-off.json lists the 100 non-Pass results of the first CI run with their reasons: tool set-up and tear-down steps, IS-10 authorization (out of scope), the RTP-only parts of IS-05 (an MXL receiver and sender; BCP-007-03-01 tests them), the optional BCP-004-01 and BCP-002-02 details, and two manual checks (ids that survive a restart, MXL reading on activation; scope.sh covers both). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01St7QwmonpoG9EEEqaLFXLi
- /metrics also has the standard process metrics without the prefix, as the sibling functions: process_cpu_seconds_total, process_resident_memory_bytes, process_start_time_seconds, process_open_fds (from /proc/self; test). - deploy/grafana/mxl-scopes.json: updates, skipped and torn; output late and missed; analyse and render p95; input state; the luma, chroma and gamut measurements; the preview; CPU, memory, NMOS; with Grafana provisioning and a Prometheus config (as mxl-browser-source). - docker/docker-compose.demo.yaml: registry, a colour bar writer from the image, mxl-scopes with its own MediaMTX, a one-shot IS-05 route, Prometheus and Grafana (from mxl-browser-source; checked with docker compose config). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01St7QwmonpoG9EEEqaLFXLi
- deploy/k8s/deployment.yaml (G12): pod network, the standard environment, probes, the MXL root hostPath, /config on a volume, no hostIPC, the shared preview; 500m CPU and 256Mi requested, 2 CPUs and 768Mi as limits, from the lab and platform measurements. - docs/cuda-design.md: how a CUDA backend fits the engine (upload, analyse kernel with shared-memory atomics per column strip, trace kernel with the same integer tables, compacted trace groups back to the writer), the byte test against the scalar reference, the expected gain and the open points. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01St7QwmonpoG9EEEqaLFXLi
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01St7QwmonpoG9EEEqaLFXLi
- Version 1.1.0 (src/version.hpp, CMakeLists.txt; the Container workflow checks the tag against it). - docs/release-notes-1.1.0.md: image, what is new, what changes for the platform (preview settings now active, ports in own mode, widget, new metrics, in-place upgrade), resources, lab and platform numbers, known limits, what to report back. - docs/performance.md "M4": the platform's CPU and RSS per mode on the i9 and the keyed multiviewer check (from the platform, 2026-10-23), memory per mode and configuration in the lab, the 1 h two-instance soak, AMWA. - SPECIFICATION: ports confirmed, measured memory and CPU in §11 and §15; plan: M4 progress, the M2 exit check passed (multiviewer 1.4.6 CUDA), question 1 resolved; README, CHANGELOG 1.1.0, AGENTS.md. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01St7QwmonpoG9EEEqaLFXLi
- amwa-expected-off.json: the IS-04-01 DNS-SD tests are disabled by ENABLE_DNS_SD False (not IS-10); IS-05-01 test_01-08/33 are replaced by auto tests. docs/performance.md and the release notes say that AMWA does not cover IS-04 registration and heartbeats. - process_cpu_seconds_total uses number() (no exponent; test). RSS excludes the MediaMTX child. - k8s: request 384Mi; the 768Mi limit is for 1080p, UHD with a key needs about 1Gi. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01St7QwmonpoG9EEEqaLFXLi
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01St7QwmonpoG9EEEqaLFXLi
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.
This is M4 of IMPLEMENTATION_PLAN.md and the preparation for 1.1.0 (M3 and M4 ship together). It is based on #6: merge #6 first, then this PR, which then targets
main. Release notes for the platform:docs/release-notes-1.1.0.md.Commits
tests/nmos/amwa-expected-off.jsongives the reason for each of the 99 non-Pass results:capslostmedia_types(BCP-007-03-01 test_07 failed)./metrics.deploy/grafana/mxl-scopes.jsonwith provisioning, plus a Prometheus config.docker/docker-compose.demo.yaml, checked withdocker compose configonly, because its registry announces itself over mDNS.deploy/k8s/deployment.yaml: requests 500m CPU and 256Mi; limits 2 CPUs and 768Mi.docs/cuda-design.md.docs/performance.md"M4": the platform's numbers, memory per mode, the soak, AMWA;Numbers
Platform (i9, 1.0.0, 25 Hz, no preview; measured by the platform):
lumaycbcr-paradergb-paradergb-overlayycbcr-overlaylumawith a keyThe keyed scope over a picture passed on test-all with multiviewer 1.4.6 (CUDA): compose 1.56 ms, 0 late and 0 missed. This closes the M2 exit check.
Lab memory (1.1.0): 80–160 MB of the scope's own (anonymous) memory per mode and configuration. The shared MXL grains it maps come on top, and the built-in MediaMTX takes about 41 MB.
Soak, 1 h, two instances on one node (luma 25 Hz; RGB parade 25 Hz with a key; both with the preview):
Review fixes (e0c4a00, c45182b; rebased on feat/m3 51eeaaa)
ENABLE_DNS_SD = False, not IS-10; IS-05-01 test_01–08/33 are "replaced by an auto test". docs/performance.md and the release notes say AMWA does not cover IS-04 registration and heartbeats (only the stub registry in scope.sh does). No unicast DNS-SD added.process_cpu_seconds_totaluses thenumber()helper (unit test: no exponent). Docs: RSS andprocess_resident_memory_bytesexclude the MediaMTX child.Open
Incident. While trying a local AMWA run (2026-10-23, about 06:02–06:06Z), I started an nmos-cpp registry on the lab host's network for about 2.5 minutes. Its mDNS responder announced it, and at least one other node on the network (id
de10381b-…) registered to it. I stopped it. AMWA now runs only in CI, and AGENTS.md warns against running a registry on a shared lab network.🤖 Generated with Claude Code
https://claude.ai/code/session_01St7QwmonpoG9EEEqaLFXLi