diff --git a/index.bs b/index.bs index f93e6bd4..d96424f0 100644 --- a/index.bs +++ b/index.bs @@ -1814,6 +1814,12 @@ NOTE: In this version of the specification, profiles impose constraints on how m IA decoders SHALL be able to parse all OBUs explicitly listed for this version of the specification. They can still encounter [=Reserved OBU=]s that they SHOULD skip. This allows future versions of the specification to define new profiles that can be backward compatible with old profiles. +In this context, for a given [=IA Sequence=] with [=primary_profile=] or [=additional_profile=] set to [[#profiles-simple|Simple Profile]] or [[#profiles-base|Base Profile]], a [=Reserved OBU=] SHALL be regarded as either a part of a set of [=Descriptors=] or a part of a [=Temporal Unit=] with the following restrictions: +- The [=Reserved OBU=] SHALL not be present between [=Mix Presentation OBU=]s. +- A [=Mix Presentation OBU=] SHALL be the final OBU of [=Descriptors=]. + +NOTE: [[#profiles-simple|Simple Profile]] or [[#profiles-base|Base Profile]] requires a [=Temporal Delimiter OBU=] to be the first OBU of a [=Temporal Unit=] if the OBU is present. This restriction can be used to identify which [=Temporal Unit=] a [=Reserved OBU=] is a part of. + NOTE: In this section and subsections, the meaning of a unique OBU is that it is still unique if it only varies by the [=obu_redundant_copy=] flag. Common restrictions on the [=IA Sequence=] for all profiles specified in this version of the specification: @@ -1834,6 +1840,7 @@ Common restrictions on the [=IA Sequence=] for all profiles specified in this ve NOTE: This behavior is to allow future versions of this specification to define new profiles that support a number of audio elements and/or a number of sub-mixes greater than those recommended in this profile, while still permitting streams compliant with these new profiles to be processed by parsers compliant with the profiles defined in this version of the specification. - When [=num_layers=] = 1, [=DemixingParamDefinition()=] for demixing MAY be present in the [=Audio Element OBU=] and IA decoders MAY use [=demixing_info_parameter_data=] or [=default_demixing_info_parameter_data=] for (dynamic) down-mixing. +- There MAY be [=Temporal Delimiter OBU=]s present. If present, the first OBU of every [=Temporal Unit=] SHALL be the [=Temporal Delimiter OBU=]. ## IA Simple Profile ## {#profiles-simple} @@ -1841,11 +1848,7 @@ NOTE: This behavior is to allow future versions of this specification to define This section specifies the conformance points of the simple profile. When the [=primary_profile=] field is set to 0, the following constraints apply to the [=IA Sequence=]: - - There SHALL be only one unique [=Audio Element OBU=]. -- There SHALL NOT be any [=Temporal Delimiter OBU=]s present. - - Capabilities of the IA parser, decoder, and processor: - They SHALL be able to parse an [=IA Sequence=] with [=primary_profile=] = 0. @@ -1866,8 +1869,6 @@ When the [=primary_profile=] field is set to 1, the following constraints apply - Channel-based [=Audio Element=] having [=num_layers=] = 1 + Channel-based [=Audio Element=] having [=num_layers=] > 1. - Scene-based [=Audio Element=] + Channel-based [=Audio Element=] having [=num_layers=] = 1. - Scene-based [=Audio Element=] + Channel-based [=Audio Element=] having [=num_layers=] > 1. -- There MAY be [=Temporal Delimiter OBU=]s present. If present, the first OBU of every [=Temporal Unit=] SHALL be the [=Temporal Delimiter OBU=]. - Capabilities of the IA parser, decoder, and processor: - They SHALL be able to support the capabilities of the [[#profiles-simple|Simple Profile]]. @@ -1895,7 +1896,7 @@ The figure below shows an example of an [=IA Sequence=].
Example of an Immersive Audio Sequence
### Descriptor OBUs ### {#standalone-descriptor-obus} -A set of [=Descriptors=] SHALL be placed in the following order regardless of where they appear in the bitstream: +A set of [=Descriptors=] SHALL be placed in the following order regardless of where they appear in the bitstream and it MAY contain one or more [=Reserved OBU=]s. The locations of [=Reserved OBU=]s SHALL comply with those specified in [[#profiles]]. 1. One [=IA Sequence Header OBU=] 2. All [=Codec Config OBU=]s @@ -2020,7 +2021,7 @@ class IAConfigurationBox extends Box('iacb') { configOBUs_size SHALL be set to the size of [=configOBUs=] in bytes. -configOBUs SHALL contain the following OBUs in order. +configOBUs SHALL contain the following OBUs in order and it MAY contain one or more [=Reserved OBU=]s. The locations of [=Reserved OBU=]s SHALL comply with those specified in [[#profiles]]. - [=IA Sequence Header OBU=] - [=Codec Config OBU=] - One or more [=Audio Element OBU=]s