From 4d76b54f906891e3ac9358c9460a8dd22f80c517 Mon Sep 17 00:00:00 2001 From: Felicia Lim Date: Mon, 1 Jul 2024 16:05:30 -0700 Subject: [PATCH] MixPresentationTags syntax and semantics (#832) * MixPresentationTags syntax and semantics * Update index.bs Co-authored-by: sunghee-hwang <97494915+sunghee-hwang@users.noreply.github.com> * Fix typo Co-authored-by: sunghee-hwang <97494915+sunghee-hwang@users.noreply.github.com> * Fix typo Co-authored-by: sunghee-hwang <97494915+sunghee-hwang@users.noreply.github.com> * 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 <97494915+sunghee-hwang@users.noreply.github.com> --------- Co-authored-by: sunghee-hwang <97494915+sunghee-hwang@users.noreply.github.com> --- index.bs | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/index.bs b/index.bs index 7a2e55bd..f3730218 100644 --- a/index.bs +++ b/index.bs @@ -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", @@ -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; +} ``` Semantics @@ -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. + +mix_presentation_tags 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} @@ -1507,6 +1519,45 @@ NOTE: [[!ITU-1770-4]] adopts the convention of using the dBov unit for dBFS, whe info_type_bytes 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 MixPresentationTags() class provides informational metadata about a [=Mix Presentation=]. This section specifies the syntax structure of the [=MixPresentationTags()=] class. + +Syntax +``` +class MixPresentationTags() { + unsigned int (8) num_tags; + for (int i = 0; i < num_tags; i++) { + string tag_name; + string tag_value; + } +} +``` + +Semantics + +num_tags indicates the number of name-value pairs present in this [=Mix Presentation=], where each pair represents a single tag. + +tag_name 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: + +
+tag_name            : Description
+content_language    : Language of the audio content in this Mix Presentation.
+
+ +- 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. + +tag_value 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: und or mul. + +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 Parameter Block OBU 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=].