Skip to content

Commit

Permalink
MixPresentationTags syntax and semantics (#832)
Browse files Browse the repository at this point in the history
* MixPresentationTags syntax and semantics

* Update index.bs

Co-authored-by: sunghee-hwang <[email protected]>

* Fix typo

Co-authored-by: sunghee-hwang <[email protected]>

* Fix typo

Co-authored-by: sunghee-hwang <[email protected]>

* Clarify that there should not be >1 instances of `tag_name` = "content_language"

* Drop mix_presentation_tags_extension_size/bytes

* clarify MixPresentationTags are optional

Co-authored-by: sunghee-hwang <[email protected]>

---------

Co-authored-by: sunghee-hwang <[email protected]>
  • Loading branch information
felicialim and sunghee-hwang authored Jul 1, 2024
1 parent 843be0e commit 4d76b54
Showing 1 changed file with 53 additions and 2 deletions.
55 changes: 53 additions & 2 deletions index.bs
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,12 @@ url: https://www.iso.org/standard/84637.html#; spec: CENC; type: dfn;
"publisher": "IETF",
"href": "https://www.rfc-editor.org/info/bcp47"
},
"ISO-639-2-Codes": {
"title": "ISO 639-2 Codes for the Representation of Names of Languages",
"status": "Standard",
"publisher": "ISO",
"href": "https://www.loc.gov/standards/iso639-2/php/code_list.php"
},
"FLAC": {
"title": "Free Lossless Audio Codec",
"status": "Best Practice",
Expand Down Expand Up @@ -1216,14 +1222,16 @@ class MixPresentationOBU() {
ElementMixConfig element_mix_config;
}
OutputMixConfig output_mix_config;

leb128() num_layouts;
for (j = 0; j < num_layouts; j++) {
Layout loudness_layout;
LoudnessInfo loudness;
}
}
}

MixPresentationTags mix_presentation_tags;
}
```

<b>Semantics</b>
Expand Down Expand Up @@ -1269,6 +1277,10 @@ If a sub-mix in a [=Mix Presentation OBU=] includes only one single scalable cha

- The highest [=loudness_layout=] specified in one sub-mix is the layout that was used for authoring the sub-mix. The exception is when the [=Audio Element=] is a zero-order Ambisonics or Mono channel.
- The highest [=loudness_layout=] for a zero-order Ambisonics or Mono channel [=Audio Element=] is Stereo.

<dfn noexport>mix_presentation_tags</dfn> is an instance of the [=MixPresentationTags()=] class, which provides informational metadata about a Mix Presentation, in addition to [=mix_presentation_annotations=].

The [=MixPresentationTags()=] class MAY or MAY NOT be present in a [=Mix Presentation OBU=]. If the [=obu_size=] of a [=Mix Presentation OBU=] is greater than the size up to the end of [=num_sub_mixes=] loop, the [=MixPresentationTags()=] SHALL be present in the [=Mix Presentation OBU=]. For a given [=IA Sequence=] with multiple [=Mix Presentation OBU=]s, the [=MixPresentationTags()=] MAY be present in some [=Mix Presentation OBU=]s and MAY NOT be present in the other [=Mix Presentation OBU=]s.

### Mix Presentation Annotations Syntax and Semantics ### {#obu-mixpresentation-annotation}

Expand Down Expand Up @@ -1507,6 +1519,45 @@ NOTE: [[!ITU-1770-4]] adopts the convention of using the dBov unit for dBFS, whe

<dfn noexport>info_type_bytes</dfn> represents reserved bytes for future use when new marks of [=info_type=] are defined. Parsers that don't understand these bytes SHOULD ignore them.

### Mix Presentation Tags Syntax and Semantics ### {#obu-mixpresentation-tags}

The <dfn noexport>MixPresentationTags()</dfn> class provides informational metadata about a [=Mix Presentation=]. This section specifies the syntax structure of the [=MixPresentationTags()=] class.

<b>Syntax</b>
```
class MixPresentationTags() {
unsigned int (8) num_tags;
for (int i = 0; i < num_tags; i++) {
string tag_name;
string tag_value;
}
}
```

<b>Semantics</b>

<dfn noexport>num_tags</dfn> indicates the number of name-value pairs present in this [=Mix Presentation=], where each pair represents a single tag.

<dfn noexport>tag_name</dfn> is the label describing a [=Mix Presentation=] tag. Parsers that don't understand a [=tag_name=] SHOULD ignore it and its corresponding [=tag_value=].

This specification supports the following [=tag_name=]s:

<pre class = "def">
tag_name : Description
content_language : Language of the audio content in this Mix Presentation.
</pre>

- There SHALL be at most one instance of [=tag_name=] = "content_language" within one [=Mix Presentation=]. If there are two or more instances of [=tag_name=] = "content_language", parsers SHOULD use the [=tag_value=] corresponding to the first instance, and MAY ignore the remaining instances.

<dfn noexport>tag_value</dfn> is the value of a [=Mix Presentation=] tag.

- If the corresponding [=tag_name=] = "content_language", the following applies to this [=tag_value=].
- It indicates the language of the audio content in the associated [=Audio Element=]s within this [=Mix Presentation=].
- It SHALL conform to [[!ISO-639-2-Codes]].
- If a [=Mix Presentation=] contains [=Audio Element=]s with different language content, its corresponding [=tag_value=] SHOULD use one of the following [[!ISO-639-2-Codes]] language codes: <code>und</code> or <code>mul</code>.

NOTE: The language indicated by [=tag_name=] = "content_language" is different from [=language_label=]. The former indicates the language of the audio content in the associated [=Audio Element=]s, while the latter indicates the language of the [=Mix Presentation=] annotations.

## Parameter Block OBU Syntax and Semantics ## {#obu-parameterblock}

The <dfn noexport>Parameter Block OBU</dfn> provides the parameter values in [=Parameter Substream=]s and information on how they are animated over the indicated duration. This section specifies the payload format of the [=Parameter Block OBU=].
Expand Down

0 comments on commit 4d76b54

Please sign in to comment.