Dolby Atmos support
When ingesting E-AC-3 audio tracks,
Dolby Atmos is detected by parsing the JOC (Joint Object Coding) extension from the stream and signaling to content_info.json.
Detection by source type
| Source type | Detection method |
|---|---|
| MP4 | Read dec3 box from the file’s sample entry |
| MPEG2-TS | Parse addbsi field from E-AC-3 syncframes |
| DASH On-Demand/HLS fMP4 | Read dec3 box from the init segment |
| Live recording (CBM) | Propagate existing codec_specific from content_info.json |
Manifest-level signaling (DASH SupplementalProperty, HLS CHANNELS) is not used for detection
because it derives from the dec3 box and may not always be present.
Output
When JOC is detected, the 2-byte JOC extension (flag_ec3_extension_type_a + complexity_index_type_a) is written into the dec3 box of the output CMAF init segment. Downstream consumers (repackaging, players) can read Atmos info directly from the init segment without parsing the elementary stream.
[ec-3] size=19
channel_count = 2
sample_size = 16
sample_rate = 48000
[dec3] size=15
data_rate = 192
num_ind_sub = 0
[substream 0]
fscod = 0 (48000 Hz)
bsid = 16
bsmod = 0
acmod = 7 (L, C, R, Ls, Rs)
lfeon = 1
flag_ec3_extension_type_a = 1
complexity_index_type_a = 16
For standard E-AC-3 without Atmos, flag_ec3_extension_type_a and complexity_index_type_a are absent from the dec3 box.
Also, extension_type and complexity_index are added to the codec_specific field of the audio variant in content_info.json:
"variants": [
{
"media_type": "audio",
"subtype": "ec-3",
"name": "audio_ec-3_en_768kbps",
"codec_specific": {
"channel_configuration": "f801",
"extension_type": "JOC",
"complexity_index": "16"
}
}
]
For standard E-AC-3 without Atmos, those boxes/fields are absent from init segments and content_info.json.
The channel_configuration field is always present for AC-3/E-AC-3 tracks regardless of Atmos.
Limitations
- Backward-compatible carriage, e.g. independent substream is AC-3 and the dependent substream is E-AC-3, is not supported for JOC detection.
- E-AC-3 in packed audio of HLS is not supported for JOC detection.