Troubleshooting¶
Use this page to identify which boundary failed before changing configuration or blaming the renderer.
First checks¶
openjoc --version
openjoc --help
openjoc self-test
Keep the input local and seekable when testing an MP4/M4A. Raw E-AC-3 and
seekable ordinary MP4/M4A are the documented input paths; fragmented or
non-seekable MP4 is not admitted by the streaming path. For container inputs,
keep ffprobe and ffmpeg available as described in Installation.
Inspect before rendering¶
openjoc inspect input.ec3
openjoc decode input.ec3 --output-dir decode-report
inspect reports the carrier classification, profile, topology, timing, and
rejection boundary without asking the speaker renderer to guess. decode
produces metadata manifests and diagnostic ReconstructionBasis row WAVs. A
successful decode does not imply that every speaker layout or container can
represent the result.
The render command fails¶
Check the CLI reference for the exact option spelling and run the smallest admitted command first:
openjoc render-joc input.ec3 --layout 2.0 --output stereo.wav
Then move to the intended layout. Standard WAVEFORMATEXTENSIBLE masks are
available only where the channel identities are representable. 7.1.6 and
the 9.1 family require CAF for semantic channel descriptions; 22.2 and
custom geometry use explicit unmasked PCM and are not claims about arbitrary
hardware playback.
If you choose binaural output, remember that it is virtual-speaker rendering:
openjoc render-joc input.ec3 --binaural --output headphones.wav
The bundled SADIE II D1 HRTF is generic. A custom local SOFA file must match
the documented strict SimpleFreeFieldHRIR subset; HDF5/NetCDF-4 and automatic
resampling are not supported. See Binaural and SOFA.
The ADM export fails or objects are static¶
Validate the output independently:
openjoc export-adm input.ec3 --output reconstructed.wav --adm-policy best-effort
openjoc validate-adm reconstructed.wav
Strict export fails closed unless the complete decoded-JOC/OAMD binding profile
is admitted. Best-effort export preserves neutral/static output and records an
unsupported_binding_reason when the correspondence cannot be proven. In the
admitted profile, moving reconstructed Objects represent decoded carrier-local
movement, not recovery of the authored Atmos master. Read Decoded Objects vs
authored Objects and Reconstructed
ADM export.
If export reports a PCM24 range or non-finite error, do not expect clipping, normalization, or a hidden limiter. The writer fails closed at the signed 24-bit boundary; see PCM24 headroom.
Windows playback does not use OpenJOC¶
Run the package's verify.bat, confirm the OpenJOC filter is registered, and
select LAV Audio Decoder (OpenJOC) as Prefer in PotPlayer. Ordinary
E-AC-3 and compressed passthrough intentionally remain on the stock path.
Only positively confirmed JOC is admitted to the OpenJOC filter. See Windows
LAV / PotPlayer.
Collect a useful issue report¶
Include the OpenJOC version, platform, exact command, sanitized inspect or
validator output, selected layout/container, and whether the failure is
deterministic. Do not attach private/commercial media or derived PCM unless
you have permission. A passing structural validator is not evidence of native
JOC renderer equivalence; report both observations separately.