Capabilities¶
This is the canonical current capability status. Real-media acceptance confirms that Logic imports OpenJOC reconstructed ADM and that a Logic-authored re-export is accepted by Dolby Encoding Engine. Direct ingestion of the byte-exact OpenJOC-authored file is not claimed. Historical release state belongs to the CHANGELOG and the historical archive; dated engineering evidence belongs to the research and provenance records.
Status vocabulary¶
The explicit render-scene workflow is admitted for static caller-bound mono
sources, direct or uniform-partitioned binaural convolution, and the strict
J5R8 SimpleFreeFieldHRIR CDF-1 or NetCDF-4/HDF5 SOFA subset. It is not a JOC or authored-object
renderer.
ADMITTED— supported within the stated contract.ADMITTED_WITH_SCOPE— supported only within an explicit bounded scope.DIAGNOSTIC_ONLY— emitted for analysis, not a semantic product claim.PARTIAL— an explicit subset is supported; the full capability is not.UNRESOLVED— evidence is insufficient for an implementation claim.NOT_ADMITTED— deliberately outside the current contract.EXPECTED_STRICT_REJECTION— rejection is the correct result for the input.
E-AC-3 JOC Object decoding¶
For supported carriers, OpenJOC extracts and parses in-band EMDF, decodes the supported OAMD metadata prefix/timeline and JOC reconstruction payload, and emits carrier-local ReconstructionBasis signals. The exact carrier-local JOC/OAMD object association, experimental spatial rendering, and reconstructed ADM export each have separate scope gates below.
Current matrix¶
| Area | Capability | Status | Evidence boundary | Important scope |
|---|---|---|---|---|
| Input | Raw E-AC-3 parsing and bounded streaming | ADMITTED |
Controlled carriers, public syntax, and grouped short-block streaming tests | Full real-stream codec fidelity remains scoped |
| Input | Seekable ordinary MP4/M4A with one E-AC-3 track | ADMITTED_WITH_SCOPE |
Container and sample-cursor regressions | Uses ffprobe/ffmpeg; generic ordinary-container path remains separate from explicit CMAF validation |
| Input | ETSI CMAF E-AC-3 JOC sample carriage | ADMITTED_WITH_SCOPE |
ec-3/dec3 validator, synthetic init + fragmented fixture, byte-exact sample extraction, and shared in-band classifier gate |
One I0 plus optional D0, six blocks/1,536 samples, 48 kHz Core subset; synthetic carriage evidence only; legacy AC-3 core, D1+, short blocks, and Type 2 remain outside the CMAF claim |
| Base E-AC-3 | Ordinary base decode and channel/LFE labels | ADMITTED_WITH_SCOPE |
Public syntax, topology, TDAC and state tests | Not a speaker renderer; cross-decoder fidelity remains incomplete |
| Coding tools | Coupling, SPX, AHT, rematrix | ADMITTED_WITH_SCOPE |
Normative/public-syntax numerical and state harnesses | Some real-producer activation and full PCM fidelity remain open |
| Substreams | General E-AC-3 I0 plus ordered D0..D7 assembly | ADMITTED_WITH_SCOPE |
Chanmap, atomic assembly, bounded per-dependent state, classifier, and synthetic end-to-end tests | CMAF and legacy AC-3 combinations remain D0-only; Type 2 remains without dependents; no real multi-dependent media claim |
| Substreams | ETSI short-block frame-set grouping | ADMITTED_WITH_SCOPE |
TS 102 366/TS 103 420 contract audit, convsync boundary checks, 1/2/3-block cumulative grouping, I0+D0..D7 state continuity, and synthetic end-to-end JOC tests |
General carriage groups ordered programme sets until six cumulative blocks / 1,536 samples; CMAF Annex E remains six-block per syncframe and D0-only; validation is synthetic E2E |
| E-AC-3 JOC | In-band Object decoding: EMDF extraction, supported OAMD prefix/timeline, and JOC reconstruction payloads | ADMITTED_WITH_SCOPE |
Bounded E-AC-3 auxiliary/EMDF extraction and profile parsing; OAMD prefix/timeline tests; JOC syntax and full/sparse reconstruction tests; synthetic end-to-end decoder, scene, render, and ADM validation | Supported carriers and profiles only; vendor continuation is partial; JOC/OAMD pairing is admitted only under the exact binding gate below; full real-stream decoder fidelity and authored-object identity are not claimed |
| OAMD | Normative metadata prefix and metadata-only timeline | ADMITTED_WITH_SCOPE | Normative parser and controlled state tests | Complete vendor trim continuation is unavailable |
| OAMD | ETSI_STRICT profile | ADMITTED | Published ETSI validation rules | Observed raw warp=3 is ReservedWarpMode and is rejected |
| OAMD | OBSERVED_VENDOR_COMPAT profile | PARTIAL | Explicit observed-signaling acceptance and deviation evidence | Continuation is retained opaquely; no vendor semantic interpretation |
| Scene | Metadata-only ObjectScene | ADMITTED | Schema, timeline, assembly and atomicity tests | ResolvedWithinCarrier is reserved for the exact decoded-JOC/OAMD profile below; authored identity remains unresolved |
| Reconstruction | ReconstructionBasis rows | ADMITTED_WITH_SCOPE | Public JOC output-object contract, deterministic numerical/continuity tests, and sanitized scene vectors | Rows are decoded JOC output-object PCM within the admitted carrier profile; they are never authored-object PCM or source stems |
| Binding | Decoded JOC PCM ↔ OAMD dynamic metadata | ADMITTED_WITH_SCOPE | Sanitized clean-room contract, typed ordinal gate, positive/negative vectors, actual-count scene assembly tests | Exactly 15 JOC objects + no bed + one leading Base LFE + no ISF + 15 dynamic + 16 total; no heuristic or authored identity claim |
| Binding | Reconstructed dynamic ADM Objects from decoded JOC Objects | ADMITTED_WITH_SCOPE | Bounded metadata preflight, typed binding profile, deterministic position-block export, strict/best-effort policy tests, independent ADM validation | Generated Objects carry decoded OAMD movement within the exact ordinary or exact observed raw3-compatible profile; structural/decoded-scene correctness does not guarantee native JOC perceptual localization equivalence; unsupported properties/profiles remain neutral or reject |
| Binding | Unvalidated JOC binding profiles | UNRESOLVED | Explicit admission rejection and report reason | Bed, ISF, alternate-LFE, count/order-mismatched, unknown compatibility deviations, incomplete-Base-LFE, and other unvalidated profiles are not dynamically bound |
| Components | Typed decoded-component manifest | ADMITTED | diagnostics/components.json separates Base, Base LFE, indexed RB coordinates, RcLfe boundary, and the carrier-local binding state | PCM-free layout; no authored-object identity |
| JOC bridge | Codec-domain streaming reconstruction input and readiness gate | ADMITTED_WITH_SCOPE | JocSpatialFrameBridge, absolute SampleRange, finite/dimension checks, synthetic linearity/partition tests, readiness census | T(t) remains unresolved; no authored-object semantic binding |
| JOC bridge | Opt-in codec-coordinate spatial projection and accumulation | ADMITTED_WITH_SCOPE | JocSpatialBridge, topology binding, spatial projection, Q32 gain scheduling, linear accumulation, raw3 preservation, and partition tests | Experimental maturity; bridge/operator state remains unresolved and is separate from scoped decoded-object ADM binding; official runtime oracle not independently confirmed |
| JOC rendering | Real supported E-AC-3 JOC to preset speaker WAV/CAF workflow | ADMITTED_WITH_SCOPE | render-joc decoder/bridge/output integration tests, automatic bridge-control assembly tests, 2.0 topology and Lo/Ro/Lt/Rt numeric tests, preset geometry, topology/count/LFE/order/mask/semantic-CAF checks, synthetic arbitrary-layout and 24-channel bridge tests | Experimental 2.0 plus 5.1, 5.1.2, 5.1.4, 7.1, 7.1.2, 7.1.4, 7.1.6, 9.1, 9.1.2, 9.1.4, 9.1.6, and 22.2 paths; all use one generic full-XYZ/N-layer data-driven projector and separate LFE ownership; 7.1.6 and the 9.1 family are semantic CAF-only, while 22.2 writes explicit unmasked 24-channel WAV or richer CAF metadata; --topology is optional and remains a complete explicit override/test input; generic library layouts remain supported; no authored-object binding or vendor-fidelity claim |
| JOC downmix profiles | ETSI Table 47/48 joc_dmx_config_idx 0..4 semantic admission and reconstruction-input binding | ADMITTED_WITH_SCOPE | Parser width checks, full/sparse matrix causal checks, synthetic I0+D0 E-AC-3 carriage for idx2/idx3/idx4, separate compatibility/JOC planes, OAMD binding, LFE checks, and 5.1/7.1.4 speaker rendering | idx2 is 5.X+2 with L R C Ls Rs Tfl Tfr; idx3 is 5.X with the signalled 90-degree phase-shift configuration; idx4 is 5.X+2 with that configuration. The JOC stage treats the phase wording as signalling only and applies no additional phase DSP. idx5..7 remain rejected; no real full-stream idx2/idx3/idx4 evidence is claimed |
| JOC rendering | Common-profile Stereo and standard flat-7.X carriage | ADMITTED_WITH_SCOPE | Exact common-profile contribution test, Flat-7.X Speaker 2.0 one-hot identity/mirror gates, and transparent E-AC-3-I0 and original-AC-3-I0 fixtures with D0, idx=1, seven-input reconstruction, Stereo and 7.1.4 | Common Base-LFE + 15-dynamic-object Stereo uses I0 compatibility PCM without direct reconstructed-object accumulation. When assembled Flat-7.X PCM is the selected Stereo source, the canonical Lo/Ro/Lt/Rt matrix admits distinct Lrs/Rrs rear-surround rows with the existing same-side rule and normative overflow scaling. Flat-7.X means idx=1 and L R C Ls Rs Lrs Rrs; reconstruction uses assembled I0+D0. Annex-J original-syntax I0 is limited to bsid 6/8, 48 kHz, CRC-valid six-block core plus E-AC-3 D0; only synthetic full-stream validation is claimed. |
| JOC rendering | Real supported E-AC-3 JOC to stereo generic/user-SOFA binaural WAV | ADMITTED_WITH_SCOPE | Virtual-speaker integration tests, bundled SADIE II resource round-trip/coverage, exact HRIR identity, delay-aligned spherical interpolation, azimuth-wrap and sparse-data tests, sample-rate preflight, direct-reference equivalence, partitioned equivalence, LFE policy, reset, and tail tests | Uses the default virtual field 7.1.4 unless --virtual-layout is supplied; --binaural defaults to offline SADIE II D1 / KU100, and --binaural-hrtf <ID> selects sadie-ii-d1-ku100 or sadie-ii-d2-kemar (D2 / KEMAR); --sofa selects a user SOFA; selected HRTF data must provide exact or safely interpolatable directions for every non-LFE virtual speaker; CLI defaults LFE to exclude, with explicit equal-power-dual-mono available; output is always two-channel OpenJOC speaker virtualization, not a vendor/direct-object binaural claim |
| JOC layout engine | Canonical preset and arbitrary user-defined geometry up to 64 output channels | ADMITTED_WITH_SCOPE | Public SpeakerLayout/SpatialLayout plus JocSpatialBridge, versioned custom JSON, irregular 3/4/7/11/13/17/31-channel geometry, validation rejects, arbitrary-order and 24-channel tests | Preset names remain the ordinary CLI path; --layout-file is advanced; custom WAV is intentionally unmasked and CAF carries coordinates; downstream host/device geometry remains separate |
| Integration | Headless Rust OpenJocSession / OpenJocConfig | ADMITTED_WITH_SCOPE | Session lifecycle, complete-AU packet validation, owned interleaved f32 PCM, timestamps, reset/flush/drain, multi-instance, and latency tests | One serial caller per session; arbitrary byte fragmentation, multi-AU pushes, file I/O, and CLI parsing are outside the packet API |
| Integration | Versioned C ABI 1.7 | ADMITTED_WITH_SCOPE | Public openjoc.h, preserved complete-AU decoder, custom geometry, bounded classifier/stream bridge, positive JOC admission, live snapshots, D1/D2 selection, ABI 1.7 orientation pull API, legacy v1.6 padding canary, short-prefix size checks, C11/C++ compilation, instance-owned errors, panic containment | Experimental ABI; compatibility may evolve during OpenJOC 0.x; orientation defaults off and is limited to explicit opt-in sessions |
| Integration | Windows DirectShow / LAV Filters OpenJOC Audio Decoder | ADMITTED_WITH_SCOPE | Public LAVFilters-OpenJOC fork/tag; strict raw/MP4 DirectShow capture proves exact media types and sample delivery for Stereo, Binaural, 5.1, 7.1, 5.1.2, 5.1.4, 7.1.2, and 7.1.4; endpoint probes preserve VB-Audio WaveOut success, VB-Audio DirectSound rejection, and Realtek DirectSound success; positive JOC admission, ordinary E-AC-3 isolation, passthrough precedence, seek/EOS/reopen/policy switching, side-by-side install, uninstall, and stock LAV rollback | One exact 48 kHz WAVEFORMATEXTENSIBLE IEEE-float proposal per explicit policy, with no fallback; AUTO_NOT_RELIABLE; Stereo default; no endpoint-name inference, Bass Management, or physical-subwoofer routing; physical multichannel hardware remains unavailable/unverified |
| Integration | Native FFmpeg libopenjoc source wrapper | ADMITTED_WITH_SCOPE | Reproducible FFmpeg 9.0.1/master patch, pkg-config detection, receive-frame callback, explicit named selection, stock-E-AC-3 safety, raw/MP4/Matroska private-media tests, seek/flush/drain/multi-instance tests, and full-program binaural/7.1.4/22.2 parity | Requires a patched custom FFmpeg build with dynamic OpenJOC; the project provides source patches/builds but does not claim upstream FFmpeg support |
| Integration | mpv player patchset and OpenJOC Player Bundle | ADMITTED_WITH_SCOPE | Clean mpv 0.41.0/master patch application, positive bounded JOC classifier, ordinary-E-AC-3 isolation, explicit decoder override, binaural transport, physical 7.1.4/9.1.6/22.2 channel-map paths, passthrough separation, and native macOS/Linux/Windows package qualification | Project-provided custom mpv/FFmpeg builds; bundles are not official upstream distributions; Linux/Windows physical speaker hardware remains outside the qualification boundary |
| Interchange | Reconstructed RIFF/RF64 ADM BWF export | ADMITTED_WITH_SCOPE | Production bounded-memory compressed-media preflight/direct writer, conditional decoded-JOC dynamic metadata path, independent seek-based RIFF/RF64/ds64/Atmos-profile XML/CHNA/public-DBMD validator, legal room-centric 5.1 LFE transport bed, transactional cleanup, signed 24-bit PCM, mapping report, scale high-watermarks, and strict unsupported-profile rejection | Exact admitted profile exports generated dynamic Objects with position blocks; unsupported profiles retain neutral best-effort Objects or reject strict; original ADM identity/master and direct DEE ingest remain unclaimed |
| Ecosystem | OpenJOC SDK, custom FFmpeg bundle, and feature-enabled GStreamer plugin pack | ADMITTED_WITH_SCOPE | Extracted package manifests/checksums, license/private-path scans, C consumer build/run, FFmpeg/ffprobe smoke, gst-inspect-1.0, and target runtime baselines | Packages are project-provided; FFmpeg is not upstream, GStreamer runtime ABI must match the recorded baseline, and C ABI 1.7 remains experimental |
| Inspection | Standards-aware offline and live stream inspection | ADMITTED_WITH_SCOPE | Versioned Inspector JSON, bounded raw/container traversal, ETSI Strict and Deployed Compatibility results, partial/truncated coverage, and LAV JOC Stream live snapshots | Offline openjoc inspect reports the traversed full stream; LAV reports only current-epoch observed-so-far data and does not establish full-stream proof |
| Diagnostics | Public synthetic JOC fixture and openjoc self-test | ADMITTED_WITH_SCOPE | Project-owned fixture generation, positive classifier, decode, 7.1.4 speaker, built-in HRTF/binaural, and ADM health report | Fixture is generated on demand; absent optional fixture checks report NOT_APPLICABLE, not silent success |
| Output policy | Dialnorm Default/Digital/Analog and optional sample-peak normalization | ADMITTED_WITH_SCOPE | Numeric dialnorm mapping, program-level ownership, final linked speaker headroom, normalization constant-gain equivalence, WAV/CAF output tests | Default is recommended calibrated decoder behavior; Analog is advanced unity-gain compatibility policy; normalization is offline sample-peak only, not LUFS or true-peak |
| Semantics | Original authored-object identity recovery | NOT_ADMITTED | Clean-room contract explicitly separates carrier-local decoded binding from authored identity | Generated names, numbering, UIDs, hierarchy, authoring metadata, and source-stem identity are not recovered |
| Semantics | Original ADM master recovery | NOT_ADMITTED | Lossy JOC input and reconstructed export report | original_adm_master_recovered=false; the original master is not recoverable from this representation |
| Semantics | Verified authored PCM or authored-object renderer fidelity | NOT_ADMITTED | Carrier-local binding does not identify source stems or reproduce a proprietary renderer | SemanticBindingState::ResolvedWithinCarrier never upgrades to authored identity or renderer parity |
| Rendering | Explicit-scene stereo and general 2D speaker renderer | ADMITTED_WITH_SCOPE | openjoc-render independent stereo/VBAP oracle, layout, trajectory, continuity and block-partition tests | Caller-supplied mono sources only; arbitrary validated horizontal layouts, adjacent-pair panning, and absolute-sample position/gain trajectories; no JOC bridge, HRTF, room model, or Dolby renderer-fidelity claim |
| Rendering | Explicit-scene 3D speaker topology, VBAP triplet renderer, and sample-accurate trajectories | ADMITTED_WITH_SCOPE | openjoc-render checked 3×3 public-math and independent great-circle oracle, tetrahedron/octahedron/partial/ambiguity, continuity, and partition tests | Caller supplies speaker order and triplets explicitly; shortest great-circle segments and linear gain only; no automatic triangulation, Delaunay/hull inference, distance, Doppler, listener orientation, LFE, HRTF, JOC bridge, or authored-object identity |
| Rendering | Static explicit-source binaural direct-FIR renderer | ADMITTED_WITH_SCOPE | openjoc-render exact-direction HRIR/provider validation, independent full-convolution oracle, ear-order, history, tail, reset, failure-atomicity, and input/tail partition tests | Caller supplies finite equal-length HRIR taps and exact static directions; fixed listener orientation, direct causal f64 FIR reference path; SOFA resolution/interpolation remains at the openjoc-sofa boundary; no moving source, room, distance, HRTF database, or JOC bridge |
| Rendering | Experimental device-independent 3DoF listener orientation for virtual-speaker binaural sessions | ADMITTED_WITH_SCOPE | Quaternion axis/compound-rotation checks, complete prepared-update validation, identity HRIR/PCM equality, off-grid orientation resolver reference cases, dynamic/static output digests, delay/history/tail and transition partition tests, epoch/sequence/reset/drain lifecycle, generated-AU stream bridge tests | Explicit Rust/C API opt-in only; fixed virtual-speaker projection and gain; resource-derived HRIR limit up to 8,192 taps; no sensor/device adapter, physical-earphone/perceptual claim, hard-real-time or sensor-to-sound latency claim; preparation-only benchmark scope and remaining limits are documented in known limitations |
| Rendering | Static explicit-source uniform partitioned binaural convolution | ADMITTED_WITH_SCOPE | openjoc-render fixed-FFT backend, Direct FIR equivalence, multiple partition sizes/sources, partial-input, exact-tail and lifecycle regressions | Caller selects one fixed power-of-two P; FFT size is 2P, input is exact P-sample partitions plus one final partial, scheduling latency is explicitly P samples; no adaptive selection, nonuniform partitions, SOFA, interpolation, moving sources, or JOC bridge |
| Rendering | Strict SimpleFreeFieldHRIR SOFA ingestion and bounded HRIR interpolation | ADMITTED_WITH_SCOPE | openjoc-sofa synthetic CDF-1 fixture, coordinate/ear/delay/malformed-file coverage, exact identity, spherical segment/triangle interpolation, delay/ITD, azimuth wrap, finite-result and sparse-coverage checks, direct and partitioned construction integration | Local read-only CDF-1 or NetCDF-4/HDF5 SimpleFreeFieldHRIR subset; SOFA convention versions 1.0–1.2, exactly two receivers, spherical degree/degree/metre sources, integer sample delays; HRIR conversion to the renderer rate (identity path when source and target rates match); external HDF5 filters, downloads, writing, and universal coverage remain out of scope; interpolation fails closed outside the measured local spherical domain |
| Rendering | Authored-object-bound ObjectScene or renderer fidelity | NOT_ADMITTED | Scoped decoded-object binding does not identify authored sources or reproduce a proprietary renderer | No authored-object identity, binaural parity, or Dolby renderer-fidelity claim |
| Release | OpenJOC 0.20.1 ordered FIR, mpv controls & correctness fixes | ADMITTED_WITH_SCOPE | Release source/version checks, native platform quality gates, D1/D2 registry and provenance verification, default D1 compatibility, bounded local SimpleFreeFieldHRIR SOFA parsing in WASM, CLI preset selection, LAV HRTF selector, JOC Stream inspection, and aggregate checksum verification | HRTFs are generic rather than individualized; WASM Custom SOFA accepts only the documented bounded format subset; 9.1.6 remains experimental, final Binaural output is two-channel, physical multichannel hardware and automatic semantic negotiation are not claimed; direct DEE ingest and exact native-renderer equivalence remain unsupported/unclaimed |
The matrix deliberately separates production status from evidence class. A numerically valid reconstruction row is not an authored object, and a real carrier accepted by the vendor profile is not proof that ETSI strict semantics are wrong.
User-visible entry points¶
openjoc inspect FILE
openjoc decode FILE -o DIR [--internal-base] [--streaming]
openjoc decode-payload --downmix FILE --joc FILE --oamd FILE -o DIR
openjoc diagnose-tools FILE --vector-id ID --json OUTPUT
openjoc census [MANIFEST] -o DIR
openjoc diagnose-oamd FILE [OPTIONS]
openjoc render-joc FILE [--topology TOPOLOGY.json] [--layout LAYOUT | --layout-file LAYOUT.json | --binaural [--binaural-hrtf <ID>] [--sofa HRTF.sofa] [--virtual-layout LAYOUT]] --output OUTPUT.wav|OUTPUT.caf [--downmix auto|loro|ltrt] [--lfe-policy exclude|equal-power-dual-mono]
openjoc --version
The CLI emits structured failures, never silently downgrades the selected
validation profile, and names diagnostic outputs as reconstruction rows rather
than authored-object stems. Decode output directories are create-once
destinations, and stable machine-readable manifests identify their schema with
openjoc.*.v1 markers.