Skip to main content

iamf-sentinel-pro — L3 rendered QC plugin for iamf-sentinel

The free core (iamf-sentinel) reads the file. This plugin decodes it and measures the truth:

  • L3 rendered QC — decode each mix presentation × declared layout through the reference decoders (as subprocess oracles) and measure BS.1770-4 integrated loudness and true peak with an independent, calibrated implementation — catching declared-vs-measured loudness lies that descriptor checks can't see.
  • Channel identity on decoded PCM — catches the pure essence-misroute corruption (descriptor-clean, PCM-scrambled) that even L2 cannot see from the bitstream alone.
  • Source-referenced ADM fidelity QC (adm-compare, S-33x) — compares an IAMF encode against its BW64/ADM master.
  • Platform profile packs (e.g. YouTube ingest) with the loudness-measurement calibration that keeps correct files from being flagged at tight tolerances.

The core discovers this package by import (see PLUGIN_SEAM.md): its presence enables sentinel validate --l3, diff --render, adm-compare, and the profile packs in sentinel_pro/profiles/.

Free software, Apache-2.0.

Code comments throughout cite an internal numbered design docset (doc NN), ADRs, and pre-registered expectation labels — DESIGN-NOTES.md explains the notation and indexes every cited document.

Install & backends

pip install iamf-sentinel-pro            # kernel-backed: no scientific stack required
pip install "iamf-sentinel-pro[numpy]"   # adds the numpy reference backend (quotes: zsh eats bare brackets)

Measurement runs on the compiled sentinel-dsp kernel when the binary is present ($SENTINEL_DSP explicit path, else $PATH; SENTINEL_DSP=off forces the reference path) or on the numpy reference implementation. A present-but-broken kernel is an execution error, never a silent fallback. adm-compare and diff --render always need the [numpy] extra.

Build the kernel:

cmake -S sentinel-dsp -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j2

Every change to either measurement implementation is gated by the differential suite (sentinel-dsp/tests/differential.py + tests/test_dsp_backend.py).

L3 and adm-compare additionally need the reference toolchain (decoder_main / iamfdec) and, for adm-compare, EAR (ear-render). The OCI recipes under oci/ package the toolchain reproducibly; oci/layer-scan.py is the release-CI hygiene check.

Related projects

  • iamf-sentinel — the free, stdlib-pure core this package plugs into (L1/L2 + CI contract)
  • iamf-loom — manifest-driven IAMF packager; its validation gate uses this stack's measurement
  • iamf-adm-corpus — synthetic ADM corpus + harness behind the adm-compare method
  • iamf-sentinel-mcp — MCP server exposing the validator and packager to agent runtimes

License

Apache-2.0 (see LICENSE / NOTICE). This tree was designed as the commercial half of an open-core split; the project has since adopted a full open-source posture and both sides are Apache-2.0 — the plugin seam remains as architecture, not a license boundary. The measurement DSP (Python and C++), the ADM reader, and all checks are original clean-room works (ITU-R BS.1770-4, ITU-R BS.2088 / EBU Tech 3285, ISO/IEC 14496-12). Reference decoders and EAR are invoked only as subprocess oracles. Commercial support and consulting are available — see the core repo's SUPPORT.md.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iamf_sentinel_pro-0.3.0.tar.gz (39.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iamf_sentinel_pro-0.3.0-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

Details for the file iamf_sentinel_pro-0.3.0.tar.gz.

File metadata

  • Download URL: iamf_sentinel_pro-0.3.0.tar.gz
  • Upload date:
  • Size: 39.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for iamf_sentinel_pro-0.3.0.tar.gz
Algorithm Hash digest
SHA256 15d291c698408a7aa7de4a40cb6c213e860b8e112f9f6e24987cd4dfe1b6ffb1
MD5 3a1adf5e536524c9315214744eb38379
BLAKE2b-256 0605a98498d82f28064aa1167835488d5878d8262d0ca226c8885c84dc8c7f7a

See more details on using hashes here.

File details

Details for the file iamf_sentinel_pro-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for iamf_sentinel_pro-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06106b4e447ce810ab2d3e8ef15db4cf5be3ec254696c748543acbaa5f016626
MD5 4259c689f341f48d4cc96207f31b67e3
BLAKE2b-256 130412c72159f1ba403b174b8ca818d33dae5c63e3551f94362f5ecf0c6399ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page