rfc9559.original.xml | rfc9559.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Process | ||||
or - mmark.miek.nl" --> | <!DOCTYPE rfc [ | |||
<rfc version="3" ipr="trust200902" docName="draft-ietf-cellar-matroska-21" sortR | <!ENTITY nbsp " "> | |||
efs="true" tocDepth="4" submissionType="IETF" category="std" xml:lang="en" xmlns | <!ENTITY zwsp "​"> | |||
:xi="http://www.w3.org/2001/XInclude" indexInclude="true" consensus="true"> | <!ENTITY nbhy "‑"> | |||
<!ENTITY wj "⁠"> | ||||
]> | ||||
<rfc version="3" ipr="trust200902" docName="draft-ietf-cellar-matroska-21" numbe | ||||
r="9559" submissionType="IETF" category="std" consensus="true" tocInclude="true" | ||||
sortRefs="true" symRefs="true" tocDepth="4" xml:lang="en" xmlns:xi="http://www. | ||||
w3.org/2001/XInclude" updates="8794" obsoletes=""> | ||||
<!-- [rfced] We added "Updates: 8794" to the document header per the text in | ||||
the Abstract and Section 4.2. Please review and let us know any concerns. | ||||
--> | ||||
<!-- [rfced] Should "Specifications" (plural) in the document title be updated | ||||
to "Specification" (singular)? Or is the current correct? | ||||
Original: | ||||
Matroska Media Container Format Specifications | ||||
Perhaps: | ||||
Matroska Media Container Format Specification | ||||
--> | ||||
<front> | <front> | |||
<title abbrev="Matroska Format">Matroska Media Container Format Specifications</ | <title abbrev="Matroska Format">Matroska Media Container Format Specifications | |||
title><seriesInfo value="draft-ietf-cellar-matroska-21" stream="IETF" status="st | </title> | |||
andard" name="Internet-Draft"></seriesInfo> | <seriesInfo name="RFC" value="9559"/> | |||
<author initials="S." surname="Lhomme" fullname="Steve Lhomme"><organization></o | ||||
rganization><address><postal><street></street> | ||||
</postal><email>slhomme@matroska.org</email> | ||||
</address></author><author initials="M." surname="Bunkus" fullname="Moritz Bunku | ||||
s"><organization></organization><address><postal><street></street> | ||||
</postal><email>moritz@bunkus.org</email> | ||||
</address></author><author initials="D." surname="Rice" fullname="Dave Rice"><or | ||||
ganization></organization><address><postal><street></street> | ||||
</postal><email>dave@dericed.com</email> | ||||
</address></author><date year="2023" month="October" day="22"></date> | ||||
<area>art</area> | ||||
<workgroup>CELLAR Group</workgroup> | ||||
<keyword>binary</keyword> | ||||
<keyword>storage</keyword> | ||||
<keyword>matroska</keyword> | ||||
<keyword>ebml</keyword> | ||||
<keyword>webm</keyword> | ||||
<author initials="S." surname="Lhomme" fullname="Steve Lhomme"> | ||||
<organization></organization> | ||||
<address> | ||||
<postal> | ||||
<street></street> | ||||
</postal> | ||||
<email>slhomme@matroska.org</email> | ||||
</address> | ||||
</author> | ||||
<author initials="M." surname="Bunkus" fullname="Moritz Bunkus"> | ||||
<organization></organization> | ||||
<address> | ||||
<postal> | ||||
<street></street> | ||||
</postal> | ||||
<email>moritz@bunkus.org</email> | ||||
</address> | ||||
</author> | ||||
<author initials="D." surname="Rice" fullname="Dave Rice"> | ||||
<organization></organization> | ||||
<address> | ||||
<postal> | ||||
<street></street> | ||||
</postal> | ||||
<email>dave@dericed.com</email> | ||||
</address> | ||||
</author> | ||||
<date year="2024" month="April" /> | ||||
<area>art</area> | ||||
<workgroup>cellar</workgroup> | ||||
<keyword>binary</keyword> | ||||
<keyword>storage</keyword> | ||||
<keyword>matroska</keyword> | ||||
<keyword>ebml</keyword> | ||||
<keyword>webm</keyword> | ||||
<abstract> | <abstract> | |||
<t>This document defines the Matroska audiovisual data container structure, incl | <t>This document defines the Matroska audiovisual data container structure, | |||
uding definitions of its structural elements, | including definitions of its structural elements, terminology, | |||
as well as its terminology, vocabulary, and application.</t> | vocabulary, and application.</t> | |||
<t>This document updates <xref target="RFC8794"></xref> to permit the use of a p | <t>This document updates RFC 8794 to permit the use of a previously reserved Ext | |||
reviously reserved EBML Element ID.</t> | ensible Binary Meta Language (EBML) Element ID.</t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section anchor="introduction"><name>Introduction</name> | <section anchor="introduction"><name>Introduction</name> | |||
<t>Matroska is an audiovisual data container format. It was derived from a proje | <t>Matroska is an audiovisual data container format. It was derived from a | |||
ct called <xref target="MCF"></xref>, | project called <xref target="MCF"></xref> but diverges from it | |||
but diverges from it significantly because it is based on EBML (Extensible Binar | significantly because it is based on EBML (Extensible Binary Meta Language) | |||
y Meta Language) <xref target="RFC8794"></xref>, | <xref target="RFC8794"></xref>, a binary derivative of XML. EBML | |||
a binary derivative of XML. EBML provides significant advantages in terms of fut | provides significant advantages in terms of future format extensibility, | |||
ure format extensibility, | ||||
without breaking file support in parsers reading the previous versions.</t> | without breaking file support in parsers reading the previous versions.</t> | |||
<t>First, it is essential to clarify exactly "What an Audio/Video container is", to avoid any misunderstandings:</t> | ||||
<ul spacing="compact"> | <t>To avoid any misunderstandings, it is essential to clarify exactly | |||
<li>It is NOT a video or audio compression format (codec)</li> | what an audio/video container is:</t> | |||
<ul> | ||||
<li>It is NOT a video or audio compression format (codec).</li> | ||||
<li>It is an envelope in which there can be many audio, video, and subtitles str eams, | <li>It is an envelope in which there can be many audio, video, and subtitles str eams, | |||
allowing the user to store a complete movie or CD in a single file.</li> | allowing the user to store a complete movie or CD in a single file.</li> | |||
</ul> | </ul> | |||
<t>Matroska is designed with the future in mind. It incorporates features such a s:</t> | <t>Matroska is designed with the future in mind. It incorporates features such a s:</t> | |||
<ul spacing="compact"> | <ul> | |||
<li>Fast seeking in the file</li> | <li>Fast seeking in the file</li> | |||
<li>Chapter entries</li> | <li>Chapter entries</li> | |||
<li>Full metadata (tags) support</li> | <li>Full metadata (tags) support</li> | |||
<li>Selectable subtitle/audio/video streams</li> | <li>Selectable subtitle/audio/video streams</li> | |||
<li>Modularly expandable</li> | <li>Modularly expandable</li> | |||
<li>Error resilience (can recover playback even when the stream is damaged)</li> | <li>Error resilience (can recover playback even when the stream is damaged)</li> | |||
<li>Streamable over the internet and local networks (HTTP <xref target="RFC9110" | <li>Streamable over the Internet and local networks (HTTP <xref target="RFC9110" | |||
></xref>, FTP <xref target="RFC0959"></xref>, SMB <xref target="SMB-CIFS"></xref | ></xref>, FTP <xref target="RFC0959"></xref>, SMB <xref target="SMB-CIFS"></xref | |||
>, etc.)</li> | >, etc.)</li> | |||
<li>Menus (like DVDs have <xref target="DVD-Video"></xref>)</li> | <li>Menus (like menus that DVDs have <xref target="DVD-Video"></xref>)</li> | |||
</ul> | </ul> | |||
</section> | </section> | |||
<section anchor="status-of-this-document"><name>Status of this document</name> | <section anchor="status-of-this-document"><name>Status of This Document</name> | |||
<t>This document covers Matroska versions 1, 2, 3 and 4. Matroska v4 is the curr | <t>This document covers Matroska versions 1, 2, 3, and 4. Matroska version 4 is | |||
ent version. | the current version. | |||
Matroska 1 to 3 are no longer maintained. No new elements are expected in files | Matroska versions 1 to 3 are no longer maintained. No new elements are expected | |||
with version numbers 1, 2, or 3.</t> | in files with version numbers 1, 2, or 3.</t> | |||
</section> | </section> | |||
<section anchor="notation-and-conventions"><name>Notation and Conventions</name> | <section anchor="notation-and-conventions"><name>Notation and Conventions</name> | |||
<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>& | <t> | |||
quot;, | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
"<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bc | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
p14>SHALL NOT</bcp14>", | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
"<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
"<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>&quo | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are | |||
t;, | to be interpreted as described in BCP 14 <xref target="RFC2119"/> | |||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this | <xref target="RFC8174"/> when, and only when, they appear in all capitals, | |||
document are to be interpreted as | as shown here. </t> | |||
described in BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref | ||||
> | ||||
when, and only when, they appear in all capitals, as shown here.</t> | ||||
<t>This document defines specific terms in order to define the format and applic | ||||
ation of <tt>Matroska</tt>. | ||||
Specific terms are defined below:</t> | ||||
<dl spacing="compact"> | <t>This document defines the following terms in order to | |||
define the format and application of <tt>Matroska</tt>: | ||||
</t> | ||||
<dl> | ||||
<dt><tt>Matroska</tt>:</dt> | <dt><tt>Matroska</tt>:</dt> | |||
<dd>A multimedia container format based on EBML (Extensible Binary Meta Language ).</dd> | <dd>A multimedia container format based on EBML (Extensible Binary Meta Language ).</dd> | |||
<dt><tt>Matroska Reader</tt>:</dt> | <dt><tt>Matroska Reader</tt>:</dt> | |||
<dd>A data parser that interprets the semantics of a Matroska document and creat es a way for programs to use <tt>Matroska</tt>.</dd> | <dd>A data parser that interprets the semantics of a Matroska document and creat es a way for programs to use <tt>Matroska</tt>.</dd> | |||
<dt><tt>Matroska Player</tt>:</dt> | <dt><tt>Matroska Player</tt>:</dt> | |||
<dd>A <tt>Matroska Reader</tt> with a primary purpose of playing audiovisual fil es, including <tt>Matroska</tt> documents.</dd> | <dd>A <tt>Matroska Reader</tt> with the primary purpose of playing audiovisual f iles, including <tt>Matroska</tt> documents.</dd> | |||
<dt><tt>Matroska Writer</tt>:</dt> | <dt><tt>Matroska Writer</tt>:</dt> | |||
<dd>A data writer that creates <tt>Matroska</tt> documents.</dd> | <dd>A data writer that creates <tt>Matroska</tt> documents.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="matroska-overview"><name>Matroska Overview</name> | <section anchor="matroska-overview"><name>Matroska Overview</name> | |||
<section anchor="principles"><name>Principles</name> | <section anchor="principles"><name>Principles</name> | |||
<t>Matroska is a Document Type of EBML (Extensible Binary Meta Language). | <t>Matroska is a Document Type of EBML. | |||
This specification is dependent on the EBML Specification <xref target="RFC8794" | This specification is dependent on the EBML specification <xref target="RFC8794" | |||
></xref>. | ></xref>. | |||
For an understanding of Matroska's EBML Schema, see in particular the sections o | For an understanding of Matroska's EBML Schema, see in particular the sections o | |||
f the EBML Specification covering | f the EBML specification that cover | |||
EBML Element Types (Section 7), | EBML Element Types (Section <xref target="RFC8794" sectionFormat="bare" section= | |||
EBML Schema (Section 11.1), | "7"/>), | |||
and EBML Structure (Section 3).</t> | EBML Schema (Section <xref target="RFC8794" sectionFormat="bare" section="11.1"/ | |||
>), | ||||
and EBML Structure (Section <xref target="RFC8794" sectionFormat="bare" section= | ||||
"3"/>).</t> | ||||
</section> | </section> | |||
<section anchor="updates-to-rfc-8794"><name>Updates to RFC 8794</name> | <section anchor="updates-to-rfc-8794"><name>Updates to RFC 8794</name> | |||
<t>Because of an oversight, <xref target="RFC8794"></xref> reserved EBML ID 0x80 , which is used by deployed Matroska implementations. | <t>Because of an oversight, <xref target="RFC8794"></xref> reserved EBML ID 0x80 , which is used by deployed Matroska implementations. | |||
For this reason, this specification updates <xref target="RFC8794"></xref> to ma | ||||
ke 0x80 a legal EBML ID. | ||||
Specifically, the following are changed in <xref target="RFC8794"></xref>:</t> | ||||
<ul spacing="compact"> | For this reason, this specification updates <xref target="RFC8794"></xref> to ma | |||
<li>From Errata 7189</li> | ke 0x80 a legal EBML ID. Additionally, this specification makes the following up | |||
</ul> | dates:</t> | |||
<t>In Section 17.1,</t> | ||||
<ul> | ||||
<li><t><xref target="RFC8794" sectionFormat="of" section="17.1"/> (per Erratum I | ||||
D #7189 <xref target="Err7189"/>)</t> | ||||
<t>OLD:</t> | <t>OLD:</t> | |||
<t>One-octet Element IDs MUST be between 0x81 and 0xFE. These items are | <blockquote> | |||
<t>One-octet Element IDs <bcp14>MUST</bcp14> be between 0x81 and 0xFE. These it | ||||
ems are | ||||
valuable because they are short, and they need to be used for | valuable because they are short, and they need to be used for | |||
commonly repeated elements. Element IDs are to be allocated within | commonly repeated elements. Element IDs are to be allocated within | |||
this range according to the "RFC Required" policy [RFC8126].</t> | this range according to the "RFC Required" policy <xref target="RFC8126"/>.</ t> | |||
<t>The following one-octet Element IDs are RESERVED: 0xFF and 0x80.</t> | <t>The following one-octet Element IDs are RESERVED: 0xFF and 0x80.</t> | |||
</blockquote> | ||||
<t>NEW:</t> | <t>NEW:</t> | |||
<t>One-octet Element IDs MUST be between 0x80 and 0xFE. These items are | <blockquote> | |||
<t>One-octet Element IDs <bcp14>MUST</bcp14> be between 0x80 and 0xFE. These it | ||||
ems are | ||||
valuable because they are short, and they need to be used for | valuable because they are short, and they need to be used for | |||
commonly repeated elements. Element IDs are to be allocated within | commonly repeated elements. Element IDs are to be allocated within | |||
this range according to the "RFC Required" policy [RFC8126].</t> | this range according to the "RFC Required" policy <xref target="RFC8126"/>.</ t> | |||
<t>The following one-octet Element ID is RESERVED: 0xFF.</t> | <t>The following one-octet Element ID is RESERVED: 0xFF.</t> | |||
</blockquote> | ||||
</li> | ||||
<ul spacing="compact"> | <li><t><xref target="RFC8794" sectionFormat="of" section="5"/> (per Erratum ID # | |||
<li>From Errata 7191</li> | 7191 <xref target="Err7191"/>)</t> | |||
</ul> | ||||
<t>In Section 5,</t> | ||||
<t>OLD:</t> | ||||
<artwork> +=========================+================+=================+ | <t>OLD:</t> | |||
| Element ID Octet Length | Range of Valid | Number of Valid | | <artwork> | |||
| | Element IDs | Element IDs | | +=========================+================+=================+ | |||
+=========================+================+=================+ | | Element ID Octet Length | Range of Valid | Number of Valid | | |||
| 1 | 0x81 - 0xFE | 126 | | | | Element IDs | Element IDs | | |||
+-------------------------+----------------+-----------------+ | +=========================+================+=================+ | |||
| 1 | 0x81 - 0xFE | 126 | | ||||
+-------------------------+----------------+-----------------+ | ||||
</artwork> | </artwork> | |||
-------------------------+----------------+-----------------+ | ||||
<t>NEW:</t> | <t>NEW:</t> | |||
<artwork> +=========================+================+=================+ | <artwork> | |||
| Element ID Octet Length | Range of Valid | Number of Valid | | +=========================+================+=================+ | |||
| | Element IDs | Element IDs | | | Element ID Octet Length | Range of Valid | Number of Valid | | |||
+=========================+================+=================+ | | | Element IDs | Element IDs | | |||
| 1 | 0x80 - 0xFE | 127 | | +=========================+================+=================+ | |||
+-------------------------+----------------+-----------------+ | | 1 | 0x80 - 0xFE | 127 | | |||
+-------------------------+----------------+-----------------+ | ||||
</artwork> | </artwork> | |||
-------------------------+----------------+-----------------+ | ||||
</li> | ||||
</ul> | ||||
</section> | </section> | |||
<section anchor="added-ebml-constraints"><name>Added EBML Constraints</name> | <section anchor="added-ebml-constraints"><name>Added EBML Constraints</name> | |||
<t>As an EBML Document Type, Matroska adds the following constraints to the EBML specification.</t> | <t>As an EBML Document Type, Matroska adds the following constraints to the EBML specification <xref target="RFC8794"></xref>:</t> | |||
<ul spacing="compact"> | <ul> | |||
<li>The <tt>docType</tt> of the <tt>EBML Header</tt> <bcp14>MUST</bcp14> be &quo | <li>The <tt>docType</tt> of the <tt>EBML Header</tt> <bcp14>MUST</bcp14> be "mat | |||
t;matroska".</li> | roska".</li> | |||
<li>The <tt>EBMLMaxIDLength</tt> of the <tt>EBML Header</tt> <bcp14>MUST</bcp14> be 4.</li> | <li>The <tt>EBMLMaxIDLength</tt> of the <tt>EBML Header</tt> <bcp14>MUST</bcp14> be 4.</li> | |||
<li>The <tt>EBMLMaxSizeLength</tt> of the <tt>EBML Header</tt> <bcp14>MUST</bcp1 4> be between 1 and 8 inclusive.</li> | <li>The <tt>EBMLMaxSizeLength</tt> of the <tt>EBML Header</tt> <bcp14>MUST</bcp1 4> be between 1 and 8, inclusive.</li> | |||
</ul> | </ul> | |||
</section> | </section> | |||
<section anchor="design-rules"><name>Design Rules</name> | <section anchor="design-rules"><name>Design Rules</name> | |||
<t>The Root Element and all Top-Levels Elements <bcp14>MUST</bcp14> use 4 octets | ||||
for their EBML Element ID -- i.e. Segment and direct children of Segment.</t> | <t>The Root Element and all Top-Level Elements <bcp14>MUST</bcp14> use 4 octets | |||
<t>Legacy EBML/Matroska parsers did not handle Empty Elements properly, elements | for their EBML Element ID -- i.e., Segment and direct children of Segment.</t> | |||
present in the file but with a length of zero. | ||||
They always assumed the value was 0 for integers/dates or 0x0p+0, the textual ex | <t>Legacy EBML/Matroska parsers did not handle Empty Elements properly; elements | |||
pression of floats using the <xref target="ISO9899"></xref> format, no matter th | were present in the file but had a length of 0. | |||
e default value of the element which should have been used instead. | They always assumed the value was 0 for integers/dates or 0x0p+0, the textual ex | |||
Therefore, Matroska writers <bcp14>MUST NOT</bcp14> use EBML Empty Elements, if | pression of floats using the format in <xref target="ISO9899"></xref>, no matter | |||
the element has a default value that is not 0 for integers/dates and 0x0p+0 for | the default value of the element that should have been used instead. | |||
floats.</t> | Therefore, Matroska Writers <bcp14>MUST NOT</bcp14> use EBML Empty Elements if t | |||
he element has a default value that is not 0 for integers/dates and 0x0p+0 for f | ||||
loats.</t> | ||||
<t>When adding new elements to Matroska, these rules apply:</t> | <t>When adding new elements to Matroska, these rules apply:</t> | |||
<ul spacing="compact"> | <ul> | |||
<li>A non-mandatory integer/date Element <bcp14>MUST NOT</bcp14> have a default value other than 0.</li> | <li>A non-mandatory integer/date Element <bcp14>MUST NOT</bcp14> have a default value other than 0.</li> | |||
<li>A non-mandatory float Element <bcp14>MUST NOT</bcp14> have a default value o ther than 0x0p+0.</li> | <li>A non-mandatory float Element <bcp14>MUST NOT</bcp14> have a default value o ther than 0x0p+0.</li> | |||
<li>A non-mandatory string Element <bcp14>MUST NOT</bcp14> have a default value , as empty string cannot be defined in the XML Schema.</li> | <li>A non-mandatory string Element <bcp14>MUST NOT</bcp14> have a default value , as empty strings cannot be defined in the XML Schema.</li> | |||
</ul> | </ul> | |||
</section> | </section> | |||
<section anchor="data-layout"><name>Data Layout</name> | <section anchor="data-layout"><name>Data Layout</name> | |||
<t>A Matroska file <bcp14>MUST</bcp14> be composed of at least one <tt>EBML Docu ment</tt> using the <tt>Matroska Document Type</tt>. | <t>A Matroska file <bcp14>MUST</bcp14> be composed of at least one <tt>EBML Docu ment</tt> using the <tt>Matroska Document Type</tt>. | |||
Each <tt>EBML Document</tt> <bcp14>MUST</bcp14> start with an <tt>EBML Header</t | Each <tt>EBML Document</tt> <bcp14>MUST</bcp14> start with an <tt>EBML Header</t | |||
t> and <bcp14>MUST</bcp14> be followed by the <tt>EBML Root Element</tt>, | t> and <bcp14>MUST</bcp14> be followed by the <tt>EBML Root Element</tt>, define | |||
defined as <tt>Segment</tt> in Matroska. Matroska defines several <tt>Top-Level | d as <tt>Segment</tt> in Matroska. Matroska defines several <tt>Top-Level Elemen | |||
Elements</tt> | ts</tt> | |||
which may occur within the <tt>Segment</tt>.</t> | that may occur within the <tt>Segment</tt>.</t> | |||
<t>As an example, a simple Matroska file consisting of a single <tt>EBML Documen t</tt> could be represented like this:</t> | <t>As an example, a simple Matroska file consisting of a single <tt>EBML Documen t</tt> could be represented like this:</t> | |||
<ul spacing="compact"> | <ul spacing="compact"> | |||
<li><tt>EBML Header</tt></li> | <li><tt>EBML Header</tt></li> | |||
<li><tt>Segment</tt></li> | <li><tt>Segment</tt></li> | |||
</ul> | </ul> | |||
<t>A more complex Matroska file consisting of an <tt>EBML Stream</tt> (consistin g of two <tt>EBML Documents</tt>) could be represented like this:</t> | <t>A more complex Matroska file consisting of an <tt>EBML Stream</tt> (consistin g of two <tt>EBML Documents</tt>) could be represented like this:</t> | |||
<ul spacing="compact"> | <ul spacing="compact"> | |||
<li><tt>EBML Header</tt></li> | <li><tt>EBML Header</tt></li> | |||
<li><tt>Segment</tt></li> | <li><tt>Segment</tt></li> | |||
<li><tt>EBML Header</tt></li> | <li><tt>EBML Header</tt></li> | |||
<li><tt>Segment</tt></li> | <li><tt>Segment</tt></li> | |||
</ul> | </ul> | |||
<t>The following diagram represents a simple Matroska file, comprised of an <tt> EBML Document</tt> | <t>The following diagram represents a simple Matroska file, comprised of an <tt> EBML Document</tt> | |||
with an <tt>EBML Header</tt>, a <tt>Segment Element</tt> (the <tt>Root Element</ tt>), and all eight Matroska | with an <tt>EBML Header</tt>, a <tt>Segment Element</tt> (the <tt>Root Element</ tt>), and all eight Matroska | |||
<tt>Top-Level Elements</tt>. In the following diagrams of this section, horizont al spacing expresses | <tt>Top-Level Elements</tt>. In the diagrams in this section, horizontal spacing expresses | |||
a parent-child relationship between Matroska Elements (e.g., the <tt>Info Elemen t</tt> is contained within | a parent-child relationship between Matroska Elements (e.g., the <tt>Info Elemen t</tt> is contained within | |||
the <tt>Segment Element</tt>) whereas vertical alignment represents the storage | the <tt>Segment Element</tt>), whereas vertical alignment represents the storage | |||
order within the file.</t> | order within the file.</t> | |||
<figure><name>Basic layout of a Matroska file. | <figure><name>Basic Layout of a Matroska File</name> | |||
</name> | <artwork> | |||
<artwork>+-------------+ | +-------------+ | |||
| EBML Header | | | EBML Header | | |||
+---------------------------+ | +---------------------------+ | |||
| Segment | SeekHead | | | Segment | SeekHead | | |||
| |-------------| | | |-------------| | |||
| | Info | | | | Info | | |||
| |-------------| | | |-------------| | |||
| | Tracks | | | | Tracks | | |||
| |-------------| | | |-------------| | |||
| | Chapters | | | | Chapters | | |||
| |-------------| | | |-------------| | |||
skipping to change at line 216 ¶ | skipping to change at line 276 ¶ | |||
| | Cues | | | | Cues | | |||
| |-------------| | | |-------------| | |||
| | Attachments | | | | Attachments | | |||
| |-------------| | | |-------------| | |||
| | Tags | | | | Tags | | |||
+---------------------------+ | +---------------------------+ | |||
</artwork> | </artwork> | |||
</figure> | </figure> | |||
<t>The Matroska <tt>EBML Schema</tt> defines eight <tt>Top-Level Elements</tt>:< /t> | <t>The Matroska <tt>EBML Schema</tt> defines eight <tt>Top-Level Elements</tt>:< /t> | |||
<ul spacing="compact"> | <ul> | |||
<li><tt>SeekHead</tt> (<xref target="seekhead"></xref>),</li> | <li><tt>SeekHead</tt> (<xref target="seekhead"></xref>)</li> | |||
<li><tt>Info</tt> (<xref target="info"></xref>),</li> | <li><tt>Info</tt> (<xref target="info"></xref>)</li> | |||
<li><tt>Tracks</tt> (<xref target="track-flags"></xref>),</li> | <li><tt>Tracks</tt> (<xref target="track-flags"></xref>)</li> | |||
<li><tt>Chapters</tt> (<xref target="chapters"></xref>),</li> | <li><tt>Chapters</tt> (<xref target="chapters"></xref>)</li> | |||
<li><tt>Cluster</tt> (<xref target="cluster-blocks"></xref>),</li> | <li><tt>Cluster</tt> (<xref target="cluster-blocks"></xref>)</li> | |||
<li><tt>Cues</tt> (<xref target="cues"></xref>),</li> | <li><tt>Cues</tt> (<xref target="cues"></xref>)</li> | |||
<li><tt>Attachments</tt> (<xref target="attachments-1"></xref>),</li> | <li><tt>Attachments</tt> (<xref target="attachments-1"></xref>)</li> | |||
<li>and <tt>Tags</tt> (<xref target="tags"></xref>).</li> | <li><tt>Tags</tt> (<xref target="tags"></xref>)</li> | |||
</ul> | </ul> | |||
<t>The <tt>SeekHead Element</tt> (also known as <tt>MetaSeek</tt>) contains an i ndex of <tt>Top-Level Elements</tt> | <t>The <tt>SeekHead Element</tt> (also known as <tt>MetaSeek</tt>) contains an i ndex of <tt>Top-Level Elements</tt> | |||
locations within the <tt>Segment</tt>. Use of the <tt>SeekHead Element</tt> is < bcp14>RECOMMENDED</bcp14>. Without a <tt>SeekHead Element</tt>, | locations within the <tt>Segment</tt>. Use of the <tt>SeekHead Element</tt> is < bcp14>RECOMMENDED</bcp14>. Without a <tt>SeekHead Element</tt>, | |||
a Matroska parser would have to search the entire file to find all of the other <tt>Top-Level Elements</tt>. | a Matroska parser would have to search the entire file to find all of the other <tt>Top-Level Elements</tt>. | |||
This is due to Matroska's flexible ordering requirements; for instance, it is ac ceptable for | This is due to Matroska's flexible ordering requirements; for instance, it is ac ceptable for | |||
the <tt>Chapters Element</tt> to be stored after the <tt>Cluster Elements</tt>.< | the <tt>Chapters Element</tt> to be stored after the <tt>Cluster Element</tt>.</ | |||
/t> | t> | |||
<figure><name>Representation of a <tt>SeekHead Element</tt>. | <figure><name>Representation of a <tt>SeekHead Element</tt> | |||
</name> | </name> | |||
<artwork>+--------------------------------+ | <artwork> | |||
+--------------------------------+ | ||||
| SeekHead | Seek | SeekID | | | SeekHead | Seek | SeekID | | |||
| | |--------------| | | | |--------------| | |||
| | | SeekPosition | | | | | SeekPosition | | |||
+--------------------------------+ | +--------------------------------+ | |||
</artwork> | </artwork> | |||
</figure> | </figure> | |||
<t>The <tt>Info Element</tt> contains vital information for identifying the whol e <tt>Segment</tt>. | <t>The <tt>Info Element</tt> contains vital information for identifying the whol e <tt>Segment</tt>. | |||
This includes the title for the <tt>Segment</tt>, a randomly generated unique id | This includes the title for the <tt>Segment</tt>, a randomly generated unique id | |||
entifier, | entifier (UID), | |||
and the unique identifier(s) of any linked <tt>Segment Elements</tt>.</t> | and the UID(s) of any linked <tt>Segment Elements</tt>.</t> | |||
<figure><name>Representation of an <tt>Info Element</tt> and its <tt>Child Eleme | <figure><name>Representation of an <tt>Info Element</tt> and Its <tt>Child Eleme | |||
nts</tt>. | nts</tt> | |||
</name> | </name> | |||
<artwork>+-------------------------+ | <artwork> | |||
+-------------------------+ | ||||
| Info | SegmentUUID | | | Info | SegmentUUID | | |||
| |------------------| | | |------------------| | |||
| | SegmentFilename | | | | SegmentFilename | | |||
| |------------------| | | |------------------| | |||
| | PrevUUID | | | | PrevUUID | | |||
| |------------------| | | |------------------| | |||
| | PrevFilename | | | | PrevFilename | | |||
| |------------------| | | |------------------| | |||
| | NextUUID | | | | NextUUID | | |||
| |------------------| | | |------------------| | |||
skipping to change at line 277 ¶ | skipping to change at line 339 ¶ | |||
| |------------------| | | |------------------| | |||
| | Title | | | | Title | | |||
| |------------------| | | |------------------| | |||
| | MuxingApp | | | | MuxingApp | | |||
| |------------------| | | |------------------| | |||
| | WritingApp | | | | WritingApp | | |||
|-------------------------| | |-------------------------| | |||
</artwork> | </artwork> | |||
</figure> | </figure> | |||
<t>The <tt>Tracks Element</tt> defines the technical details for each track and can store the name, | <t>The <tt>Tracks Element</tt> defines the technical details for each track and can store the name, | |||
number, unique identifier, language, and type (audio, video, subtitles, etc.) of each track. | number, UID, language, and type (audio, video, subtitles, etc.) of each track. | |||
For example, the <tt>Tracks Element</tt> <bcp14>MAY</bcp14> store information ab out the resolution of a video track | For example, the <tt>Tracks Element</tt> <bcp14>MAY</bcp14> store information ab out the resolution of a video track | |||
or sample rate of an audio track.</t> | or sample rate of an audio track.</t> | |||
<t>The <tt>Tracks Element</tt> <bcp14>MUST</bcp14> identify all the data needed by the codec to decode the data of the | <t>The <tt>Tracks Element</tt> <bcp14>MUST</bcp14> identify all the data needed by the codec to decode the data of the | |||
specified track. However, the data required is contingent on the codec used for the track. | specified track. However, the data required is contingent on the codec used for the track. | |||
For example, a <tt>Track Element</tt> for uncompressed audio only requires the a udio bit rate to be present. | For example, a <tt>Track Element</tt> for uncompressed audio only requires the a udio bit rate to be present. | |||
A codec such as AC-3 would require that the <tt>CodecID Element</tt> be present for all tracks, | A codec such as AC-3 would require that the <tt>CodecID Element</tt> be present for all tracks, | |||
as it is the primary way to identify which codec to use to decode the track.</t> | as it is the primary way to identify which codec to use to decode the track.</t> | |||
<figure><name>Representation of the <tt>Tracks Element</tt> and a selection of i ts <tt>Descendant Elements</tt>. | <figure><name>Representation of the <tt>Tracks Element</tt> and a Selection of I ts <tt>Descendant Elements</tt> | |||
</name> | </name> | |||
<artwork>+------------------------------------+ | <artwork> | |||
+------------------------------------+ | ||||
| Tracks | TrackEntry | TrackNumber | | | Tracks | TrackEntry | TrackNumber | | |||
| | |--------------| | | | |--------------| | |||
| | | TrackUID | | | | | TrackUID | | |||
| | |--------------| | | | |--------------| | |||
| | | TrackType | | | | | TrackType | | |||
| | |--------------| | | | |--------------| | |||
| | | Name | | | | | Name | | |||
| | |--------------| | | | |--------------| | |||
| | | Language | | | | | Language | | |||
| | |--------------| | | | |--------------| | |||
skipping to change at line 330 ¶ | skipping to change at line 393 ¶ | |||
| | | | AspectRatioType | | | | | | AspectRatioType | | |||
| | | |-------------------| | | | | |-------------------| | |||
| | | | Color | | | | | | Color | | |||
| | |----------------------------------| | | | |----------------------------------| | |||
| | | Audio | SamplingFrequency | | | | | Audio | SamplingFrequency | | |||
| | | |-------------------| | | | | |-------------------| | |||
| | | | Channels | | | | | | Channels | | |||
| | | |-------------------| | | | | |-------------------| | |||
| | | | BitDepth | | | | | | BitDepth | | |||
|--------------------------------------------------------| | |--------------------------------------------------------| | |||
</artwork> | </artwork> | |||
</figure> | </figure> | |||
<t>The <tt>Chapters Element</tt> lists all of the chapters. Chapters are a way t o set predefined | <t>The <tt>Chapters Element</tt> lists all of the chapters. Chapters are a way t o set predefined | |||
points to jump to in video or audio.</t> | points to jump to in video or audio.</t> | |||
<figure><name>Representation of the <tt>Chapters Element</tt> and a selection of its <tt>Descendant Elements</tt>. | <figure><name>Representation of the <tt>Chapters Element</tt> and a Selection of Its <tt>Descendant Elements</tt> | |||
</name> | </name> | |||
<artwork>+-----------------------------------------+ | <artwork> | |||
+-----------------------------------------+ | ||||
| Chapters | Edition | EditionUID | | | Chapters | Edition | EditionUID | | |||
| | Entry |--------------------| | | | Entry |--------------------| | |||
| | | EditionFlagDefault | | | | | EditionFlagDefault | | |||
| | |--------------------| | | | |--------------------| | |||
| | | EditionFlagOrdered | | | | | EditionFlagOrdered | | |||
| | |---------------------------------+ | | | |---------------------------------+ | |||
| | | ChapterAtom | ChapterUID | | | | | ChapterAtom | ChapterUID | | |||
| | | |-------------------| | | | | |-------------------| | |||
| | | | ChapterStringUID | | | | | | ChapterStringUID | | |||
| | | |-------------------| | | | | |-------------------| | |||
skipping to change at line 362 ¶ | skipping to change at line 425 ¶ | |||
| | | | ChapterFlagHidden | | | | | | ChapterFlagHidden | | |||
| | | |-------------------------------+ | | | | |-------------------------------+ | |||
| | | | ChapterDisplay | ChapString | | | | | | ChapterDisplay | ChapString | | |||
| | | | |--------------| | | | | | |--------------| | |||
| | | | | ChapLanguage | | | | | | | ChapLanguage | | |||
+------------------------------------------------------------------+ | +------------------------------------------------------------------+ | |||
</artwork> | </artwork> | |||
</figure> | </figure> | |||
<t><tt>Cluster Elements</tt> contain the content for each track, e.g., video fra mes. A Matroska file | <t><tt>Cluster Elements</tt> contain the content for each track, e.g., video fra mes. A Matroska file | |||
<bcp14>SHOULD</bcp14> contain at least one <tt>Cluster Element</tt>. | <bcp14>SHOULD</bcp14> contain at least one <tt>Cluster Element</tt>. | |||
In the rare case it doesn't, there should be a form of Segment linking with othe | <!-- [rfced] How may we clarify "a form of Segment linking with other | |||
r Segments, possibly using Chapters, see <xref target="linked-segments"></xref>. | Segments"? | |||
</t> | ||||
Original: | ||||
In the rare case it doesn't, there should be a form of Segment | ||||
linking with other Segments, possibly using Chapters, see Section 17. | ||||
Perhaps: | ||||
In the rare case it doesn't, there should be a method for Segments | ||||
to link together, possibly using Chapters; see Section 17. | ||||
--> | ||||
In the rare case it doesn't, there should be a form of Segment linking with othe | ||||
r Segments, possibly using Chapters; see <xref target="linked-segments"></xref>. | ||||
</t> | ||||
<t>The <tt>Cluster Element</tt> helps to break up | <t>The <tt>Cluster Element</tt> helps to break up | |||
<tt>SimpleBlock</tt> or <tt>BlockGroup Elements</tt> and helps with seeking and error protection. | <tt>SimpleBlock</tt> or <tt>BlockGroup Elements</tt> and helps with seeking and error protection. | |||
Every <tt>Cluster Element</tt> <bcp14>MUST</bcp14> contain a <tt>Timestamp Eleme nt</tt>. | Every <tt>Cluster Element</tt> <bcp14>MUST</bcp14> contain a <tt>Timestamp Eleme nt</tt>. | |||
This <bcp14>SHOULD</bcp14> be the <tt>Timestamp Element</tt> used to play the fi rst <tt>Block</tt> in the <tt>Cluster Element</tt>, | This <bcp14>SHOULD</bcp14> be the <tt>Timestamp Element</tt> used to play the fi rst <tt>Block</tt> in the <tt>Cluster Element</tt>, | |||
unless a different value is needed to accommodate for more Blocks, see <xref tar get="block-timestamps"></xref>.</t> | unless a different value is needed to accommodate for more Blocks; see <xref tar get="block-timestamps"></xref>.</t> | |||
<t><tt>Cluster Elements</tt> contain one or more block element, such as <tt>Bloc kGroup</tt> or <tt>SimpleBlock</tt> elements. | <t><tt>Cluster Elements</tt> contain one or more block element, such as <tt>Bloc kGroup</tt> or <tt>SimpleBlock</tt> elements. | |||
In some situations, a <tt>Cluster Element</tt> <bcp14>MAY</bcp14> contain no blo ck element, for example in a live recording | In some situations, a <tt>Cluster Element</tt> <bcp14>MAY</bcp14> contain no blo ck element, for example, in a live recording | |||
when no data has been collected.</t> | when no data has been collected.</t> | |||
<t>A <tt>BlockGroup Element</tt> <bcp14>MAY</bcp14> contain a <tt>Block</tt> of data and any information relating directly to that <tt>Block</tt>.</t> | <t>A <tt>BlockGroup Element</tt> <bcp14>MAY</bcp14> contain a <tt>Block</tt> of data and any information relating directly to that <tt>Block</tt>.</t> | |||
<figure><name>Representation of a <tt>Cluster Element</tt> and its immediate <tt >Child Elements</tt>. | <figure><name>Representation of a <tt>Cluster Element</tt> and Its Immediate <tt >Child Elements</tt> | |||
</name> | </name> | |||
<artwork>+--------------------------+ | <artwork> | |||
+--------------------------+ | ||||
| Cluster | Timestamp | | | Cluster | Timestamp | | |||
| |----------------| | | |----------------| | |||
| | Position | | | | Position | | |||
| |----------------| | | |----------------| | |||
| | PrevSize | | | | PrevSize | | |||
| |----------------| | | |----------------| | |||
| | SimpleBlock | | | | SimpleBlock | | |||
| |----------------| | | |----------------| | |||
| | BlockGroup | | | | BlockGroup | | |||
+--------------------------+ | +--------------------------+ | |||
</artwork> | </artwork> | |||
</figure> | </figure> | |||
<figure><name>Representation of the <tt>Block Element</tt> structure. | <figure><name>Representation of the <tt>Block Element</tt> Structure | |||
</name> | </name> | |||
<artwork>+----------------------------------+ | <artwork> | |||
+----------------------------------+ | ||||
| Block | Portion of | Data Type | | | Block | Portion of | Data Type | | |||
| | a Block | - Bit Flag | | | | a Block | - Bit Flag | | |||
| |--------------------------+ | | |--------------------------+ | |||
| | Header | TrackNumber | | | | Header | TrackNumber | | |||
| | |-------------| | | | |-------------| | |||
| | | Timestamp | | | | | Timestamp | | |||
| | |-------------| | | | |-------------| | |||
| | | Flags | | | | | Flags | | |||
| | | - Gap | | | | | - Gap | | |||
| | | - Lacing | | | | | - Lacing | | |||
| | | - Reserved | | | | | - Reserved | | |||
| |--------------------------| | | |--------------------------| | |||
| | Optional | FrameSize | | | | Optional | FrameSize | | |||
| |--------------------------| | | |--------------------------| | |||
| | Data | Frame | | | | Data | Frame | | |||
+----------------------------------+ | +----------------------------------+ | |||
</artwork> | </artwork> | |||
</figure> | </figure> | |||
<t>Each <tt>Cluster</tt> <bcp14>MUST</bcp14> contain exactly one <tt>Timestamp E lement</tt>. The <tt>Timestamp Element</tt> value <bcp14>MUST</bcp14> | <t>Each <tt>Cluster</tt> <bcp14>MUST</bcp14> contain exactly one <tt>Timestamp E lement</tt>. The <tt>Timestamp Element</tt> value <bcp14>MUST</bcp14> | |||
be stored once per <tt>Cluster</tt>. The <tt>Timestamp Element</tt> in the <tt>C luster</tt> is relative to the entire <tt>Segment</tt>. | be stored once per <tt>Cluster</tt>. The <tt>Timestamp Element</tt> in the <tt>C luster</tt> is relative to the entire <tt>Segment</tt>. | |||
The <tt>Timestamp Element</tt> <bcp14>SHOULD</bcp14> be the first <tt>Element</t t> in the <tt>Cluster</tt> it belongs to, | The <tt>Timestamp Element</tt> <bcp14>SHOULD</bcp14> be the first <tt>Element</t t> in the <tt>Cluster</tt> it belongs to | |||
or the second <tt>Element</tt> if that Cluster contains a CRC-32 element (<xref target="crc-32"></xref>)</t> | or the second <tt>Element</tt> if that Cluster contains a CRC-32 element (<xref target="crc-32"></xref>)</t> | |||
<t>Additionally, the <tt>Block</tt> contains an offset that, when added to the < tt>Cluster</tt>'s <tt>Timestamp Element</tt> value, | <t>Additionally, the <tt>Block</tt> contains an offset that, when added to the < tt>Cluster</tt>'s <tt>Timestamp Element</tt> value, | |||
yields the <tt>Block</tt>'s effective timestamp. Therefore, timestamp in the <tt >Block</tt> itself is relative to | yields the <tt>Block</tt>'s effective timestamp. Therefore, the timestamp in the <tt>Block</tt> itself is relative to | |||
the <tt>Timestamp Element</tt> in the <tt>Cluster</tt>. For example, if the <tt> Timestamp Element</tt> in the <tt>Cluster</tt> | the <tt>Timestamp Element</tt> in the <tt>Cluster</tt>. For example, if the <tt> Timestamp Element</tt> in the <tt>Cluster</tt> | |||
is set to 10 seconds and a <tt>Block</tt> in that <tt>Cluster</tt> is supposed t o be played 12 seconds into the clip, | is set to 10 seconds and a <tt>Block</tt> in that <tt>Cluster</tt> is supposed t o be played 12 seconds into the clip, | |||
the timestamp in the <tt>Block</tt> would be set to 2 seconds.</t> | the timestamp in the <tt>Block</tt> would be set to 2 seconds.</t> | |||
<t>The <tt>ReferenceBlock</tt> in the <tt>BlockGroup</tt> is used instead of the | <t>The <tt>ReferenceBlock</tt> in the <tt>BlockGroup</tt> is used instead of the | |||
basic "P-frame"/"B-frame" description. | basic "P-frame"/"B-frame" description. | |||
Instead of simply saying that this <tt>Block</tt> depends on the <tt>Block</tt> | Instead of simply saying that this <tt>Block</tt> depends on the <tt>Block</tt> | |||
directly before, or directly afterwards, | directly before or directly after, | |||
the <tt>Timestamp</tt> of the necessary <tt>Block</tt> is used. Because there ca n be as many <tt>ReferenceBlock Elements</tt> | the <tt>Timestamp</tt> of the necessary <tt>Block</tt> is used. Because there ca n be as many <tt>ReferenceBlock Elements</tt> | |||
as necessary for a <tt>Block</tt>, it allows for some extremely complex referenc ing.</t> | as necessary for a <tt>Block</tt>, it allows for some extremely complex referenc ing.</t> | |||
<t>The <tt>Cues Element</tt> is used to seek when playing back a file by providi ng a temporal index | <t>The <tt>Cues Element</tt> is used to seek when playing back a file by providi ng a temporal index | |||
for some of the <tt>Tracks</tt>. It is similar to the <tt>SeekHead Element</tt>, but used for seeking to | for some of the <tt>Tracks</tt>. It is similar to the <tt>SeekHead Element</tt> but is used for seeking to | |||
a specific time when playing back the file. It is possible to seek without this element, | a specific time when playing back the file. It is possible to seek without this element, | |||
but it is much more difficult because a <tt>Matroska Reader</tt> would have to ' | but it is much more difficult because a <tt>Matroska Reader</tt> would have to " | |||
hunt and peck' | hunt and peck" | |||
through the file looking for the correct timestamp.</t> | through the file to look for the correct timestamp.</t> | |||
<t>The <tt>Cues Element</tt> <bcp14>SHOULD</bcp14> contain at least one <tt>CueP oint Element</tt>. Each <tt>CuePoint Element</tt> | <t>The <tt>Cues Element</tt> <bcp14>SHOULD</bcp14> contain at least one <tt>CueP oint Element</tt>. Each <tt>CuePoint Element</tt> | |||
stores the position of the <tt>Cluster</tt> that contains the <tt>BlockGroup</tt > or <tt>SimpleBlock Element</tt>. | stores the position of the <tt>Cluster</tt> that contains the <tt>BlockGroup</tt > or <tt>SimpleBlock Element</tt>. | |||
The timestamp is stored in the <tt>CueTime Element</tt> and location is stored i | The timestamp is stored in the <tt>CueTime Element</tt>, and the location is sto | |||
n the <tt>CueTrackPositions Element</tt>.</t> | red in the <tt>CueTrackPositions Element</tt>.</t> | |||
<t>The <tt>Cues Element</tt> is flexible. For instance, <tt>Cues Element</tt> ca | <t>The <tt>Cues Element</tt> is flexible. For instance, the <tt>Cues Element</tt | |||
n be used to index every | > can be used to index every | |||
single timestamp of every <tt>Block</tt> or they can be indexed selectively.</t> | single timestamp of every <tt>Block</tt> or they can be indexed selectively.</t> | |||
<figure><name>Representation of a <tt>Cues Element</tt> and two levels of its <t t>Descendant Elements</tt>. | <figure><name>Representation of a <tt>Cues Element</tt> and Two Levels of Its <t t>Descendant Elements</tt> | |||
</name> | </name> | |||
<artwork>+-------------------------------------+ | <artwork> | |||
+-------------------------------------+ | ||||
| Cues | CuePoint | CueTime | | | Cues | CuePoint | CueTime | | |||
| | |-------------------| | | | |-------------------| | |||
| | | CueTrackPositions | | | | | CueTrackPositions | | |||
| |------------------------------| | | |------------------------------| | |||
| | CuePoint | CueTime | | | | CuePoint | CueTime | | |||
| | |-------------------| | | | |-------------------| | |||
| | | CueTrackPositions | | | | | CueTrackPositions | | |||
+-------------------------------------+ | +-------------------------------------+ | |||
</artwork> | </artwork> | |||
</figure> | </figure> | |||
<t>The <tt>Attachments Element</tt> is for attaching files to a Matroska file su | <t>The <tt>Attachments Element</tt> is for attaching files to a Matroska file, s | |||
ch as pictures, | uch as pictures, | |||
fonts, webpages, etc.</t> | fonts, web pages, etc.</t> | |||
<figure><name>Representation of an <tt>Attachments Element</tt>. | <figure><name>Representation of an <tt>Attachments Element</tt> | |||
</name> | </name> | |||
<artwork>+------------------------------------------------+ | <artwork> | |||
+------------------------------------------------+ | ||||
| Attachments | AttachedFile | FileDescription | | | Attachments | AttachedFile | FileDescription | | |||
| | |-------------------| | | | |-------------------| | |||
| | | FileName | | | | | FileName | | |||
| | |-------------------| | | | |-------------------| | |||
| | | FileMediaType | | | | | FileMediaType | | |||
| | |-------------------| | | | |-------------------| | |||
| | | FileData | | | | | FileData | | |||
| | |-------------------| | | | |-------------------| | |||
| | | FileUID | | | | | FileUID | | |||
| | |-------------------| | | | |-------------------| | |||
skipping to change at line 472 ¶ | skipping to change at line 550 ¶ | |||
| | |-------------------| | | | |-------------------| | |||
| | | FileUsedStartTime | | | | | FileUsedStartTime | | |||
| | |-------------------| | | | |-------------------| | |||
| | | FileUsedEndTime | | | | | FileUsedEndTime | | |||
+------------------------------------------------+ | +------------------------------------------------+ | |||
</artwork> | </artwork> | |||
</figure> | </figure> | |||
<t>The <tt>Tags Element</tt> contains metadata that describes the <tt>Segment</t t> and potentially | <t>The <tt>Tags Element</tt> contains metadata that describes the <tt>Segment</t t> and potentially | |||
its <tt>Tracks</tt>, <tt>Chapters</tt>, and <tt>Attachments</tt>. Each <tt>Track </tt> or <tt>Chapter</tt> that those tags | its <tt>Tracks</tt>, <tt>Chapters</tt>, and <tt>Attachments</tt>. Each <tt>Track </tt> or <tt>Chapter</tt> that those tags | |||
applies to has its UID listed in the <tt>Tags</tt>. The <tt>Tags</tt> contain al l extra information about | applies to has its UID listed in the <tt>Tags</tt>. The <tt>Tags</tt> contain al l extra information about | |||
the file: scriptwriter, singer, actors, directors, titles, edition, price, dates | the file: scriptwriters, singers, actors, directors, titles, edition, price, dat | |||
, genre, comments, | es, genre, comments, | |||
etc. Tags can contain their values in multiple languages. For example, a movie's | etc. Tags can contain their values in multiple languages. | |||
"title" <tt>Tag</tt> | <!-- [rfced] May we update "the title it was released as in Germany" in one of | |||
the following ways to improve readability? | ||||
Original: | ||||
For example, a movie's "title" Tag might contain both the original | ||||
English title as well as the title it was released as in Germany. | ||||
Perhaps: | ||||
For example, a movie's "title" Tag might contain both the original | ||||
English title as well as the German title. | ||||
Or: | ||||
For example, a movie's "title" Tag might contain both the original | ||||
English title as well as the title used when it was released in Germany. | ||||
--> | ||||
For example, a movie's "title" <tt>Tag</tt> | ||||
might contain both the original English title as well as the title it was releas ed as in Germany.</t> | might contain both the original English title as well as the title it was releas ed as in Germany.</t> | |||
<figure><name>Representation of a <tt>Tags Element</tt> and three levels of its <tt>Children Elements</tt>. | <figure><name>Representation of a <tt>Tags Element</tt> and Three Levels of Its <tt>Children Elements</tt> | |||
</name> | </name> | |||
<artwork>+-------------------------------------------+ | <artwork> | |||
+-------------------------------------------+ | ||||
| Tags | Tag | Targets | TargetTypeValue | | | Tags | Tag | Targets | TargetTypeValue | | |||
| | | |------------------| | | | | |------------------| | |||
| | | | TargetType | | | | | | TargetType | | |||
| | | |------------------| | | | | |------------------| | |||
| | | | TagTrackUID | | | | | | TagTrackUID | | |||
| | | |------------------| | | | | |------------------| | |||
| | | | TagEditionUID | | | | | | TagEditionUID | | |||
| | | |------------------| | | | | |------------------| | |||
| | | | TagChapterUID | | | | | | TagChapterUID | | |||
| | | |------------------| | | | | |------------------| | |||
skipping to change at line 508 ¶ | skipping to change at line 603 ¶ | |||
| | | | TagBinary | | | | | | TagBinary | | |||
| | | |------------------| | | | | |------------------| | |||
| | | | SimpleTag | | | | | | SimpleTag | | |||
+-------------------------------------------+ | +-------------------------------------------+ | |||
</artwork> | </artwork> | |||
</figure> | </figure> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="matroska-schema"><name>Matroska Schema</name> | <section anchor="matroska-schema"><name>Matroska Schema</name> | |||
<t>This specification includes an <tt>EBML Schema</tt>, which defines the Elemen | <!-- [rfced] We are having trouble understanding the second sentence below. Is | |||
ts and structure | it redundant with the first sentence? Should it be either deleted or rephrased? | |||
of Matroska using the EBML Schema elements and attributes defined in Section 11. | ||||
1 of <xref target="RFC8794"></xref>. | Original: | |||
The EBML Schema defines every valid Matroska element in a manner defined by the | This specification includes an EBML Schema, which defines the | |||
EBML specification.</t> | Elements and structure of Matroska using the EBML Schema elements and | |||
<t>Attributes using their default value like <tt>minOccurs</tt>, <tt>minver</tt> | attributes defined in Section 11.1 of [RFC8794]. The EBML Schema | |||
, etc. or with undefined values like <tt>length</tt>, <tt>maxver</tt>, etc. are | defines every valid Matroska element in a manner defined by the EBML | |||
omitted.</t> | specification. | |||
<t>Here the definition of each Matroska Element is provided.</t> | ||||
Perhaps (delete second sentence): | ||||
This specification includes an EBML Schema that defines the | ||||
Elements and structure of Matroska using the EBML Schema elements and | ||||
attributes defined in Section 11.1 of [RFC8794]. | ||||
Or (rephrase second sentence): | ||||
This specification includes an EBML Schema that defines the | ||||
Elements and structure of Matroska using the EBML Schema elements and | ||||
attributes defined in Section 11.1 of [RFC8794]. The EBML Schema in this doc | ||||
ument | ||||
defines every valid Matroska element in a manner defined by the EBML | ||||
specification [RFC8794]. | ||||
--> | ||||
<t>This specification includes an <tt>EBML Schema</tt> that defines the Elements | ||||
and structure | ||||
of Matroska using the EBML Schema elements and attributes defined in <xref targe | ||||
t="RFC8794" sectionFormat="of" section="11.1"/>. | ||||
The EBML Schema defines every valid Matroska element in a manner defined by the | ||||
EBML specification <xref target="RFC8794"></xref>.</t> | ||||
<t>Attributes using their default value (like <tt>minOccurs</tt>, <tt>minver</tt | ||||
>, etc.) or attributes with undefined values (like <tt>length</tt>, <tt>maxver</ | ||||
tt>, etc.) are omitted.</t> | ||||
<t>The definitions for each Matroska Element are provided below.</t> | ||||
<section anchor="segment-element"><name>Segment Element</name> | <section anchor="segment-element"><name>Segment Element</name> | |||
<!-- [rfced] FYI - To make the definition lists in Section 5.1 consistent | ||||
(especially when definitions appear after a table), we moved the tables out | ||||
of the definition lists. | ||||
--> | ||||
<!-- [rfced] The following sections include paragraphs that are not part of | ||||
the <dl>. Should these paragraphs be nested under "definition:"? | ||||
5.1.3.5.5 | ||||
5.1.4.1.28.44 | ||||
5.1.4.1.28.45 | ||||
5.1.4.1.28.46 | ||||
--> | ||||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x18538067 / master</dd> | <dd>0x18538067 / master</dd> | |||
</dl> | <dt>unknownsizeallowed:</dt> | |||
<t>unknownsizeallowed: True</t> | <dd>True</dd> | |||
<dl spacing="compact"> | ||||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment</tt></dd> | <dd><tt>\Segment</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The Root Element that contains all other Top-Level Elements; see <xref targe t="data-layout"></xref>.</dd> | <dd>The Root Element that contains all other Top-Level Elements; see <xref targe t="data-layout"></xref>.</dd> | |||
</dl> | </dl> | |||
<section anchor="seekhead-element"><name>SeekHead Element</name> | <section anchor="seekhead-element"><name>SeekHead Element</name> | |||
skipping to change at line 590 ¶ | skipping to change at line 719 ¶ | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The Segment Position (<xref target="segment-position"></xref>) of a Top-Leve l Element.</dd> | <dd>The Segment Position (<xref target="segment-position"></xref>) of a Top-Leve l Element.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="info-element"><name>Info Element</name> | <section anchor="info-element"><name>Info Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x1549A966 / master</dd> | <dd>0x1549A966 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info</tt></dd> | <dd><tt>\Segment\Info</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
</dl> | <dt>recurring:</dt><dd>True</dd> | |||
<t>recurring: True</t> | ||||
<dl spacing="compact"> | ||||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contains general information about the Segment.</dd> | <dd>Contains general information about the Segment.</dd> | |||
</dl> | </dl> | |||
<section anchor="segmentuuid-element"><name>SegmentUUID Element</name> | <section anchor="segmentuuid-element"><name>SegmentUUID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x73A4 / binary</dd> | <dd>0x73A4 / binary</dd> | |||
<dt>length:</dt> | <dt>length:</dt> | |||
<dd>16</dd> | <dd>16</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\SegmentUUID</tt></dd> | <dd><tt>\Segment\Info\SegmentUUID</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A randomly generated unique ID to identify the Segment amongst many others ( 128 bits). It is equivalent to a UUID v4 <xref target="RFC4122"></xref> with all bits randomly (or pseudo-randomly) chosen. An actual UUID v4 value, where some bits are not random, <bcp14>MAY</bcp14> also be used.</dd> | <dd>A randomly generated UID that identifies the Segment amongst many others (12 8 bits). It is equivalent to a Universally Unique Identifier (UUID) v4 <xref tar get="RFC4122"></xref> with all bits randomly (or pseudorandomly) chosen. An act ual UUID v4 value, where some bits are not random, <bcp14>MAY</bcp14> also be us ed.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>If the Segment is a part of a Linked Segment, then this Element is <bcp14>RE QUIRED</bcp14>. | <dd>If the Segment is a part of a Linked Segment, then this Element is <bcp14>RE QUIRED</bcp14>. | |||
The value of the unique ID <bcp14>MUST</bcp14> contain at least one bit set to 1 .</dd> | The value of the UID <bcp14>MUST</bcp14> contain at least one bit set to 1.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="segmentfilename-element"><name>SegmentFilename Element</name> | <section anchor="segmentfilename-element"><name>SegmentFilename Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x7384 / utf-8</dd> | <dd>0x7384 / utf-8</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\SegmentFilename</tt></dd> | <dd><tt>\Segment\Info\SegmentFilename</tt></dd> | |||
skipping to change at line 651 ¶ | skipping to change at line 776 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x3CB923 / binary</dd> | <dd>0x3CB923 / binary</dd> | |||
<dt>length:</dt> | <dt>length:</dt> | |||
<dd>16</dd> | <dd>16</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\PrevUUID</tt></dd> | <dd><tt>\Segment\Info\PrevUUID</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>An ID to identify the previous Segment of a Linked Segment.</dd> | <dd>An ID that identifies the previous Segment of a Linked Segment.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>If the Segment is a part of a Linked Segment that uses Hard Linking (<xref t arget="hard-linking"></xref>), | <dd>If the Segment is a part of a Linked Segment that uses Hard Linking (<xref t arget="hard-linking"></xref>), | |||
then either the PrevUUID or the NextUUID Element is <bcp14>REQUIRED</bcp14>. If a Segment contains a PrevUUID but not a NextUUID, | then either the PrevUUID or the NextUUID Element is <bcp14>REQUIRED</bcp14>. If a Segment contains a PrevUUID but not a NextUUID, | |||
then it <bcp14>MAY</bcp14> be considered as the last Segment of the Linked Segme nt. The PrevUUID <bcp14>MUST NOT</bcp14> be equal to the SegmentUUID.</dd> | then it <bcp14>MAY</bcp14> be considered as the last Segment of the Linked Segme nt. The PrevUUID <bcp14>MUST NOT</bcp14> be equal to the SegmentUUID.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="prevfilename-element"><name>PrevFilename Element</name> | <section anchor="prevfilename-element"><name>PrevFilename Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
skipping to change at line 688 ¶ | skipping to change at line 813 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x3EB923 / binary</dd> | <dd>0x3EB923 / binary</dd> | |||
<dt>length:</dt> | <dt>length:</dt> | |||
<dd>16</dd> | <dd>16</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\NextUUID</tt></dd> | <dd><tt>\Segment\Info\NextUUID</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>An ID to identify the next Segment of a Linked Segment.</dd> | <dd>An ID that identifies the next Segment of a Linked Segment.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>If the Segment is a part of a Linked Segment that uses Hard Linking (<xref t arget="hard-linking"></xref>), | <dd>If the Segment is a part of a Linked Segment that uses Hard Linking (<xref t arget="hard-linking"></xref>), | |||
then either the PrevUUID or the NextUUID Element is <bcp14>REQUIRED</bcp14>. If a Segment contains a NextUUID but not a PrevUUID, | then either the PrevUUID or the NextUUID Element is <bcp14>REQUIRED</bcp14>. If a Segment contains a NextUUID but not a PrevUUID, | |||
then it <bcp14>MAY</bcp14> be considered as the first Segment of the Linked Segm ent. The NextUUID <bcp14>MUST NOT</bcp14> be equal to the SegmentUUID.</dd> | then it <bcp14>MAY</bcp14> be considered as the first Segment of the Linked Segm ent. The NextUUID <bcp14>MUST NOT</bcp14> be equal to the SegmentUUID.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="nextfilename-element"><name>NextFilename Element</name> | <section anchor="nextfilename-element"><name>NextFilename Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
skipping to change at line 723 ¶ | skipping to change at line 848 ¶ | |||
<section anchor="segmentfamily-element"><name>SegmentFamily Element</name> | <section anchor="segmentfamily-element"><name>SegmentFamily Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x4444 / binary</dd> | <dd>0x4444 / binary</dd> | |||
<dt>length:</dt> | <dt>length:</dt> | |||
<dd>16</dd> | <dd>16</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\SegmentFamily</tt></dd> | <dd><tt>\Segment\Info\SegmentFamily</tt></dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A unique ID that all Segments of a Linked Segment <bcp14>MUST</bcp14> share (128 bits). It is equivalent to a UUID v4 <xref target="RFC4122"></xref> with al l bits randomly (or pseudo-randomly) chosen. An actual UUID v4 value, where some bits are not random, <bcp14>MAY</bcp14> also be used.</dd> | <dd>A UID that all Segments of a Linked Segment <bcp14>MUST</bcp14> share (128 b its). It is equivalent to a UUID v4 <xref target="RFC4122"></xref> with all bits randomly (or pseudorandomly) chosen. An actual UUID v4 value, where some bits a re not random, <bcp14>MAY</bcp14> also be used.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>If the Segment Info contains a <tt>ChapterTranslate</tt> element, this Eleme nt is <bcp14>REQUIRED</bcp14>.</dd> | <dd>If the Segment Info contains a <tt>ChapterTranslate</tt> element, this Eleme nt is <bcp14>REQUIRED</bcp14>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="chaptertranslate-element"><name>ChapterTranslate Element</name> | <section anchor="chaptertranslate-element"><name>ChapterTranslate Element</name> | |||
<!-- [rfced] Does "they" refer to "Chapter Codec" in these sentences? If so, | ||||
we will updated "Chapter Codec" to "Chapter Codecs". | ||||
Original: | ||||
rationale: Chapter Codec may need to address different segments, but | ||||
they may not know of the way to identify such segment when stored | ||||
in Matroska. | ||||
rationale: Chapter Codec may need to address content in specific | ||||
track, but they may not know of the way to identify tracks in | ||||
Matroska. | ||||
Perhaps: | ||||
rationale: Chapter Codecs may need to address different segments, but | ||||
they may not know of the way to identify such segments when stored | ||||
in Matroska. | ||||
rationale: Chapter Codecs may need to address content in specific | ||||
track, but they may not know of the way to identify tracks in | ||||
Matroska. | ||||
--> | ||||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x6924 / master</dd> | <dd>0x6924 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\ChapterTranslate</tt></dd> | <dd><tt>\Segment\Info\ChapterTranslate</tt></dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The mapping between this <tt>Segment</tt> and a segment value in the given C | <dd>The mapping between this <tt>Segment</tt> and a | |||
hapter Codec.</dd> | segment value in the given Chapter Codec.</dd> | |||
<dt>rationale:</dt> | <dt>rationale:</dt> | |||
<dd>Chapter Codec may need to address different segments, but they may not know of the way to identify such segment when stored in Matroska. | <dd>Chapter Codec may need to address different segments, but they may not know of the way to identify such segments when stored in Matroska. | |||
This element and its child elements add a way to map the internal segments known to the Chapter Codec to the Segment IDs in Matroska. | This element and its child elements add a way to map the internal segments known to the Chapter Codec to the Segment IDs in Matroska. | |||
This allows remuxing a file with Chapter Codec without changing the content of t he codec data, just the Segment mapping.</dd> | This allows remuxing a file with the Chapter Codec without changing the content of the codec data, just the Segment mapping.</dd> | |||
</dl> | </dl> | |||
<section anchor="chaptertranslateid-element"><name>ChapterTranslateID Element</n ame> | <section anchor="chaptertranslateid-element"><name>ChapterTranslateID Element</n ame> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x69A5 / binary</dd> | <dd>0x69A5 / binary</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\ChapterTranslate\ChapterTranslateID</tt></dd> | <dd><tt>\Segment\Info\ChapterTranslate\ChapterTranslateID</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
skipping to change at line 770 ¶ | skipping to change at line 918 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x69BF / uinteger</dd> | <dd>0x69BF / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\ChapterTranslate\ChapterTranslateCodec</tt></dd> | <dd><tt>\Segment\Info\ChapterTranslate\ChapterTranslateCodec</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>This <tt>ChapterTranslate</tt> applies to this chapter codec of the given ch apter edition(s); see <xref target="chapprocesscodecid-element"></xref>.</dd> | <dd>This <tt>ChapterTranslate</tt> applies to this chapter codec of the given ch apter edition(s); see <xref target="chapprocesscodecid-element"></xref>.</dd> | |||
<dt>defined values:</dt> | ||||
<dd>See <xref target="ChapterTranslateCodecValues"/>.</dd> | ||||
</dl> | </dl> | |||
<t>defined values:</t> | <table anchor="ChapterTranslateCodecValues"><name>ChapterTranslateCodec Values</ | |||
<table anchor="ChapterTranslateCodecValues"><name>ChapterTranslateCodec values</ | name> | |||
name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
<th align="left">definition</th> | <th align="left">definition</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
skipping to change at line 794 ¶ | skipping to change at line 944 ¶ | |||
<td align="left">Matroska Script</td> | <td align="left">Matroska Script</td> | |||
<td align="left">Chapter commands using the Matroska Script codec.</td> | <td align="left">Chapter commands using the Matroska Script codec.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>1</tt></td> | <td align="left"><tt>1</tt></td> | |||
<td align="left">DVD-menu</td> | <td align="left">DVD-menu</td> | |||
<td align="left">Chapter commands using the DVD-like codec.</td> | <td align="left">Chapter commands using the DVD-like codec.</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table> | |||
</section> | ||||
<section anchor="chaptertranslateeditionuid-element"><name>ChapterTranslateEditi onUID Element</name> | <section anchor="chaptertranslateeditionuid-element"><name>ChapterTranslateEditi onUID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x69FC / uinteger</dd> | <dd>0x69FC / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\ChapterTranslate\ChapterTranslateEditionUID</tt></dd> | <dd><tt>\Segment\Info\ChapterTranslate\ChapterTranslateEditionUID</tt></dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Specify a chapter edition UID on which this <tt>ChapterTranslate</tt> applie s.</dd> | <dd>Specify a chapter edition UID to which this <tt>ChapterTranslate</tt> applie s.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>When no <tt>ChapterTranslateEditionUID</tt> is specified in the <tt>ChapterT ranslate</tt>, the <tt>ChapterTranslate</tt> applies to all chapter editions fou nd in the Segment using the given <tt>ChapterTranslateCodec</tt>.</dd> | <dd>When no <tt>ChapterTranslateEditionUID</tt> is specified in the <tt>ChapterT ranslate</tt>, the <tt>ChapterTranslate</tt> applies to all chapter editions fou nd in the Segment using the given <tt>ChapterTranslateCodec</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="timestampscale-element"><name>TimestampScale Element</name> | <section anchor="timestampscale-element"><name>TimestampScale Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
skipping to change at line 839 ¶ | skipping to change at line 990 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x4489 / float</dd> | <dd>0x4489 / float</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>> 0x0p+0</dd> | <dd>> 0x0p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\Duration</tt></dd> | <dd><tt>\Segment\Info\Duration</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Duration of the Segment, expressed in Segment Ticks which is based on Timest ampScale; see <xref target="timestamp-ticks"></xref>.</dd> | <dd>Duration of the Segment, expressed in Segment Ticks, which are based on Time stampScale; see <xref target="timestamp-ticks"></xref>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="dateutc-element"><name>DateUTC Element</name> | <section anchor="dateutc-element"><name>DateUTC Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x4461 / date</dd> | <dd>0x4461 / date</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\DateUTC</tt></dd> | <dd><tt>\Segment\Info\DateUTC</tt></dd> | |||
skipping to change at line 873 ¶ | skipping to change at line 1024 ¶ | |||
<dd><tt>\Segment\Info\Title</tt></dd> | <dd><tt>\Segment\Info\Title</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>General name of the Segment.</dd> | <dd>General name of the Segment.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="muxingapp-element"><name>MuxingApp Element</name> | <section anchor="muxingapp-element"><name>MuxingApp Element</name> | |||
<!-- [rfced] Will readers know what "libmatroska" is? Would a citation be | ||||
helpful or is the current okay? | ||||
Original: | ||||
definition: Muxing application or library (example: "libmatroska- | ||||
0.4.3"). | ||||
... | ||||
definition: Bogus StereoMode value used in old versions of | ||||
libmatroska. | ||||
... | ||||
usage notes: This Element MUST NOT be used. It was an incorrect | ||||
value used in libmatroska up to 0.9.0. | ||||
... | ||||
There was also a bug in libmatroska | ||||
prior to 0.9.0 that would save/read it as 0x53B9 instead of 0x53B8; | ||||
see OldStereoMode (Section 5.1.4.1.28.5). | ||||
--> | ||||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x4D80 / utf-8</dd> | <dd>0x4D80 / utf-8</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\MuxingApp</tt></dd> | <dd><tt>\Segment\Info\MuxingApp</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Muxing application or library (example: "libmatroska-0.4.3").</dd> | <dd>Muxing application or library (example: "libmatroska-0.4.3").</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>Include the full name of the application or library followed by the version number.</dd> | <dd>Include the full name of the application or library followed by the version number.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="writingapp-element"><name>WritingApp Element</name> | <section anchor="writingapp-element"><name>WritingApp Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x5741 / utf-8</dd> | <dd>0x5741 / utf-8</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\WritingApp</tt></dd> | <dd><tt>\Segment\Info\WritingApp</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Writing application (example: "mkvmerge-0.3.3").</dd> | <dd>Writing application (example: "mkvmerge-0.3.3").</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>Include the full name of the application followed by the version number.</dd > | <dd>Include the full name of the application followed by the version number.</dd > | |||
</dl> | </dl> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="cluster-element"><name>Cluster Element</name> | <section anchor="cluster-element"><name>Cluster Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x1F43B675 / master</dd> | <dd>0x1F43B675 / master</dd> | |||
</dl> | <dt>unknownsizeallowed:</dt> | |||
<t>unknownsizeallowed: True</t> | <dd>True</dd> | |||
<dl spacing="compact"> | ||||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster</tt></dd> | <dd><tt>\Segment\Cluster</tt></dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The Top-Level Element containing the (monolithic) Block structure.</dd> | <dd>The Top-Level Element containing the (monolithic) Block structure.</dd> | |||
</dl> | </dl> | |||
<section anchor="timestamp-element"><name>Timestamp Element</name> | <section anchor="timestamp-element"><name>Timestamp Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xE7 / uinteger</dd> | <dd>0xE7 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\Timestamp</tt></dd> | <dd><tt>\Segment\Cluster\Timestamp</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Absolute timestamp of the cluster, expressed in Segment Ticks which is based on TimestampScale; see <xref target="timestamp-ticks"></xref>.</dd> | <dd>Absolute timestamp of the cluster, expressed in Segment Ticks, which are bas ed on TimestampScale; see <xref target="timestamp-ticks"></xref>.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>This element <bcp14>SHOULD</bcp14> be the first child element of the Cluster | <dd>This element <bcp14>SHOULD</bcp14> be the first child element of the Cluster | |||
it belongs to, | it belongs to or the second if that Cluster contains a CRC-32 element (<xref ta | |||
or the second if that Cluster contains a CRC-32 element (<xref target="crc-32">< | rget="crc-32"></xref>).</dd> | |||
/xref>).</dd> | ||||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="position-element"><name>Position Element</name> | <section anchor="position-element"><name>Position Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xA7 / uinteger</dd> | <dd>0xA7 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\Position</tt></dd> | <dd><tt>\Segment\Cluster\Position</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>maxver:</dt> | <dt>maxver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The Segment Position of the Cluster in the Segment (0 in live streams). | <dd>The Segment Position of the Cluster in the Segment (0 in live streams). | |||
It might help to resynchronise offset on damaged streams.</dd> | It might help to resynchronize the offset on damaged streams.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="prevsize-element"><name>PrevSize Element</name> | <section anchor="prevsize-element"><name>PrevSize Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xAB / uinteger</dd> | <dd>0xAB / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\PrevSize</tt></dd> | <dd><tt>\Segment\Cluster\PrevSize</tt></dd> | |||
skipping to change at line 977 ¶ | skipping to change at line 1143 ¶ | |||
<section anchor="simpleblock-element"><name>SimpleBlock Element</name> | <section anchor="simpleblock-element"><name>SimpleBlock Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xA3 / binary</dd> | <dd>0xA3 / binary</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\SimpleBlock</tt></dd> | <dd><tt>\Segment\Cluster\SimpleBlock</tt></dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>2</dd> | <dd>2</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Similar to Block, see <xref target="block-structure"></xref>, but without al | ||||
l the extra information, | <dd>Similar to Block (see <xref target="block-structure"></xref>) but without al | |||
mostly used to reduced overhead when no extra feature is needed; see <xref targe | l the extra information. | |||
t="simpleblock-structure"></xref> on SimpleBlock Structure.</dd> | Mostly used to reduce overhead when no extra feature is needed; see <xref target | |||
="simpleblock-structure"></xref> on SimpleBlock Structure.</dd> | ||||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="blockgroup-element"><name>BlockGroup Element</name> | <section anchor="blockgroup-element"><name>BlockGroup Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xA0 / master</dd> | <dd>0xA0 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup</tt></dd> | |||
skipping to change at line 1018 ¶ | skipping to change at line 1185 ¶ | |||
<section anchor="blockadditions-element"><name>BlockAdditions Element</name> | <section anchor="blockadditions-element"><name>BlockAdditions Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x75A1 / master</dd> | <dd>0x75A1 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\BlockAdditions</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\BlockAdditions</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contain additional binary data to complete the main one; see Codec BlockAddi | <!-- [rfced] Will readers understand "the main one" here? | |||
tions section of <xref target="MatroskaCodec"></xref> for more information. | ||||
Original: | ||||
definition: Contain additional binary data to complete the main one; | ||||
see Codec BlockAdditions section of [MatroskaCodec] for more | ||||
information. | ||||
Perhaps: | ||||
definition: Contain additional binary data to complete the Block element; | ||||
see Section 4.1.5 of [MatroskaCodec] for more | ||||
information. | ||||
--> | ||||
<dd>Contains additional binary data to complete the main one; see <xref | ||||
target="I-D.ietf-cellar-codec" sectionFormat="of" section="4.1.5" ></xref> for m | ||||
ore information. | ||||
An EBML parser that has no knowledge of the Block structure could still see and use/skip these data.</dd> | An EBML parser that has no knowledge of the Block structure could still see and use/skip these data.</dd> | |||
</dl> | </dl> | |||
<section anchor="blockmore-element"><name>BlockMore Element</name> | <section anchor="blockmore-element"><name>BlockMore Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xA6 / master</dd> | <dd>0xA6 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\BlockAdditions\BlockMore</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\BlockAdditions\BlockMore</tt></dd> | |||
<dt>minOccurs:</dt> | <dt>minOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contain the BlockAdditional and some parameters.</dd> | <dd>Contains the BlockAdditional and some parameters.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="blockadditional-element"><name>BlockAdditional Element</name> | <section anchor="blockadditional-element"><name>BlockAdditional Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xA5 / binary</dd> | <dd>0xA5 / binary</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\BlockAdditions\BlockMore\BlockAdditional</tt ></dd> | <dd><tt>\Segment\Cluster\BlockGroup\BlockAdditions\BlockMore\BlockAdditional</tt ></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Interpreted by the codec as it wishes (using the BlockAddID).</dd> | <dd>Interpreted by the codec as it wishes (using the BlockAddID).</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="blockaddid-element"><name>BlockAddID Element</name> | <section anchor="blockaddid-element"><name>BlockAddID Element</name> | |||
<!-- [rfced] Section 5.1.3.5.2.3 ("BlockAddID Element") has two "usage | ||||
notes". Would you like to combine these or leave as is? | ||||
Original: | ||||
usage notes: Each BlockAddID value MUST be unique between all | ||||
BlockMore elements found in a BlockAdditions. | ||||
usage notes: To keep MaxBlockAdditionID as low as possible, small | ||||
values SHOULD be used. | ||||
Perhaps: | ||||
usage notes: Each BlockAddID value MUST be unique between all | ||||
BlockMore elements found in a BlockAdditions. To keep MaxBlockAdditionID | ||||
as low as possible, small values SHOULD be used. | ||||
--> | ||||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0xEE / uinteger / 1</dd> | <dd>0xEE / uinteger / 1</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\BlockAdditions\BlockMore\BlockAddID</tt></dd > | <dd><tt>\Segment\Cluster\BlockGroup\BlockAdditions\BlockMore\BlockAddID</tt></dd > | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>An ID to identify how to interpret the BlockAdditional data; see Codec Block | <dd>An ID that identifies how to interpret the BlockAdditional data; see <xref t | |||
Additions section of <xref target="MatroskaCodec"></xref> for more information. | arget="I-D.ietf-cellar-codec" sectionFormat="of" section="4.1.5" ></xref> for mo | |||
re information. | ||||
<!-- [rfced] Please review "the meaning of the BlockAdditional data" in the | ||||
following sentences. Will this be clear? | ||||
Original: | ||||
A value of 1 indicates that the meaning of the BlockAdditional data | ||||
is defined by the codec. Any other value indicates the meaning of the | ||||
BlockAdditional data is found in the BlockAddIDType found in the TrackEntry. | ||||
Perhaps: | ||||
A value of 1 indicates that the BlockAdditional data is defined by | ||||
the codec. Any other value indicates that the BlockAdditional data should be han | ||||
dled according | ||||
to the BlockAddIDType that is located in the TrackEntry. | ||||
--> | ||||
A value of 1 indicates that the meaning of the BlockAdditional data is defined b y the codec. | A value of 1 indicates that the meaning of the BlockAdditional data is defined b y the codec. | |||
Any other value indicates the meaning of the BlockAdditional data is found in th e BlockAddIDType found in the TrackEntry.</dd> | Any other value indicates the meaning of the BlockAdditional data is found in th e BlockAddIDType found in the TrackEntry.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>Each BlockAddID value <bcp14>MUST</bcp14> be unique between all BlockMore el ements found in a BlockAdditions.</dd> | <dd>Each BlockAddID value <bcp14>MUST</bcp14> be unique between all BlockMore el ements found in a BlockAdditions.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>To keep MaxBlockAdditionID as low as possible, small values <bcp14>SHOULD</b cp14> be used.</dd> | <dd>To keep MaxBlockAdditionID as low as possible, small values <bcp14>SHOULD</b cp14> be used.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="blockduration-element"><name>BlockDuration Element</name> | <section anchor="blockduration-element"><name>BlockDuration Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x9B / uinteger</dd> | <dd>0x9B / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\BlockDuration</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\BlockDuration</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<!-- [rfced] For elements containing "see implementation notes", would it be | ||||
helpful to direct the reader to the corresponding table? Or is the | ||||
current okay? Here is one example: | ||||
Original (BlockDuration Element): | ||||
minOccurs / maxOccurs: see implementation notes / 1 | ||||
Perhaps (BlockDuration Element): | ||||
minOccurs / maxOccurs: see Table 2 / 1 --> | ||||
<dd>see implementation notes / 1</dd> | <dd>see implementation notes / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The duration of the Block, expressed in Track Ticks; see <xref target="times tamp-ticks"></xref>. | <dd>The duration of the Block, expressed in Track Ticks; see <xref target="times tamp-ticks"></xref>. | |||
The BlockDuration Element can be useful at the end of a Track to define the dura tion of the last frame (as there is no subsequent Block available), | The BlockDuration Element can be useful at the end of a Track to define the dura tion of the last frame (as there is no subsequent Block available) | |||
or when there is a break in a track like for subtitle tracks.</dd> | or when there is a break in a track like for subtitle tracks.</dd> | |||
<dt>notes:</dt> | ||||
<dd>See <xref target="BlockDurationNotes"/>.</dd> | ||||
</dl> | </dl> | |||
<t>notes:</t> | <table anchor="BlockDurationNotes"><name>BlockDuration Implementation Notes</nam | |||
<table anchor="BlockDurationNotes"><name>BlockDuration implementation notes</nam | e> | |||
e> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">attribute</th> | <th align="left">attribute</th> | |||
<th align="left">note</th> | <th align="left">note</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left">minOccurs</td> | <td align="left">minOccurs</td> | |||
<td align="left">BlockDuration <bcp14>MUST</bcp14> be set (minOccurs=1) if the a ssociated TrackEntry stores a DefaultDuration value.</td> | <td align="left">BlockDuration <bcp14>MUST</bcp14> be set (minOccurs=1) if the a ssociated TrackEntry stores a DefaultDuration value.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left">default</td> | <td align="left">default</td> | |||
<td align="left">When not written and with no DefaultDuration, the value is assu | ||||
med to be the difference between the timestamp of this Block and the timestamp o | <!-- [rfced] How may we clarity "When not written and with no DefaultDuration"? | |||
f the next Block in "display" order (not coding order).</td> | ||||
Original: | ||||
When not written and with no DefaultDuration, the value is assumed to be the | ||||
difference between the timestamp of this Block and the timestamp of the next Blo | ||||
ck in "display" | ||||
order (not coding order). | ||||
Perhaps: | ||||
If a value is not specified and no DefaultDuration is present, the value is assu | ||||
med to be the | ||||
difference between the timestamp of this Block and the timestamp of the next Blo | ||||
ck in "display" | ||||
order (not coding order). | ||||
--> | ||||
<td align="left">When not written and with no DefaultDuration, the value is assu | ||||
med to be the difference between the timestamp of this Block and the timestamp o | ||||
f the next Block in "display" order (not coding order).</td> | ||||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table> | |||
</section> | ||||
<section anchor="referencepriority-element"><name>ReferencePriority Element</nam e> | <section anchor="referencepriority-element"><name>ReferencePriority Element</nam e> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0xFA / uinteger / 0</dd> | <dd>0xFA / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\ReferencePriority</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\ReferencePriority</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>This frame is referenced and has the specified cache priority. | <dd>This frame is referenced and has the specified cache priority. | |||
In cache only a frame of the same or higher priority can replace this frame. A v alue of 0 means the frame is not referenced.</dd> | In the cache, only a frame of the same or higher priority can replace this frame . A value of 0 means the frame is not referenced.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="referenceblock-element"><name>ReferenceBlock Element</name> | <section anchor="referenceblock-element"><name>ReferenceBlock Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xFB / integer</dd> | <dd>0xFB / integer</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\ReferenceBlock</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\ReferenceBlock</tt></dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A timestamp value, relative to the timestamp of the Block in this BlockGroup , expressed in Track Ticks; see <xref target="timestamp-ticks"></xref>. | <dd>A timestamp value, relative to the timestamp of the Block in this BlockGroup , expressed in Track Ticks; see <xref target="timestamp-ticks"></xref>. | |||
This is used to reference other frames necessary to decode this frame. | This is used to reference other frames necessary to decode this frame. | |||
The relative value <bcp14>SHOULD</bcp14> correspond to a valid <tt>Block</tt> th | The relative value <bcp14>SHOULD</bcp14> correspond to a valid <tt>Block</tt> th | |||
is <tt>Block</tt> depends on. | at this <tt>Block</tt> depends on. | |||
Historically Matroska Writer didn't write the actual <tt>Block(s)</tt> this <tt> | Historically, Matroska Writers didn't write the actual <tt>Block(s)</tt> that th | |||
Block</tt> depends on, but <em>some</em> <tt>Block</tt> in the past.</dd> | is <tt>Block</tt> depends on, but they did write <em>some</em> <tt>Block(s)</tt> | |||
in the past.</dd> | ||||
</dl> | </dl> | |||
<t>The value "0" <bcp14>MAY</bcp14> also be used to signify this <tt>B | ||||
lock</tt> cannot be decoded on its own, but without knownledge of which <tt>Bloc | <!-- [rfced] How may we rephrase the part of this sentence starting with "but | |||
k</tt> is necessary. In this case, other <tt>ReferenceBlock</tt> <bcp14>MUST NOT | without..." for clarity? | |||
</bcp14> be found in the same <tt>BlockGroup</tt>.</t> | ||||
<t>If the <tt>BlockGroup</tt> doesn't have any <tt>ReferenceBlock</tt> element, | Original: | |||
then the <tt>Block</tt> it contains can be decoded without using any other <tt>B | The value "0" MAY also be used to signify this Block cannot be | |||
lock</tt> data.</t> | decoded on its own, but without knownledge of which Block is necessary. | |||
Perhaps: | ||||
The value "0" MAY also be used to signify that this Block cannot be | ||||
decoded on its own but the necessary Block is unknown. | ||||
--> | ||||
<t>The value "0" <bcp14>MAY</bcp14> also be used to signify that this <tt>Block< | ||||
/tt> cannot be decoded on its own, but without knowledge of which <tt>Block</tt> | ||||
is necessary. In this case, other <tt>ReferenceBlock</tt> Elements <bcp14>MUST | ||||
NOT</bcp14> be found in the same <tt>BlockGroup</tt>.</t> | ||||
<t>If the <tt>BlockGroup</tt> doesn't have a <tt>ReferenceBlock</tt> element, th | ||||
en the <tt>Block</tt> it contains can be decoded without using any other <tt>Blo | ||||
ck</tt> data.</t> | ||||
</section> | </section> | |||
<section anchor="codecstate-element"><name>CodecState Element</name> | <section anchor="codecstate-element"><name>CodecState Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xA4 / binary</dd> | <dd>0xA4 / binary</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\CodecState</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\CodecState</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
skipping to change at line 1171 ¶ | skipping to change at line 1417 ¶ | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x75A2 / integer</dd> | <dd>0x75A2 / integer</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\DiscardPadding</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\DiscardPadding</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Duration of the silent data added to the Block, expressed in Matroska Ticks -- i.e., in nanoseconds; see <xref target="timestamp-ticks"></xref> | <dd>Duration of the silent data added to the Block, expressed in Matroska Ticks -- i.e., in nanoseconds; see <xref target="timestamp-ticks"></xref> | |||
(padding at the end of the Block for positive value, at the beginning of the Blo ck for negative value). | (padding at the end of the Block for positive values and at the beginning of the Block for negative values). | |||
The duration of DiscardPadding is not calculated in the duration of the TrackEnt ry and <bcp14>SHOULD</bcp14> be discarded during playback.</dd> | The duration of DiscardPadding is not calculated in the duration of the TrackEnt ry and <bcp14>SHOULD</bcp14> be discarded during playback.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="tracks-element"><name>Tracks Element</name> | <section anchor="tracks-element"><name>Tracks Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x1654AE6B / master</dd> | <dd>0x1654AE6B / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks</tt></dd> | <dd><tt>\Segment\Tracks</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
</dl> | <dt>recurring:</dt><dd>True</dd> | |||
<t>recurring: True</t> | ||||
<dl spacing="compact"> | ||||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A Top-Level Element of information with many tracks described.</dd> | <dd>A Top-Level Element of information with many tracks described.</dd> | |||
</dl> | </dl> | |||
<section anchor="trackentry-element"><name>TrackEntry Element</name> | <section anchor="trackentry-element"><name>TrackEntry Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xAE / master</dd> | <dd>0xAE / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
skipping to change at line 1225 ¶ | skipping to change at line 1468 ¶ | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackNumber</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackNumber</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The track number as used in the Block Header.</dd> | <dd>The track number as used in the Block Header.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="trackuid-element"><name>TrackUID Element</name> | <section anchor="trackuid-element"><name>TrackUID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x73C5 / uinteger</dd> | <dd>0x73C5 / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackUID</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackUID</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A unique ID to identify the Track.</dd> | <dd>A UID that identifies the Track.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="tracktype-element"><name>TrackType Element</name> | <section anchor="tracktype-element"><name>TrackType Element</name> | |||
<!-- [rfced] May we rephrase the following in Table 3 (last column)? | ||||
Original: | ||||
A mix of different other TrackType. | ||||
Perhaps: | ||||
A mix of other TrackType Elements. | ||||
--> | ||||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x83 / uinteger</dd> | <dd>0x83 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackType</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackType</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The <tt>TrackType</tt> defines the type of each frame found in the Track. | <dd>The <tt>TrackType</tt> defines the type of each frame found in the Track. | |||
The value <bcp14>SHOULD</bcp14> be stored on 1 octet.</dd> | The value <bcp14>SHOULD</bcp14> be stored on 1 octet.</dd> | |||
<dt>defined values:</dt> | ||||
<dd>See <xref target="TrackTypeValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>defined values:</t> | <table anchor="TrackTypeValues"><name>TrackType Values</name> | |||
<table anchor="TrackTypeValues"><name>TrackType values</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
<th align="left">each frame contains</th> | <th align="left">contents of each frame</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>1</tt></td> | <td align="left"><tt>1</tt></td> | |||
<td align="left">video</td> | <td align="left">video</td> | |||
<td align="left">An image.</td> | <td align="left">An image.</td> | |||
</tr> | </tr> | |||
skipping to change at line 1313 ¶ | skipping to change at line 1567 ¶ | |||
<td align="left">control</td> | <td align="left">control</td> | |||
<td align="left">Metadata used to control the player of the <tt>Matroska Player< /tt>.</td> | <td align="left">Metadata used to control the player of the <tt>Matroska Player< /tt>.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>33</tt></td> | <td align="left"><tt>33</tt></td> | |||
<td align="left">metadata</td> | <td align="left">metadata</td> | |||
<td align="left">Timed metadata that can be passed on to the <tt>Matroska Player </tt>.</td> | <td align="left">Timed metadata that can be passed on to the <tt>Matroska Player </tt>.</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="flagenabled-element"><name>FlagEnabled Element</name> | <section anchor="flagenabled-element"><name>FlagEnabled Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0xB9 / uinteger / 1</dd> | <dd>0xB9 / uinteger / 1</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0-1</dd> | <dd>0-1</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\FlagEnabled</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\FlagEnabled</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>2</dd> | <dd>2</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Set to 1 if the track is usable. It is possible to turn a not usable track i nto a usable track using chapter codecs or control tracks.</dd> | <dd>Set to 1 if the track is usable. It is possible to turn a track that is not usable into a usable track using chapter codecs or control tracks.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="flagdefault-element"><name>FlagDefault Element</name> | <section anchor="flagdefault-element"><name>FlagDefault Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x88 / uinteger / 1</dd> | <dd>0x88 / uinteger / 1</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0-1</dd> | <dd>0-1</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\FlagDefault</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\FlagDefault</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Set if that track (audio, video or subs) is eligible for automatic selection | ||||
by the player; see <xref target="default-track-selection"></xref> for more deta | <!-- [rfced] Should "subs" here be updated to "subtitle"? | |||
ils.</dd> | ||||
Original: | ||||
definition: Set if that track (audio, video or subs) is eligible for | ||||
automatic selection by the player; see Section 19 for more | ||||
details. | ||||
--> | ||||
<!-- [rfced] For the definitions of "FlagDefault Element" and "FlagForced | ||||
Element", should the following sentences be rephrased to clarify the | ||||
values that should be set? We note that surrounding elements use the | ||||
phrase "Set to 1..." consistently. | ||||
Original: | ||||
Set if that track (audio, video or subs) is eligible for automatic | ||||
selection by the player; see Section 19 for more details. | ||||
... | ||||
Set if that | ||||
track is eligible for automatic selection by the player if it matches the | ||||
user's language preference... | ||||
Perhaps: | ||||
Set to 1 if the track (audio, video, or subs) is eligible for | ||||
automatic selection by the player; see Section 19 for more details. | ||||
... | ||||
Set to 1 if the track is eligible for automatic selection by the player if it | ||||
matches the user's language preference... | ||||
--> | ||||
<dd>Set if the track (audio, video, or subs) is eligible for automatic selection | ||||
by the player; see <xref target="default-track-selection"></xref> for more deta | ||||
ils.</dd> | ||||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="flagforced-element"><name>FlagForced Element</name> | <section anchor="flagforced-element"><name>FlagForced Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x55AA / uinteger / 0</dd> | <dd>0x55AA / uinteger / 0</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0-1</dd> | <dd>0-1</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\FlagForced</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\FlagForced</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Applies only to subtitles. Set if that track is eligible for automatic selec | <dd>Applies only to subtitles. Set if the track is eligible for automatic select | |||
tion by the player if it matches the user's language preference, | ion by the player if it matches the user's language preference, | |||
even if the user's preferences would normally not enable subtitles with the sele | even if the user's preferences would not normally enable subtitles with the sele | |||
cted audio track; | cted audio track; | |||
this can be used for tracks containing only translations of foreign-language aud | this can be used for tracks containing only translations of audio in foreign lan | |||
io or onscreen text. | guages or on-screen text. | |||
See <xref target="default-track-selection"></xref> for more details.</dd> | See <xref target="default-track-selection"></xref> for more details.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="flaghearingimpaired-element"><name>FlagHearingImpaired Element< /name> | <section anchor="flaghearingimpaired-element"><name>FlagHearingImpaired Element< /name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55AB / uinteger</dd> | <dd>0x55AB / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0-1</dd> | <dd>0-1</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\FlagHearingImpaired</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\FlagHearingImpaired</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Set to 1 if and only if that track is suitable for users with hearing impair ments.</dd> | <dd>Set to 1 if and only if the track is suitable for users with hearing impairm ents.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="flagvisualimpaired-element"><name>FlagVisualImpaired Element</n ame> | <section anchor="flagvisualimpaired-element"><name>FlagVisualImpaired Element</n ame> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55AC / uinteger</dd> | <dd>0x55AC / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0-1</dd> | <dd>0-1</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\FlagVisualImpaired</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\FlagVisualImpaired</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Set to 1 if and only if that track is suitable for users with visual impairm ents.</dd> | <dd>Set to 1 if and only if the track is suitable for users with visual impairme nts.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="flagtextdescriptions-element"><name>FlagTextDescriptions Elemen t</name> | <section anchor="flagtextdescriptions-element"><name>FlagTextDescriptions Elemen t</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55AD / uinteger</dd> | <dd>0x55AD / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0-1</dd> | <dd>0-1</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\FlagTextDescriptions</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\FlagTextDescriptions</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Set to 1 if and only if that track contains textual descriptions of video co ntent.</dd> | <dd>Set to 1 if and only if the track contains textual descriptions of video con tent.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="flagoriginal-element"><name>FlagOriginal Element</name> | <section anchor="flagoriginal-element"><name>FlagOriginal Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55AE / uinteger</dd> | <dd>0x55AE / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0-1</dd> | <dd>0-1</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\FlagOriginal</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\FlagOriginal</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Set to 1 if and only if that track is in the content's original language.</d d> | <dd>Set to 1 if and only if the track is in the content's original language.</dd > | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="flagcommentary-element"><name>FlagCommentary Element</name> | <section anchor="flagcommentary-element"><name>FlagCommentary Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55AF / uinteger</dd> | <dd>0x55AF / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0-1</dd> | <dd>0-1</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\FlagCommentary</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\FlagCommentary</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Set to 1 if and only if that track contains commentary.</dd> | <dd>Set to 1 if and only if the track contains commentary.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="flaglacing-element"><name>FlagLacing Element</name> | <section anchor="flaglacing-element"><name>FlagLacing Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x9C / uinteger / 1</dd> | <dd>0x9C / uinteger / 1</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0-1</dd> | <dd>0-1</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\FlagLacing</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\FlagLacing</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Set to 1 if the track <bcp14>MAY</bcp14> contain blocks using lacing. When s | <dd>Set to 1 if the track <bcp14>MAY</bcp14> contain blocks that use lacing. | |||
et to 0 all blocks <bcp14>MUST</bcp14> have their lacing flags set to No lacing; | When set to 0, all blocks <bcp14>MUST</bcp14> have their lacing flags set to "no | |||
see <xref target="block-lacing"></xref> on Block Lacing.</dd> | lacing"; see <xref target="block-lacing"></xref> on Block Lacing.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="defaultduration-element"><name>DefaultDuration Element</name> | <section anchor="defaultduration-element"><name>DefaultDuration Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x23E383 / uinteger</dd> | <dd>0x23E383 / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\DefaultDuration</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\DefaultDuration</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Number of nanoseconds per frame, expressed in Matroska Ticks -- i.e., in nan oseconds; see <xref target="timestamp-ticks"></xref> | <dd>Number of nanoseconds per frame, expressed in Matroska Ticks -- i.e., in nan oseconds; see <xref target="timestamp-ticks"></xref> | |||
(frame in the Matroska sense -- one Element put into a (Simple)Block).</dd> | ("frame" in the Matroska sense -- one Element put into a (Simple)Block).</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="defaultdecodedfieldduration-element"><name>DefaultDecodedFieldD uration Element</name> | <section anchor="defaultdecodedfieldduration-element"><name>DefaultDecodedFieldD uration Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x234E7A / uinteger</dd> | <dd>0x234E7A / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\DefaultDecodedFieldDuration</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\DefaultDecodedFieldDuration</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The period between two successive fields at the output of the decoding proce ss, expressed in Matroska Ticks -- i.e., in nanoseconds; see <xref target="times tamp-ticks"></xref>. | <dd>The period between two successive fields at the output of the decoding proce ss, expressed in Matroska Ticks -- i.e., in nanoseconds; see <xref target="times tamp-ticks"></xref>. | |||
see <xref target="defaultdecodedfieldduration"></xref> for more information</dd> | See <xref target="defaultdecodedfieldduration"></xref> for more information</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="tracktimestampscale-element"><name>TrackTimestampScale Element< /name> | <section anchor="tracktimestampscale-element"><name>TrackTimestampScale Element< /name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x23314F / float / 0x1p+0</dd> | <dd>0x23314F / float / 0x1p+0</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>> 0x0p+0</dd> | <dd>> 0x0p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackTimestampScale</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackTimestampScale</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>maxver:</dt> | <dt>maxver:</dt> | |||
<dd>3</dd> | <dd>3</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The scale to apply on this track to work at normal speed in relation with ot her tracks | <dd>The scale to apply on this track to work at normal speed in relation with ot her tracks | |||
(mostly used to adjust video speed when the audio length differs).</dd> | (mostly used to adjust video speed when the audio length differs).</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="maxblockadditionid-element"><name>MaxBlockAdditionID Element</n ame> | <section anchor="maxblockadditionid-element"><name>MaxBlockAdditionID Element</n ame> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x55EE / uinteger / 0</dd> | <dd>0x55EE / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\MaxBlockAdditionID</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\MaxBlockAdditionID</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The maximum value of BlockAddID (<xref target="blockaddid-element"></xref>). | <dd>The maximum value of BlockAddID (<xref target="blockaddid-element"></xref>). | |||
A value 0 means there is no BlockAdditions (<xref target="blockadditions-element "></xref>) for this track.</dd> | A value of 0 means there is no BlockAdditions (<xref target="blockadditions-elem ent"></xref>) for this track.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="blockadditionmapping-element"><name>BlockAdditionMapping Elemen t</name> | <section anchor="blockadditionmapping-element"><name>BlockAdditionMapping Elemen t</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x41E4 / master</dd> | <dd>0x41E4 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\BlockAdditionMapping</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\BlockAdditionMapping</tt></dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contains elements that extend the track format, by adding content either to each frame, | <dd>Contains elements that extend the track format by adding content either to e ach frame, | |||
with BlockAddID (<xref target="blockaddid-element"></xref>), or to the track as a whole | with BlockAddID (<xref target="blockaddid-element"></xref>), or to the track as a whole | |||
with BlockAddIDExtraData.</dd> | with BlockAddIDExtraData.</dd> | |||
</dl> | </dl> | |||
<section anchor="blockaddidvalue-element"><name>BlockAddIDValue Element</name> | <section anchor="blockaddidvalue-element"><name>BlockAddIDValue Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x41F0 / uinteger</dd> | <dd>0x41F0 / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
skipping to change at line 1577 ¶ | skipping to change at line 1861 ¶ | |||
<dd>0x41F0 / uinteger</dd> | <dd>0x41F0 / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>>=2</dd> | <dd>>=2</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\BlockAdditionMapping\BlockAddIDValue</tt></dd > | <dd><tt>\Segment\Tracks\TrackEntry\BlockAdditionMapping\BlockAddIDValue</tt></dd > | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>If the track format extension needs content beside frames, | <dd>If the track format extension needs content beside frames, | |||
the value refers to the BlockAddID (<xref target="blockaddid-element"></xref>), value being described.</dd> | the value refers to the BlockAddID (<xref target="blockaddid-element"></xref>) v alue being described.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>To keep MaxBlockAdditionID as low as possible, small values <bcp14>SHOULD</b cp14> be used.</dd> | <dd>To keep MaxBlockAdditionID as low as possible, small values <bcp14>SHOULD</b cp14> be used.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="blockaddidname-element"><name>BlockAddIDName Element</name> | <section anchor="blockaddidname-element"><name>BlockAddIDName Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x41A4 / string</dd> | <dd>0x41A4 / string</dd> | |||
skipping to change at line 1681 ¶ | skipping to change at line 1966 ¶ | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x22B59D / string</dd> | <dd>0x22B59D / string</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\LanguageBCP47</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\LanguageBCP47</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The language of the track, | <dd>The language of the track, | |||
in the <xref target="BCP47"></xref> form; see <xref target="language-codes"></xr ef> on language codes. | in the form defined in <xref target="RFC5646"></xref>; see <xref target="languag e-codes"></xref> on language codes. | |||
If this Element is used, then any Language Elements used in the same TrackEntry <bcp14>MUST</bcp14> be ignored.</dd> | If this Element is used, then any Language Elements used in the same TrackEntry <bcp14>MUST</bcp14> be ignored.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="codecid-element"><name>CodecID Element</name> | <section anchor="codecid-element"><name>CodecID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x86 / string</dd> | <dd>0x86 / string</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\CodecID</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\CodecID</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>An ID corresponding to the codec, | <dd>An ID corresponding to the codec; | |||
see <xref target="MatroskaCodec"></xref> for more info.</dd> | see <xref target="I-D.ietf-cellar-codec"></xref> for more info.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="codecprivate-element"><name>CodecPrivate Element</name> | <section anchor="codecprivate-element"><name>CodecPrivate Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x63A2 / binary</dd> | <dd>0x63A2 / binary</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\CodecPrivate</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\CodecPrivate</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Private data only known to the codec.</dd> | <dd>Private data only known to the codec.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="codecname-element"><name>CodecName Element</name> | <section anchor="codecname-element"><name>CodecName Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x258688 / utf-8</dd> | <dd>0x258688 / utf-8</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\CodecName</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\CodecName</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
skipping to change at line 1763 ¶ | skipping to change at line 2048 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x56AA / uinteger / 0</dd> | <dd>0x56AA / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\CodecDelay</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\CodecDelay</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>CodecDelay is The codec-built-in delay, expressed in Matroska Ticks -- i.e., | <dd>The built-in delay for the codec, expressed in Matroska Ticks -- i.e., in na | |||
in nanoseconds; see <xref target="timestamp-ticks"></xref>. | noseconds; see <xref target="timestamp-ticks"></xref>. | |||
It represents the amount of codec samples that will be discarded by the decoder | It represents the number of codec samples that will be discarded by the decoder | |||
during playback. | during playback. | |||
This timestamp value <bcp14>MUST</bcp14> be subtracted from each frame timestamp in order to get the timestamp that will be actually played. | This timestamp value <bcp14>MUST</bcp14> be subtracted from each frame timestamp in order to get the timestamp that will be actually played. | |||
The value <bcp14>SHOULD</bcp14> be small so the muxing of tracks with the same a ctual timestamp are in the same Cluster.</dd> | The value <bcp14>SHOULD</bcp14> be small so the muxing of tracks with the same a ctual timestamp are in the same Cluster.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="seekpreroll-element"><name>SeekPreRoll Element</name> | <section anchor="seekpreroll-element"><name>SeekPreRoll Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x56BB / uinteger / 0</dd> | <dd>0x56BB / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\SeekPreRoll</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\SeekPreRoll</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>After a discontinuity, SeekPreRoll is the duration of the data | <dd>After a discontinuity, the duration of the data | |||
the decoder <bcp14>MUST</bcp14> decode before the decoded data is valid, express | that the decoder <bcp14>MUST</bcp14> decode before the decoded data is valid, ex | |||
ed in Matroska Ticks -- i.e., in nanoseconds; see <xref target="timestamp-ticks" | pressed in Matroska Ticks -- i.e., in nanoseconds; see <xref target="timestamp-t | |||
></xref>.</dd> | icks"></xref>.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="tracktranslate-element"><name>TrackTranslate Element</name> | <section anchor="tracktranslate-element"><name>TrackTranslate Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x6624 / master</dd> | <dd>0x6624 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackTranslate</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackTranslate</tt></dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The mapping between this <tt>TrackEntry</tt> and a track value in the given Chapter Codec.</dd> | <dd>The mapping between this <tt>TrackEntry</tt> and a track value in the given Chapter Codec.</dd> | |||
<dt>rationale:</dt> | <dt>rationale:</dt> | |||
<dd>Chapter Codec may need to address content in specific track, but they may no t know of the way to identify tracks in Matroska. | <dd>Chapter Codec may need to address content in a specific track, but they may not know of the way to identify tracks in Matroska. | |||
This element and its child elements add a way to map the internal tracks known t o the Chapter Codec to the track IDs in Matroska. | This element and its child elements add a way to map the internal tracks known t o the Chapter Codec to the track IDs in Matroska. | |||
This allows remuxing a file with Chapter Codec without changing the content of t he codec data, just the track mapping.</dd> | This allows remuxing a file with Chapter Codec without changing the content of t he codec data, just the track mapping.</dd> | |||
</dl> | </dl> | |||
<section anchor="tracktranslatetrackid-element"><name>TrackTranslateTrackID Elem ent</name> | <section anchor="tracktranslatetrackid-element"><name>TrackTranslateTrackID Elem ent</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x66A5 / binary</dd> | <dd>0x66A5 / binary</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
skipping to change at line 1821 ¶ | skipping to change at line 2106 ¶ | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The binary value used to represent this <tt>TrackEntry</tt> in the chapter c odec data. | <dd>The binary value used to represent this <tt>TrackEntry</tt> in the chapter c odec data. | |||
The format depends on the <tt>ChapProcessCodecID</tt> used; see <xref target="ch approcesscodecid-element"></xref>.</dd> | The format depends on the <tt>ChapProcessCodecID</tt> used; see <xref target="ch approcesscodecid-element"></xref>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="tracktranslatecodec-element"><name>TrackTranslateCodec Element< /name> | <section anchor="tracktranslatecodec-element"><name>TrackTranslateCodec Element< /name> | |||
<!-- [rfced] Would updating "This TrackTranslate applies" in one of the | ||||
following ways improve readability and maintain consistency with other | ||||
definition?? | ||||
Original: | ||||
definition: This TrackTranslate applies to this chapter codec of the | ||||
given chapter edition(s); see Section 5.1.7.1.4.15. | ||||
Perhaps: | ||||
definition: Applies to the chapter codec of the | ||||
given chapter edition(s); see Section 5.1.7.1.4.15. | ||||
Or: | ||||
definition: Indicates that this TrackTranslate applies to the chapter codec | ||||
of the | ||||
given chapter edition(s); see Section 5.1.7.1.4.15. | ||||
--> | ||||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x66BF / uinteger</dd> | <dd>0x66BF / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackTranslate\TrackTranslateCodec</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackTranslate\TrackTranslateCodec</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>This <tt>TrackTranslate</tt> applies to this chapter codec of the given chap | <dd>This <tt>TrackTranslate</tt> applies to the chapter codec of the given chapt | |||
ter edition(s); see <xref target="chapprocesscodecid-element"></xref>.</dd> | er edition(s); see <xref target="chapprocesscodecid-element"></xref>.</dd> | |||
<dt>defined values:</dt> | ||||
<dd>See <xref target="TrackTranslateCodecValues"/>.</dd> | ||||
</dl> | </dl> | |||
<t>defined values:</t> | ||||
<table anchor="TrackTranslateCodecValues"><name>TrackTranslateCodec values</name | <table anchor="TrackTranslateCodecValues"><name>TrackTranslateCodec Values</name | |||
> | > | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
<th align="left">definition</th> | <th align="left">definition</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
skipping to change at line 1854 ¶ | skipping to change at line 2158 ¶ | |||
<td align="left">Matroska Script</td> | <td align="left">Matroska Script</td> | |||
<td align="left">Chapter commands using the Matroska Script codec.</td> | <td align="left">Chapter commands using the Matroska Script codec.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>1</tt></td> | <td align="left"><tt>1</tt></td> | |||
<td align="left">DVD-menu</td> | <td align="left">DVD-menu</td> | |||
<td align="left">Chapter commands using the DVD-like codec.</td> | <td align="left">Chapter commands using the DVD-like codec.</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table> | |||
</section> | ||||
<section anchor="tracktranslateeditionuid-element"><name>TrackTranslateEditionUI D Element</name> | <section anchor="tracktranslateeditionuid-element"><name>TrackTranslateEditionUI D Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x66FC / uinteger</dd> | <dd>0x66FC / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackTranslate\TrackTranslateEditionUID</tt>< /dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackTranslate\TrackTranslateEditionUID</tt>< /dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Specify a chapter edition UID on which this <tt>TrackTranslate</tt> applies. </dd> | <dd>Specifies a chapter edition UID to which this <tt>TrackTranslate</tt> applie s.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>When no <tt>TrackTranslateEditionUID</tt> is specified in the <tt>TrackTrans late</tt>, the <tt>TrackTranslate</tt> applies to all chapter editions found in the Segment using the given <tt>TrackTranslateCodec</tt>.</dd> | <dd>When no <tt>TrackTranslateEditionUID</tt> is specified in the <tt>TrackTrans late</tt>, the <tt>TrackTranslate</tt> applies to all chapter editions found in the Segment using the given <tt>TrackTranslateCodec</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="video-element"><name>Video Element</name> | <section anchor="video-element"><name>Video Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
skipping to change at line 1896 ¶ | skipping to change at line 2201 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x9A / uinteger / 0</dd> | <dd>0x9A / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\FlagInterlaced</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\FlagInterlaced</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>2</dd> | <dd>2</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Specify whether the video frames in this track are interlaced.</dd> | <dd>Specifies whether the video frames in this track are interlaced.</dd> | |||
<dt>defined values:</dt> | ||||
<dd>See <xref target="FlagInterlacedValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>defined values:</t> | ||||
<table anchor="FlagInterlacedValues"><name>FlagInterlaced values</name> | <table anchor="FlagInterlacedValues"><name>FlagInterlaced Values</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
<th align="left">definition</th> | <th align="left">definition</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
<td align="left">undetermined</td> | <td align="left">undetermined</td> | |||
<td align="left">Unknown status.This value <bcp14>SHOULD</bcp14> be avoided.</td > | <td align="left">Unknown status. This value <bcp14>SHOULD</bcp14> be avoided.</t d> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>1</tt></td> | <td align="left"><tt>1</tt></td> | |||
<td align="left">interlaced</td> | <td align="left">interlaced</td> | |||
<td align="left">Interlaced frames.</td> | <td align="left">Interlaced frames.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>2</tt></td> | <td align="left"><tt>2</tt></td> | |||
<td align="left">progressive</td> | <td align="left">progressive</td> | |||
<td align="left">No interlacing.</td> | <td align="left">No interlacing.</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="fieldorder-element"><name>FieldOrder Element</name> | <section anchor="fieldorder-element"><name>FieldOrder Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x9D / uinteger / 2</dd> | <dd>0x9D / uinteger / 2</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\FieldOrder</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\FieldOrder</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Specify the field ordering of video frames in this track.</dd> | <dd>Specifies the field ordering of video frames in this track.</dd> | |||
<dt>defined values:</dt> | ||||
<dd>See <xref target="FieldOrderValues"/>.</dd> | ||||
<dt>usage notes:</dt> | ||||
<dd>If FlagInterlaced is not set to 1, this Element <bcp14>MUST</bcp14> be ignor | ||||
ed.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>defined values:</t> | ||||
<table anchor="FieldOrderValues"><name>FieldOrder values</name> | <table anchor="FieldOrderValues"><name>FieldOrder Values</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
<th align="left">definition</th> | <th align="left">definition</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
<td align="left">progressive</td> | <td align="left">progressive</td> | |||
<td align="left">Interlaced frames.This value <bcp14>SHOULD</bcp14> be avoided, setting FlagInterlaced to 2 is sufficient.</td> | <td align="left">Interlaced frames. This value <bcp14>SHOULD</bcp14> be avoided; setting FlagInterlaced to 2 is sufficient.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>1</tt></td> | <td align="left"><tt>1</tt></td> | |||
<td align="left">tff</td> | <td align="left">tff</td> | |||
<td align="left">Top field displayed first. Top field stored first.</td> | <td align="left">Top field displayed first. Top field stored first.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>2</tt></td> | <td align="left"><tt>2</tt></td> | |||
<td align="left">undetermined</td> | <td align="left">undetermined</td> | |||
<td align="left">Unknown field order.This value <bcp14>SHOULD</bcp14> be avoided .</td> | <td align="left">Unknown field order. This value <bcp14>SHOULD</bcp14> be avoide d.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>6</tt></td> | <td align="left"><tt>6</tt></td> | |||
<td align="left">bff</td> | <td align="left">bff</td> | |||
<td align="left">Bottom field displayed first. Bottom field stored first.</td> | <td align="left">Bottom field displayed first. Bottom field stored first.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>9</tt></td> | <td align="left"><tt>9</tt></td> | |||
skipping to change at line 1992 ¶ | skipping to change at line 2307 ¶ | |||
<td align="left">Top field displayed first. Fields are interleaved in storage wi th the top line of the top field stored first.</td> | <td align="left">Top field displayed first. Fields are interleaved in storage wi th the top line of the top field stored first.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>14</tt></td> | <td align="left"><tt>14</tt></td> | |||
<td align="left">tff(swapped)</td> | <td align="left">tff(swapped)</td> | |||
<td align="left">Bottom field displayed first. Fields are interleaved in storage with the top line of the top field stored first.</td> | <td align="left">Bottom field displayed first. Fields are interleaved in storage with the top line of the top field stored first.</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table> | </table> | |||
<dl spacing="compact"> | ||||
<dt>usage notes:</dt> | ||||
<dd>If FlagInterlaced is not set to 1, this Element <bcp14>MUST</bcp14> be ignor | ||||
ed.</dd> | ||||
</dl> | ||||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="stereomode-element"><name>StereoMode Element</name> | <section anchor="stereomode-element"><name>StereoMode Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x53B8 / uinteger / 0</dd> | <dd>0x53B8 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\StereoMode</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\StereoMode</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>3</dd> | <dd>3</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Stereo-3D video mode. There are some more details in <xref target="multi-pla | <dd>Stereo-3D video mode. See <xref target="multi-planar-and-3d-videos"></xref> | |||
nar-and-3d-videos"></xref>.</dd> | for more details.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="StereoModeValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>restrictions:</t> | ||||
<table anchor="StereoModeValues"><name>StereoMode values</name> | <table anchor="StereoModeValues"><name>StereoMode Values</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
skipping to change at line 2098 ¶ | skipping to change at line 2412 ¶ | |||
<tr> | <tr> | |||
<td align="left"><tt>13</tt></td> | <td align="left"><tt>13</tt></td> | |||
<td align="left">both eyes laced in one Block (left eye is first)</td> | <td align="left">both eyes laced in one Block (left eye is first)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>14</tt></td> | <td align="left"><tt>14</tt></td> | |||
<td align="left">both eyes laced in one Block (right eye is first)</td> | <td align="left">both eyes laced in one Block (right eye is first)</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="alphamode-element"><name>AlphaMode Element</name> | <section anchor="alphamode-element"><name>AlphaMode Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x53C0 / uinteger / 0</dd> | <dd>0x53C0 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\AlphaMode</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\AlphaMode</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>3</dd> | <dd>3</dd> | |||
<!-- [rfced] Please clarify the parenthetical in the second sentence below, | ||||
i.e., "(considered either as 0 or 1)". Also, we updated "by to" to "by" | ||||
in the first sentence. Please review. | ||||
Original: | ||||
definition: Indicate whether the BlockAdditional Element with | ||||
BlockAddID of "1" contains Alpha data as defined by to the Codec | ||||
Mapping for the CodecID. Undefined values SHOULD NOT be used, as | ||||
the behavior of known implementations is different (considered | ||||
either as 0 or 1). | ||||
Perhaps: | ||||
definition: Indicates whether the BlockAdditional Element with | ||||
BlockAddID of "1" contains Alpha data as defined by the Codec | ||||
Mapping for the CodecID. Undefined values (i.e., values other than | ||||
0 or 1) SHOULD NOT be used, as the behavior of known implementations | ||||
is different. | ||||
--> | ||||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Indicate whether the BlockAdditional Element with BlockAddID of "1" | <dd>Indicates whether the BlockAdditional Element with BlockAddID of "1" contain | |||
; contains Alpha data, as defined by to the Codec Mapping for the <tt>CodecID</t | s Alpha data, as defined by the Codec Mapping for the <tt>CodecID</tt>. | |||
t>. | Undefined values <bcp14>SHOULD NOT</bcp14> be used, as the behavior of known imp | |||
Undefined values <bcp14>SHOULD NOT</bcp14> be used as the behavior of known impl | lementations is different (considered either as 0 or 1).</dd> | |||
ementations is different (considered either as 0 or 1).</dd> | <dt>defined values:</dt> | |||
<dd>See <xref target="AlphaModeValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>defined values:</t> | <table anchor="AlphaModeValues"><name>AlphaMode Values</name> | |||
<table anchor="AlphaModeValues"><name>AlphaMode values</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
<th align="left">definition</th> | <th align="left">definition</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
<td align="left">none</td> | <td align="left">none</td> | |||
<td align="left">The BlockAdditional Element with BlockAddID of "1" do es not exist or <bcp14>SHOULD NOT</bcp14> be considered as containing such data. </td> | <td align="left">The BlockAdditional Element with BlockAddID of "1" does not exi st or <bcp14>SHOULD NOT</bcp14> be considered as containing such data.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>1</tt></td> | <td align="left"><tt>1</tt></td> | |||
<td align="left">present</td> | <td align="left">present</td> | |||
<td align="left">The BlockAdditional Element with BlockAddID of "1" co ntains alpha channel data.</td> | <td align="left">The BlockAdditional Element with BlockAddID of "1" contains alp ha channel data.</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="oldstereomode-element"><name>OldStereoMode Element</name> | <section anchor="oldstereomode-element"><name>OldStereoMode Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x53B9 / uinteger</dd> | <dd>0x53B9 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\OldStereoMode</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\OldStereoMode</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>maxver:</dt> | <dt>maxver:</dt> | |||
<dd>2</dd> | <dd>2</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Bogus StereoMode value used in old versions of libmatroska.</dd> | <dd>Bogus StereoMode value used in old versions of libmatroska.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="OldStereoModeValues"/>.</dd> | ||||
<dt>usage notes:</dt> | ||||
<dd>This Element <bcp14>MUST NOT</bcp14> be used. It was an incorrect value used | ||||
in libmatroska up to 0.9.0.</dd> | ||||
</dl> | </dl> | |||
<t>restrictions:</t> | <table anchor="OldStereoModeValues"><name>OldStereoMode Values</name> | |||
<table anchor="OldStereoModeValues"><name>OldStereoMode values</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
skipping to change at line 2187 ¶ | skipping to change at line 2526 ¶ | |||
<td align="left"><tt>2</tt></td> | <td align="left"><tt>2</tt></td> | |||
<td align="left">left eye</td> | <td align="left">left eye</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>3</tt></td> | <td align="left"><tt>3</tt></td> | |||
<td align="left">both eyes</td> | <td align="left">both eyes</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table> | </table> | |||
<dl spacing="compact"> | ||||
<dt>usage notes:</dt> | ||||
<dd>This Element <bcp14>MUST NOT</bcp14> be used. It was an incorrect value used | ||||
in libmatroska up to 0.9.0.</dd> | ||||
</dl> | ||||
</section> | </section> | |||
<section anchor="pixelwidth-element"><name>PixelWidth Element</name> | <section anchor="pixelwidth-element"><name>PixelWidth Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xB0 / uinteger</dd> | <dd>0xB0 / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\PixelWidth</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\PixelWidth</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Width of the encoded video frames in pixels.</dd> | <dd>Width of the encoded video frames in pixels.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="pixelheight-element"><name>PixelHeight Element</name> | <section anchor="pixelheight-element"><name>PixelHeight Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xBA / uinteger</dd> | <dd>0xBA / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\PixelHeight</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\PixelHeight</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Height of the encoded video frames in pixels.</dd> | <dd>Height of the encoded video frames in pixels.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="pixelcropbottom-element"><name>PixelCropBottom Element</name> | <section anchor="pixelcropbottom-element"><name>PixelCropBottom Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x54AA / uinteger / 0</dd> | <dd>0x54AA / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\PixelCropBottom</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\PixelCropBottom</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The number of video pixels to remove at the bottom of the image.</dd> | <dd>The number of video pixels to remove at the bottom of the image.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="pixelcroptop-element"><name>PixelCropTop Element</name> | <section anchor="pixelcroptop-element"><name>PixelCropTop Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x54BB / uinteger / 0</dd> | <dd>0x54BB / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\PixelCropTop</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\PixelCropTop</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The number of video pixels to remove at the top of the image.</dd> | <dd>The number of video pixels to remove at the top of the image.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="pixelcropleft-element"><name>PixelCropLeft Element</name> | <section anchor="pixelcropleft-element"><name>PixelCropLeft Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x54CC / uinteger / 0</dd> | <dd>0x54CC / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\PixelCropLeft</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\PixelCropLeft</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The number of video pixels to remove on the left of the image.</dd> | <dd>The number of video pixels to remove on the left of the image.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="pixelcropright-element"><name>PixelCropRight Element</name> | <section anchor="pixelcropright-element"><name>PixelCropRight Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x54DD / uinteger / 0</dd> | <dd>0x54DD / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\PixelCropRight</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\PixelCropRight</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The number of video pixels to remove on the right of the image.</dd> | <dd>The number of video pixels to remove on the right of the image.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="displaywidth-element"><name>DisplayWidth Element</name> | <section anchor="displaywidth-element"><name>DisplayWidth Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x54B0 / uinteger</dd> | <dd>0x54B0 / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\DisplayWidth</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\DisplayWidth</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Width of the video frames to display. Applies to the video frame after cropp ing (PixelCrop* Elements).</dd> | <dd>Width of the video frames to display. Applies to the video frame after cropp ing (PixelCrop* Elements).</dd> | |||
<dt>notes:</dt> | ||||
<dd>See <xref target="DisplayWidthNotes"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>notes:</t> | ||||
<table anchor="DisplayWidthNotes"><name>DisplayWidth implementation notes</name> | <table anchor="DisplayWidthNotes"><name>DisplayWidth Implementation Notes</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">attribute</th> | <th align="left">attribute</th> | |||
<th align="left">note</th> | <th align="left">note</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left">default</td> | <td align="left">default</td> | |||
<td align="left">If the DisplayUnit of the same TrackEntry is 0, then the defaul t value for DisplayWidth is equal toPixelWidth - PixelCropLeft - PixelCropRight, else there is no default value.</td> | <td align="left">If the DisplayUnit of the same TrackEntry is 0, then the defaul t value for DisplayWidth is equal to PixelWidth - PixelCropLeft - PixelCropRight ; else, there is no default value.</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="displayheight-element"><name>DisplayHeight Element</name> | <section anchor="displayheight-element"><name>DisplayHeight Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x54BA / uinteger</dd> | <dd>0x54BA / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\DisplayHeight</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\DisplayHeight</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Height of the video frames to display. Applies to the video frame after crop ping (PixelCrop* Elements).</dd> | <dd>Height of the video frames to display. Applies to the video frame after crop ping (PixelCrop* Elements).</dd> | |||
<dt>notes:</dt> | ||||
<dd>See <xref target="DisplayHeightNotes"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>notes:</t> | <table anchor="DisplayHeightNotes"><name>DisplayHeight Implementation Notes</nam | |||
<table anchor="DisplayHeightNotes"><name>DisplayHeight implementation notes</nam | e> | |||
e> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">attribute</th> | <th align="left">attribute</th> | |||
<th align="left">note</th> | <th align="left">note</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left">default</td> | <td align="left">default</td> | |||
<td align="left">If the DisplayUnit of the same TrackEntry is 0, then the defaul t value for DisplayHeight is equal toPixelHeight - PixelCropTop - PixelCropBotto m, else there is no default value.</td> | <td align="left">If the DisplayUnit of the same TrackEntry is 0, then the defaul t value for DisplayHeight is equal to PixelHeight - PixelCropTop - PixelCropBott om; else, there is no default value.</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="displayunit-element"><name>DisplayUnit Element</name> | <section anchor="displayunit-element"><name>DisplayUnit Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x54B2 / uinteger / 0</dd> | <dd>0x54B2 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\DisplayUnit</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\DisplayUnit</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>How DisplayWidth & DisplayHeight are interpreted.</dd> | <dd>How DisplayWidth and DisplayHeight are interpreted.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="DisplayUnitValues"/>.</dd> | ||||
</dl> | </dl> | |||
<t>restrictions:</t> | <table anchor="DisplayUnitValues"><name>DisplayUnit Values</name> | |||
<table anchor="DisplayUnitValues"><name>DisplayUnit values</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
skipping to change at line 2398 ¶ | skipping to change at line 2741 ¶ | |||
<tr> | <tr> | |||
<td align="left"><tt>3</tt></td> | <td align="left"><tt>3</tt></td> | |||
<td align="left">display aspect ratio</td> | <td align="left">display aspect ratio</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>4</tt></td> | <td align="left"><tt>4</tt></td> | |||
<td align="left">unknown</td> | <td align="left">unknown</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table> | |||
</section> | ||||
<section anchor="uncompressedfourcc-element"><name>UncompressedFourCC Element</n ame> | <section anchor="uncompressedfourcc-element"><name>UncompressedFourCC Element</n ame> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x2EB524 / binary</dd> | <dd>0x2EB524 / binary</dd> | |||
<dt>length:</dt> | <dt>length:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\UncompressedFourCC</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\UncompressedFourCC</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>see implementation notes / 1</dd> | <dd>see implementation notes / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Specify the uncompressed pixel format used for the Track's data as a FourCC. | <dd>Specifies the uncompressed pixel format used for the Track's data as a FourC | |||
This value is similar in scope to the biCompression value of AVI's <tt>BITMAPINF | C. | |||
O</tt> <xref target="AVIFormat"></xref>. There is no definitive list of FourCC v | This value is similar in scope to the biCompression value of AVI's <tt>BITMAPINF | |||
alues, nor an official registry. Some common values for YUV pixel formats can be | O</tt> <xref target="AVIFormat"></xref>. There is neither a definitive list of F | |||
found at <xref target="MSYUV8"></xref>, <xref target="MSYUV16"></xref> and <xre | ourCC values nor an official registry. Some common values for YUV pixel formats | |||
f target="FourCC-YUV"></xref>. Some common values for uncompressed RGB pixel for | can be found at <xref target="MSYUV8"></xref>, <xref target="MSYUV16"></xref>, a | |||
mats can be found at <xref target="MSRGB"></xref> and <xref target="FourCC-RGB"> | nd <xref target="FourCC-YUV"></xref>. Some common values for uncompressed RGB pi | |||
</xref>.</dd> | xel formats can be found at <xref target="MSRGB"></xref> and <xref target="FourC | |||
C-RGB"></xref>.</dd> | ||||
<dt>notes:</dt> | ||||
<dd>See <xref target="UncompressedFourCCNotes"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>notes:</t> | <table anchor="UncompressedFourCCNotes"><name>UncompressedFourCC Implementation | |||
<table anchor="UncompressedFourCCNotes"><name>UncompressedFourCC implementation | Notes</name> | |||
notes</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">attribute</th> | <th align="left">attribute</th> | |||
<th align="left">note</th> | <th align="left">note</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left">minOccurs</td> | <td align="left">minOccurs</td> | |||
<td align="left">UncompressedFourCC <bcp14>MUST</bcp14> be set (minOccurs=1) in TrackEntry, when the CodecID Element of the TrackEntry is set to "V_UNCOMPR ESSED".</td> | <td align="left">UncompressedFourCC <bcp14>MUST</bcp14> be set (minOccurs=1) in TrackEntry when the CodecID Element of the TrackEntry is set to "V_UNCOMPRESSED" .</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="colour-element"><name>Colour Element</name> | <section anchor="colour-element"><name>Colour Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55B0 / master</dd> | <dd>0x55B0 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Settings describing the colour format.</dd> | <dd>Settings describing the colour format.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="matrixcoefficients-element"><name>MatrixCoefficients Element</n ame> | <section anchor="matrixcoefficients-element"><name>MatrixCoefficients Element</n ame> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x55B1 / uinteger / 2</dd> | <dd>0x55B1 / uinteger / 2</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MatrixCoefficients</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MatrixCoefficients</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The Matrix Coefficients of the video used to derive luma and chroma values f rom red, green, and blue color primaries. | <dd>The Matrix Coefficients of the video used to derive luma and chroma values f rom red, green, and blue color primaries. | |||
For clarity, the value and meanings for MatrixCoefficients are adopted from Tabl e 4 of <xref target="ITU-H.273"></xref>.</dd> | For clarity, the value and meanings for MatrixCoefficients are adopted from Tabl e 4 of <xref target="ITU-H.273"></xref>.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="MatrixCoefficientsValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>restrictions:</t> | <table anchor="MatrixCoefficientsValues"><name>MatrixCoefficients Values</name> | |||
<table anchor="MatrixCoefficientsValues"><name>MatrixCoefficients values</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
skipping to change at line 2550 ¶ | skipping to change at line 2901 ¶ | |||
<tr> | <tr> | |||
<td align="left"><tt>13</tt></td> | <td align="left"><tt>13</tt></td> | |||
<td align="left">Chroma-derived Constant Luminance</td> | <td align="left">Chroma-derived Constant Luminance</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>14</tt></td> | <td align="left"><tt>14</tt></td> | |||
<td align="left">ITU-R BT.2100-0</td> | <td align="left">ITU-R BT.2100-0</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="bitsperchannel-element"><name>BitsPerChannel Element</name> | <section anchor="bitsperchannel-element"><name>BitsPerChannel Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x55B2 / uinteger / 0</dd> | <dd>0x55B2 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\BitsPerChannel</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\BitsPerChannel</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Number of decoded bits per channel. A value of 0 indicates that the BitsPerC hannel is unspecified.</dd> | <dd>Number of decoded bits per channel. A value of 0 indicates that the BitsPerC hannel is unspecified.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="chromasubsamplinghorz-element"><name>ChromaSubsamplingHorz Elem ent</name> | <section anchor="chromasubsamplinghorz-element"><name>ChromaSubsamplingHorz Elem ent</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55B3 / uinteger</dd> | <dd>0x55B3 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\ChromaSubsamplingHorz</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\ChromaSubsamplingHorz</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The amount of pixels to remove in the Cr and Cb channels for every pixel not | <dd>The number of pixels to remove in the Cr and Cb channels for every pixel not | |||
removed horizontally. | removed horizontally. Example: For video with 4:2:0 chroma subsampling, the Chr | |||
Example: For video with 4:2:0 chroma subsampling, the ChromaSubsamplingHorz <bcp | omaSubsamplingHorz | |||
14>SHOULD</bcp14> be set to 1.</dd> | <bcp14>SHOULD</bcp14> be set to 1. | |||
</dl> | </dd> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | <dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | |||
</section> | </dl></section> | |||
<section anchor="chromasubsamplingvert-element"><name>ChromaSubsamplingVert Elem ent</name> | <section anchor="chromasubsamplingvert-element"><name>ChromaSubsamplingVert Elem ent</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55B4 / uinteger</dd> | <dd>0x55B4 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\ChromaSubsamplingVert</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\ChromaSubsamplingVert</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The amount of pixels to remove in the Cr and Cb channels for every pixel not | <dd>The number of pixels to remove in the Cr and Cb channels for every pixel not | |||
removed vertically. | removed vertically. Example: For video with 4:2:0 chroma subsampling, the Chrom | |||
Example: For video with 4:2:0 chroma subsampling, the ChromaSubsamplingVert <bcp | aSubsamplingVert | |||
14>SHOULD</bcp14> be set to 1.</dd> | <bcp14>SHOULD</bcp14> be set to 1. | |||
</dd> | ||||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="cbsubsamplinghorz-element"><name>CbSubsamplingHorz Element</nam e> | <section anchor="cbsubsamplinghorz-element"><name>CbSubsamplingHorz Element</nam e> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55B5 / uinteger</dd> | <dd>0x55B5 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\CbSubsamplingHorz</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\CbSubsamplingHorz</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The amount of pixels to remove in the Cb channel for every pixel not removed | <dd>The number of pixels to remove in the Cb channel for every pixel not removed | |||
horizontally. | horizontally. | |||
This is additive with ChromaSubsamplingHorz. Example: For video with 4:2:1 chrom | This is additive with ChromaSubsamplingHorz. | |||
a subsampling, | Example: For video with 4:2:1 chroma | |||
the ChromaSubsamplingHorz <bcp14>SHOULD</bcp14> be set to 1 and CbSubsamplingHor | subsampling, the ChromaSubsamplingHorz <bcp14>SHOULD</bcp14> be set to 1, and Cb | |||
z <bcp14>SHOULD</bcp14> be set to 1.</dd> | SubsamplingHorz <bcp14>SHOULD</bcp14> be set to 1. | |||
</dl> | </dd> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | <dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | |||
</section> | </dl></section> | |||
<section anchor="cbsubsamplingvert-element"><name>CbSubsamplingVert Element</nam e> | <section anchor="cbsubsamplingvert-element"><name>CbSubsamplingVert Element</nam e> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55B6 / uinteger</dd> | <dd>0x55B6 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\CbSubsamplingVert</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\CbSubsamplingVert</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The amount of pixels to remove in the Cb channel for every pixel not removed vertically. | <dd>The number of pixels to remove in the Cb channel for every pixel not removed vertically. | |||
This is additive with ChromaSubsamplingVert.</dd> | This is additive with ChromaSubsamplingVert.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="chromasitinghorz-element"><name>ChromaSitingHorz Element</name> | <section anchor="chromasitinghorz-element"><name>ChromaSitingHorz Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x55B7 / uinteger / 0</dd> | <dd>0x55B7 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\ChromaSitingHorz</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\ChromaSitingHorz</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>How chroma is subsampled horizontally.</dd> | <dd>How chroma is subsampled horizontally.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="ChromaSitingHorzValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>restrictions:</t> | <table anchor="ChromaSitingHorzValues"><name>ChromaSitingHorz Values</name> | |||
<table anchor="ChromaSitingHorzValues"><name>ChromaSitingHorz values</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
skipping to change at line 2682 ¶ | skipping to change at line 3038 ¶ | |||
<tr> | <tr> | |||
<td align="left"><tt>1</tt></td> | <td align="left"><tt>1</tt></td> | |||
<td align="left">left collocated</td> | <td align="left">left collocated</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>2</tt></td> | <td align="left"><tt>2</tt></td> | |||
<td align="left">half</td> | <td align="left">half</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="chromasitingvert-element"><name>ChromaSitingVert Element</name> | <section anchor="chromasitingvert-element"><name>ChromaSitingVert Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x55B8 / uinteger / 0</dd> | <dd>0x55B8 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\ChromaSitingVert</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\ChromaSitingVert</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>How chroma is subsampled vertically.</dd> | <dd>How chroma is subsampled vertically.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="ChromaSitingVertValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>restrictions:</t> | <table anchor="ChromaSitingVertValues"><name>ChromaSitingVert Values</name> | |||
<table anchor="ChromaSitingVertValues"><name>ChromaSitingVert values</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
skipping to change at line 2724 ¶ | skipping to change at line 3083 ¶ | |||
<tr> | <tr> | |||
<td align="left"><tt>1</tt></td> | <td align="left"><tt>1</tt></td> | |||
<td align="left">top collocated</td> | <td align="left">top collocated</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>2</tt></td> | <td align="left"><tt>2</tt></td> | |||
<td align="left">half</td> | <td align="left">half</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="range-element"><name>Range Element</name> | <section anchor="range-element"><name>Range Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x55B9 / uinteger / 0</dd> | <dd>0x55B9 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\Range</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\Range</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Clipping of the color ranges.</dd> | <dd>Clipping of the color ranges.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="RangeValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>restrictions:</t> | ||||
<table anchor="RangeValues"><name>Range values</name> | <table anchor="RangeValues"><name>Range Values</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
skipping to change at line 2771 ¶ | skipping to change at line 3134 ¶ | |||
<tr> | <tr> | |||
<td align="left"><tt>2</tt></td> | <td align="left"><tt>2</tt></td> | |||
<td align="left">full range (no clipping)</td> | <td align="left">full range (no clipping)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>3</tt></td> | <td align="left"><tt>3</tt></td> | |||
<td align="left">defined by MatrixCoefficients / TransferCharacteristics</td> | <td align="left">defined by MatrixCoefficients / TransferCharacteristics</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="transfercharacteristics-element"><name>TransferCharacteristics Element</name> | <section anchor="transfercharacteristics-element"><name>TransferCharacteristics Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x55BA / uinteger / 2</dd> | <dd>0x55BA / uinteger / 2</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\TransferCharacteristics</tt></dd > | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\TransferCharacteristics</tt></dd > | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The transfer characteristics of the video. For clarity, | <dd>The transfer characteristics of the video. For clarity, | |||
the value and meanings for TransferCharacteristics are adopted from Table 3 of < xref target="ITU-H.273"></xref>.</dd> | the value and meanings for TransferCharacteristics are adopted from Table 3 of < xref target="ITU-H.273"></xref>.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="TransferCharacteristicsValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>restrictions:</t> | <table anchor="TransferCharacteristicsValues"><name>TransferCharacteristics Valu | |||
<table anchor="TransferCharacteristicsValues"><name>TransferCharacteristics valu | es</name> | |||
es</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
skipping to change at line 2894 ¶ | skipping to change at line 3260 ¶ | |||
<tr> | <tr> | |||
<td align="left"><tt>17</tt></td> | <td align="left"><tt>17</tt></td> | |||
<td align="left">SMPTE ST 428-1</td> | <td align="left">SMPTE ST 428-1</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>18</tt></td> | <td align="left"><tt>18</tt></td> | |||
<td align="left">ARIB STD-B67 (HLG)</td> | <td align="left">ARIB STD-B67 (HLG)</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="primaries-element"><name>Primaries Element</name> | <section anchor="primaries-element"><name>Primaries Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x55BB / uinteger / 2</dd> | <dd>0x55BB / uinteger / 2</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\Primaries</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\Primaries</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The colour primaries of the video. For clarity, | <dd>The colour primaries of the video. For clarity, | |||
the value and meanings for Primaries are adopted from Table 2 of <xref target="I TU-H.273"></xref>.</dd> | the value and meanings for Primaries are adopted from Table 2 of <xref target="I TU-H.273"></xref>.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="PrimariesValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>restrictions:</t> | ||||
<table anchor="PrimariesValues"><name>Primaries values</name> | <table anchor="PrimariesValues"><name>Primaries Values</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
skipping to change at line 2992 ¶ | skipping to change at line 3362 ¶ | |||
<tr> | <tr> | |||
<td align="left"><tt>12</tt></td> | <td align="left"><tt>12</tt></td> | |||
<td align="left">SMPTE EG 432-2</td> | <td align="left">SMPTE EG 432-2</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>22</tt></td> | <td align="left"><tt>22</tt></td> | |||
<td align="left">EBU Tech. 3213-E - JEDEC P22 phosphors</td> | <td align="left">EBU Tech. 3213-E - JEDEC P22 phosphors</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="maxcll-element"><name>MaxCLL Element</name> | <section anchor="maxcll-element"><name>MaxCLL Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55BC / uinteger</dd> | <dd>0x55BC / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MaxCLL</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MaxCLL</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Maximum brightness of a single pixel (Maximum Content Light Level) | <dd>Maximum brightness of a single pixel (Maximum Content Light Level) | |||
in candelas per square meter (cd/m<sup>2</sup>).</dd> | in candelas per square meter (cd/m<sup>2</sup>).</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="maxfall-element"><name>MaxFALL Element</name> | <section anchor="maxfall-element"><name>MaxFALL Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55BD / uinteger</dd> | <dd>0x55BD / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MaxFALL</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MaxFALL</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Maximum brightness of a single full frame (Maximum Frame-Average Light Level ) | <dd>Maximum brightness of a single full frame (Maximum Frame-Average Light Level ) | |||
in candelas per square meter (cd/m<sup>2</sup>).</dd> | in candelas per square meter (cd/m<sup>2</sup>).</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="masteringmetadata-element"><name>MasteringMetadata Element</nam e> | <section anchor="masteringmetadata-element"><name>MasteringMetadata Element</nam e> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55D0 / master</dd> | <dd>0x55D0 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>SMPTE 2086 mastering data.</dd> | <dd>SMPTE 2086 mastering data.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="primaryrchromaticityx-element"><name>PrimaryRChromaticityX Elem ent</name> | <section anchor="primaryrchromaticityx-element"><name>PrimaryRChromaticityX Elem ent</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55D1 / float</dd> | <dd>0x55D1 / float</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0x0p+0-0x1p+0</dd> | <dd>0x0p+0-0x1p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\PrimaryRChroma ticityX</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\PrimaryRChroma ticityX</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Red X chromaticity coordinate, as defined by <xref target="CIE-1931"></xref> .</dd> | <dd>Red X chromaticity coordinate, as defined by <xref target="CIE-1931"></xref> .</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="primaryrchromaticityy-element"><name>PrimaryRChromaticityY Elem ent</name> | <section anchor="primaryrchromaticityy-element"><name>PrimaryRChromaticityY Elem ent</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55D2 / float</dd> | <dd>0x55D2 / float</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0x0p+0-0x1p+0</dd> | <dd>0x0p+0-0x1p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\PrimaryRChroma ticityY</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\PrimaryRChroma ticityY</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Red Y chromaticity coordinate, as defined by <xref target="CIE-1931"></xref> .</dd> | <dd>Red Y chromaticity coordinate, as defined by <xref target="CIE-1931"></xref> .</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="primarygchromaticityx-element"><name>PrimaryGChromaticityX Elem ent</name> | <section anchor="primarygchromaticityx-element"><name>PrimaryGChromaticityX Elem ent</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55D3 / float</dd> | <dd>0x55D3 / float</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0x0p+0-0x1p+0</dd> | <dd>0x0p+0-0x1p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\PrimaryGChroma ticityX</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\PrimaryGChroma ticityX</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Green X chromaticity coordinate, as defined by <xref target="CIE-1931"></xre f>.</dd> | <dd>Green X chromaticity coordinate, as defined by <xref target="CIE-1931"></xre f>.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="primarygchromaticityy-element"><name>PrimaryGChromaticityY Elem ent</name> | <section anchor="primarygchromaticityy-element"><name>PrimaryGChromaticityY Elem ent</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55D4 / float</dd> | <dd>0x55D4 / float</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0x0p+0-0x1p+0</dd> | <dd>0x0p+0-0x1p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\PrimaryGChroma ticityY</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\PrimaryGChroma ticityY</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Green Y chromaticity coordinate, as defined by <xref target="CIE-1931"></xre f>.</dd> | <dd>Green Y chromaticity coordinate, as defined by <xref target="CIE-1931"></xre f>.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="primarybchromaticityx-element"><name>PrimaryBChromaticityX Elem ent</name> | <section anchor="primarybchromaticityx-element"><name>PrimaryBChromaticityX Elem ent</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55D5 / float</dd> | <dd>0x55D5 / float</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0x0p+0-0x1p+0</dd> | <dd>0x0p+0-0x1p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\PrimaryBChroma ticityX</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\PrimaryBChroma ticityX</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Blue X chromaticity coordinate, as defined by <xref target="CIE-1931"></xref >.</dd> | <dd>Blue X chromaticity coordinate, as defined by <xref target="CIE-1931"></xref >.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="primarybchromaticityy-element"><name>PrimaryBChromaticityY Elem ent</name> | <section anchor="primarybchromaticityy-element"><name>PrimaryBChromaticityY Elem ent</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55D6 / float</dd> | <dd>0x55D6 / float</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0x0p+0-0x1p+0</dd> | <dd>0x0p+0-0x1p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\PrimaryBChroma ticityY</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\PrimaryBChroma ticityY</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Blue Y chromaticity coordinate, as defined by <xref target="CIE-1931"></xref >.</dd> | <dd>Blue Y chromaticity coordinate, as defined by <xref target="CIE-1931"></xref >.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="whitepointchromaticityx-element"><name>WhitePointChromaticityX Element</name> | <section anchor="whitepointchromaticityx-element"><name>WhitePointChromaticityX Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55D7 / float</dd> | <dd>0x55D7 / float</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0x0p+0-0x1p+0</dd> | <dd>0x0p+0-0x1p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\WhitePointChro maticityX</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\WhitePointChro maticityX</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>White X chromaticity coordinate, as defined by <xref target="CIE-1931"></xre f>.</dd> | <dd>White X chromaticity coordinate, as defined by <xref target="CIE-1931"></xre f>.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="whitepointchromaticityy-element"><name>WhitePointChromaticityY Element</name> | <section anchor="whitepointchromaticityy-element"><name>WhitePointChromaticityY Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55D8 / float</dd> | <dd>0x55D8 / float</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0x0p+0-0x1p+0</dd> | <dd>0x0p+0-0x1p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\WhitePointChro maticityY</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\WhitePointChro maticityY</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>White Y chromaticity coordinate, as defined by <xref target="CIE-1931"></xre f>.</dd> | <dd>White Y chromaticity coordinate, as defined by <xref target="CIE-1931"></xre f>.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="luminancemax-element"><name>LuminanceMax Element</name> | <section anchor="luminancemax-element"><name>LuminanceMax Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55D9 / float</dd> | <dd>0x55D9 / float</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>>= 0x0p+0</dd> | <dd>>= 0x0p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\LuminanceMax</ tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\LuminanceMax</ tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Maximum luminance. Represented in candelas per square meter (cd/m<sup>2</sup >).</dd> | <dd>Maximum luminance. Represented in candelas per square meter (cd/m<sup>2</sup >).</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="luminancemin-element"><name>LuminanceMin Element</name> | <section anchor="luminancemin-element"><name>LuminanceMin Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x55DA / float</dd> | <dd>0x55DA / float</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>>= 0x0p+0</dd> | <dd>>= 0x0p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\LuminanceMin</ tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Colour\MasteringMetadata\LuminanceMin</ tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Minimum luminance. Represented in candelas per square meter (cd/m<sup>2</sup >).</dd> | <dd>Minimum luminance. Represented in candelas per square meter (cd/m<sup>2</sup >).</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="projection-element"><name>Projection Element</name> | <section anchor="projection-element"><name>Projection Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x7670 / master</dd> | <dd>0x7670 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Projection</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Projection</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Describes the video projection details. Used to render spherical, VR videos | <!-- [rfced] We updated this sentence as follows. Please review and let us | |||
or flipping videos horizontally/vertically.</dd> | know any concerns. | |||
</dl> | ||||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | Original: | |||
</section> | Used to render spherical, VR videos or flipping videos | |||
horizontally/vertically. | ||||
Updated: | ||||
Used to render spherical or VR videos or to flip videos horizontally | ||||
or vertically. | ||||
--> | ||||
<dd>Describes the video projection details. Used to render spherical or VR video | ||||
s or to flip videos horizontally or vertically.</dd> | ||||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl></section> | ||||
<section anchor="projectiontype-element"><name>ProjectionType Element</name> | <section anchor="projectiontype-element"><name>ProjectionType Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x7671 / uinteger / 0</dd> | <dd>0x7671 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Projection\ProjectionType</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Projection\ProjectionType</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Describes the projection used for this video track.</dd> | <dd>Describes the projection used for this video track.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="ProjectionTypeValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>restrictions:</t> | <table anchor="ProjectionTypeValues"><name>ProjectionType Values</name> | |||
<table anchor="ProjectionTypeValues"><name>ProjectionType values</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
skipping to change at line 3299 ¶ | skipping to change at line 3682 ¶ | |||
<tr> | <tr> | |||
<td align="left"><tt>2</tt></td> | <td align="left"><tt>2</tt></td> | |||
<td align="left">cubemap</td> | <td align="left">cubemap</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>3</tt></td> | <td align="left"><tt>3</tt></td> | |||
<td align="left">mesh</td> | <td align="left">mesh</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="projectionprivate-element"><name>ProjectionPrivate Element</nam e> | <section anchor="projectionprivate-element"><name>ProjectionPrivate Element</nam e> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x7672 / binary</dd> | <dd>0x7672 / binary</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Projection\ProjectionPrivate</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Projection\ProjectionPrivate</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Private data that only applies to a specific projection.</dd> | <dd><t>Private data that only applies to a specific projection.</t> | |||
</dl> | ||||
<ul spacing="compact"> | <ul spacing="compact"> | |||
<li>If <tt>ProjectionType</tt> equals 0 (Rectangular), | <li>If <tt>ProjectionType</tt> equals 0 (rectangular), | |||
then this element <bcp14>MUST NOT</bcp14> be present.</li> | then this element <bcp14>MUST NOT</bcp14> be present.</li> | |||
<li>If <tt>ProjectionType</tt> equals 1 (Equirectangular), then this element <bc | <li>If <tt>ProjectionType</tt> equals 1 (equirectangular), then this element <bc | |||
p14>MUST</bcp14> be present and contain the same binary data that would be store | p14>MUST</bcp14> be present and contain the same binary data that would be store | |||
d inside | d inside | |||
an ISOBMFF Equirectangular Projection Box ('equi').</li> | an ISOBMFF Equirectangular Projection Box ("equi").</li> | |||
<li>If <tt>ProjectionType</tt> equals 2 (Cubemap), then this element <bcp14>MUST | <li>If <tt>ProjectionType</tt> equals 2 (cubemap), then this element <bcp14>MUST | |||
</bcp14> be present and contain the same binary data that would be stored | </bcp14> be present and contain the same binary data that would be stored | |||
inside an ISOBMFF Cubemap Projection Box ('cbmp').</li> | inside an ISOBMFF Cubemap Projection Box ("cbmp").</li> | |||
<li>If <tt>ProjectionType</tt> equals 3 (Mesh), then this element <bcp14>MUST</b | <li>If <tt>ProjectionType</tt> equals 3 (mesh), then this element <bcp14>MUST</b | |||
cp14> be present and contain the same binary data that would be stored inside | cp14> be present and contain the same binary data that would be stored inside | |||
an ISOBMFF Mesh Projection Box ('mshp').</li> | an ISOBMFF Mesh Projection Box ("mshp").</li> | |||
</ul> | </ul> | |||
</dd> | ||||
<dl spacing="compact"> | ||||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>ISOBMFF box size and fourcc fields are not included in the binary data, | <dd>ISOBMFF box size and fourcc fields are not included in the binary data, | |||
but the FullBox version and flag fields are. This is to avoid | but the FullBox version and flag fields are. This is to avoid | |||
redundant framing information while preserving versioning and semantics between the two container formats.</dd> | redundant framing information while preserving versioning and semantics between the two container formats.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<!-- [rfced] Please review "both included" in Sections 5.1.4.1.28.44 through | ||||
5.1.4.1.28.46. Is the meaning here "inclusive"? | ||||
Original: | ||||
The value of this element MUST be in the -180 to 180 degree range, | ||||
both included. | ||||
... | ||||
The value of this element MUST be in the -90 to 90 degree range, both | ||||
included. | ||||
... | ||||
The value of this element MUST be in the -180 to 180 degree range, both | ||||
included. | ||||
Perhaps: | ||||
The value of this element MUST be in the -180 to 180 (inclusive) degree range. | ||||
... | ||||
The value of this element MUST be in the -90 to 90 (inclusive) degree range. | ||||
... | ||||
The value of this element MUST be in the -180 to 180 (inclusive) degree range. | ||||
--> | ||||
<section anchor="projectionposeyaw-element"><name>ProjectionPoseYaw Element</nam e> | <section anchor="projectionposeyaw-element"><name>ProjectionPoseYaw Element</nam e> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x7673 / float / 0x0p+0</dd> | <dd>0x7673 / float / 0x0p+0</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>>= -0xB4p+0, <= 0xB4p+0</dd> | <dd>>= -0xB4p+0, <= 0xB4p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Projection\ProjectionPoseYaw</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Projection\ProjectionPoseYaw</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Specifies a yaw rotation to the projection.</dd> | <dd>Specifies a yaw rotation to the projection.</dd> | |||
</dl> | </dl> | |||
<t>Value represents a clockwise rotation, in degrees, around the up vector. This rotation must be applied | <t>Value represents a clockwise rotation, in degrees, around the up vector. This rotation must be applied | |||
before any <tt>ProjectionPosePitch</tt> or <tt>ProjectionPoseRoll</tt> rotations . | before any <tt>ProjectionPosePitch</tt> or <tt>ProjectionPoseRoll</tt> rotations . | |||
The value of this element <bcp14>MUST</bcp14> be in the -180 to 180 degree range , both included.</t> | The value of this element <bcp14>MUST</bcp14> be in the -180 to 180 degree range , both included.</t> | |||
<t>Setting <tt>ProjectionPoseYaw</tt> to 180 or -180 degrees, with the <tt>Proje | <t>Setting <tt>ProjectionPoseYaw</tt> to 180 or -180 degrees with <tt>Projection | |||
ctionPoseRoll</tt> and <tt>ProjectionPosePitch</tt> set to 0 degrees flips the i | PoseRoll</tt> and <tt>ProjectionPosePitch</tt> set to 0 degrees flips the image | |||
mage horizontally.</t> | horizontally.</t> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | <dl spacing="compact"> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | ||||
</section> | </section> | |||
<section anchor="projectionposepitch-element"><name>ProjectionPosePitch Element< /name> | <section anchor="projectionposepitch-element"><name>ProjectionPosePitch Element< /name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x7674 / float / 0x0p+0</dd> | <dd>0x7674 / float / 0x0p+0</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>>= -0x5Ap+0, <= 0x5Ap+0</dd> | <dd>>= -0x5Ap+0, <= 0x5Ap+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
skipping to change at line 3379 ¶ | skipping to change at line 3784 ¶ | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Specifies a pitch rotation to the projection.</dd> | <dd>Specifies a pitch rotation to the projection.</dd> | |||
</dl> | </dl> | |||
<t>Value represents a counter-clockwise rotation, in degrees, around the right v ector. This rotation must be applied | <t>Value represents a counter-clockwise rotation, in degrees, around the right v ector. This rotation must be applied | |||
after the <tt>ProjectionPoseYaw</tt> rotation and before the <tt>ProjectionPoseR oll</tt> rotation. | after the <tt>ProjectionPoseYaw</tt> rotation and before the <tt>ProjectionPoseR oll</tt> rotation. | |||
The value of this element <bcp14>MUST</bcp14> be in the -90 to 90 degree range, both included.</t> | The value of this element <bcp14>MUST</bcp14> be in the -90 to 90 degree range, both included.</t> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | <dl spacing="compact"> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | ||||
</section> | </section> | |||
<section anchor="projectionposeroll-element"><name>ProjectionPoseRoll Element</n ame> | <section anchor="projectionposeroll-element"><name>ProjectionPoseRoll Element</n ame> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x7675 / float / 0x0p+0</dd> | <dd>0x7675 / float / 0x0p+0</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>>= -0xB4p+0, <= 0xB4p+0</dd> | <dd>>= -0xB4p+0, <= 0xB4p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
skipping to change at line 3401 ¶ | skipping to change at line 3809 ¶ | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Specifies a roll rotation to the projection.</dd> | <dd>Specifies a roll rotation to the projection.</dd> | |||
</dl> | </dl> | |||
<t>Value represents a counter-clockwise rotation, in degrees, around the forward vector. This rotation must be applied | <t>Value represents a counter-clockwise rotation, in degrees, around the forward vector. This rotation must be applied | |||
after the <tt>ProjectionPoseYaw</tt> and <tt>ProjectionPosePitch</tt> rotations. | after the <tt>ProjectionPoseYaw</tt> and <tt>ProjectionPosePitch</tt> rotations. | |||
The value of this element <bcp14>MUST</bcp14> be in the -180 to 180 degree range , both included.</t> | The value of this element <bcp14>MUST</bcp14> be in the -180 to 180 degree range , both included.</t> | |||
<t>Setting <tt>ProjectionPoseRoll</tt> to 180 or -180 degrees, the <tt>Projectio | <t>Setting <tt>ProjectionPoseRoll</tt> to 180 or -180 degrees and <tt>Projection | |||
nPoseYaw</tt> to 180 or -180 degrees with <tt>ProjectionPosePitch</tt> set to 0 | PoseYaw</tt> to 180 or -180 degrees with <tt>ProjectionPosePitch</tt> set to 0 d | |||
degrees flips the image vertically.</t> | egrees flips the image vertically.</t> | |||
<t>Setting <tt>ProjectionPoseRoll</tt> to 180 or -180 degrees, with the <tt>Proj | <t>Setting <tt>ProjectionPoseRoll</tt> to 180 or -180 degrees with <tt>Projectio | |||
ectionPoseYaw</tt> and <tt>ProjectionPosePitch</tt> set to 0 degrees flips the i | nPoseYaw</tt> and <tt>ProjectionPosePitch</tt> set to 0 degrees flips the image | |||
mage horizontally and vertically.</t> | horizontally and vertically.</t> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | <dl spacing="compact"> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="audio-element"><name>Audio Element</name> | <section anchor="audio-element"><name>Audio Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xE1 / master</dd> | <dd>0xE1 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Audio</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Audio</tt></dd> | |||
skipping to change at line 3433 ¶ | skipping to change at line 3844 ¶ | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0xB5 / float / 0x1.f4p+12</dd> | <dd>0xB5 / float / 0x1.f4p+12</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>> 0x0p+0</dd> | <dd>> 0x0p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Audio\SamplingFrequency</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Audio\SamplingFrequency</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Sampling frequency in Hz.</dd> | <dd>Sampling frequency in Hz.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="outputsamplingfrequency-element"><name>OutputSamplingFrequency Element</name> | <section anchor="outputsamplingfrequency-element"><name>OutputSamplingFrequency Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x78B5 / float</dd> | <dd>0x78B5 / float</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>> 0x0p+0</dd> | <dd>> 0x0p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
skipping to change at line 3449 ¶ | skipping to change at line 3860 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x78B5 / float</dd> | <dd>0x78B5 / float</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>> 0x0p+0</dd> | <dd>> 0x0p+0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Audio\OutputSamplingFrequency</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Audio\OutputSamplingFrequency</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Real output sampling frequency in Hz (used for SBR techniques).</dd> | <dd>Real output sampling frequency in Hz (used for SBR techniques).</dd> | |||
<dt>notes:</dt> | ||||
<dd>See <xref target="OutputSamplingFrequencyNotes"/>.</dd> | ||||
</dl> | </dl> | |||
<t>notes:</t> | <table anchor="OutputSamplingFrequencyNotes"><name>OutputSamplingFrequency Imple | |||
<table anchor="OutputSamplingFrequencyNotes"><name>OutputSamplingFrequency imple | mentation Notes</name> | |||
mentation notes</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">attribute</th> | <th align="left">attribute</th> | |||
<th align="left">note</th> | <th align="left">note</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left">default</td> | <td align="left">default</td> | |||
<td align="left">The default value for OutputSamplingFrequency of the same Track Entry is equal to the SamplingFrequency.</td> | <td align="left">The default value for OutputSamplingFrequency of the same Track Entry is equal to the SamplingFrequency.</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table> | |||
</section> | ||||
<section anchor="channels-element"><name>Channels Element</name> | <section anchor="channels-element"><name>Channels Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x9F / uinteger / 1</dd> | <dd>0x9F / uinteger / 1</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Audio\Channels</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Audio\Channels</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Numbers of channels in the track.</dd> | <dd>Numbers of channels in the track.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="bitdepth-element"><name>BitDepth Element</name> | <section anchor="bitdepth-element"><name>BitDepth Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x6264 / uinteger</dd> | <dd>0x6264 / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Audio\BitDepth</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Audio\BitDepth</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Bits per sample, mostly used for PCM.</dd> | <dd>Bits per sample, mostly used for PCM.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="trackoperation-element"><name>TrackOperation Element</name> | <section anchor="trackoperation-element"><name>TrackOperation Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xE2 / master</dd> | <dd>0xE2 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackOperation</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackOperation</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>3</dd> | <dd>3</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Operation that needs to be applied on tracks to create this virtual track. | <dd>Operation that needs to be applied on tracks to create this virtual track. F | |||
For more details look at <xref target="track-operation"></xref>.</dd> | or more details, see <xref target="track-operation"></xref>.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
<section anchor="trackcombineplanes-element"><name>TrackCombinePlanes Element</n ame> | <section anchor="trackcombineplanes-element"><name>TrackCombinePlanes Element</n ame> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xE3 / master</dd> | <dd>0xE3 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackOperation\TrackCombinePlanes</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackOperation\TrackCombinePlanes</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>3</dd> | <dd>3</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contains the list of all video plane tracks that need to be combined to crea | <dd>Contains the list of all video plane tracks that need to be combined to crea | |||
te this 3D track</dd> | te this 3D track.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="trackplane-element"><name>TrackPlane Element</name> | <section anchor="trackplane-element"><name>TrackPlane Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xE4 / master</dd> | <dd>0xE4 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackOperation\TrackCombinePlanes\TrackPlane< /tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackOperation\TrackCombinePlanes\TrackPlane< /tt></dd> | |||
<dt>minOccurs:</dt> | <dt>minOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>3</dd> | <dd>3</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contains a video plane track that need to be combined to create this 3D trac | <dd>Contains a video plane track that needs to be combined to create this 3D tra | |||
k</dd> | ck.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="trackplaneuid-element"><name>TrackPlaneUID Element</name> | <section anchor="trackplaneuid-element"><name>TrackPlaneUID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xE5 / uinteger</dd> | <dd>0xE5 / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackOperation\TrackCombinePlanes\TrackPlane\ TrackPlaneUID</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackOperation\TrackCombinePlanes\TrackPlane\ TrackPlaneUID</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>3</dd> | <dd>3</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The trackUID number of the track representing the plane.</dd> | <dd>The trackUID number of the track representing the plane.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="trackplanetype-element"><name>TrackPlaneType Element</name> | <section anchor="trackplanetype-element"><name>TrackPlaneType Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xE6 / uinteger</dd> | <dd>0xE6 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackOperation\TrackCombinePlanes\TrackPlane\ TrackPlaneType</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackOperation\TrackCombinePlanes\TrackPlane\ TrackPlaneType</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>3</dd> | <dd>3</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The kind of plane this track corresponds to.</dd> | <dd>The kind of plane this track corresponds to.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="TrackPlaneTypeValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>restrictions:</t> | <table anchor="TrackPlaneTypeValues"><name>TrackPlaneType Values</name> | |||
<table anchor="TrackPlaneTypeValues"><name>TrackPlaneType values</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
skipping to change at line 3612 ¶ | skipping to change at line 4028 ¶ | |||
<tr> | <tr> | |||
<td align="left"><tt>1</tt></td> | <td align="left"><tt>1</tt></td> | |||
<td align="left">right eye</td> | <td align="left">right eye</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>2</tt></td> | <td align="left"><tt>2</tt></td> | |||
<td align="left">background</td> | <td align="left">background</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="trackjoinblocks-element"><name>TrackJoinBlocks Element</name> | <section anchor="trackjoinblocks-element"><name>TrackJoinBlocks Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xE9 / master</dd> | <dd>0xE9 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackOperation\TrackJoinBlocks</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackOperation\TrackJoinBlocks</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>3</dd> | <dd>3</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contains the list of all tracks whose Blocks need to be combined to create t | <dd>Contains the list of all tracks whose Blocks need to be combined to create t | |||
his virtual track</dd> | his virtual track.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="trackjoinuid-element"><name>TrackJoinUID Element</name> | <section anchor="trackjoinuid-element"><name>TrackJoinUID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xED / uinteger</dd> | <dd>0xED / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackOperation\TrackJoinBlocks\TrackJoinUID</ tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackOperation\TrackJoinBlocks\TrackJoinUID</ tt></dd> | |||
<dt>minOccurs:</dt> | <dt>minOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>3</dd> | <dd>3</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The trackUID number of a track whose blocks are used to create this virtual track.</dd> | <dd>The trackUID number of a track whose blocks are used to create this virtual track.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="contentencodings-element"><name>ContentEncodings Element</name> | <section anchor="contentencodings-element"><name>ContentEncodings Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x6D80 / master</dd> | <dd>0x6D80 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Settings for several content encoding mechanisms like compression or encrypt ion.</dd> | <dd>Settings for several content encoding mechanisms like compression or encrypt ion.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
<section anchor="contentencoding-element"><name>ContentEncoding Element</name> | <section anchor="contentencoding-element"><name>ContentEncoding Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x6240 / master</dd> | <dd>0x6240 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding</tt></dd> | |||
<dt>minOccurs:</dt> | <dt>minOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Settings for one content encoding like compression or encryption.</dd> | <dd>Settings for one content encoding like compression or encryption.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="contentencodingorder-element"><name>ContentEncodingOrder Elemen t</name> | <section anchor="contentencodingorder-element"><name>ContentEncodingOrder Elemen t</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x5031 / uinteger / 0</dd> | <dd>0x5031 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncod ingOrder</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncod ingOrder</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<!-- [rfced] May we rephrase the first sentence of this definition as follows | ||||
for clarity? | ||||
Original: | ||||
Tell in which order to apply each ContentEncoding of the | ||||
ContentEncodings. | ||||
Perhaps: | ||||
Defines the order to apply to each ContentEncoding of the ContentEncodings. | ||||
--> | ||||
<dd>Tell in which order to apply each <tt>ContentEncoding</tt> of the <tt>Conten tEncodings</tt>. | <dd>Tell in which order to apply each <tt>ContentEncoding</tt> of the <tt>Conten tEncodings</tt>. | |||
The decoder/demuxer <bcp14>MUST</bcp14> start with the <tt>ContentEncoding</tt> with the highest <tt>ContentEncodingOrder</tt> and work its way down to the <tt> ContentEncoding</tt> with the lowest <tt>ContentEncodingOrder</tt>. | The decoder/demuxer <bcp14>MUST</bcp14> start with the <tt>ContentEncoding</tt> with the highest <tt>ContentEncodingOrder</tt> and work its way down to the <tt> ContentEncoding</tt> with the lowest <tt>ContentEncodingOrder</tt>. | |||
This value <bcp14>MUST</bcp14> be unique over for each <tt>ContentEncoding</tt> | This value <bcp14>MUST</bcp14> be unique for each <tt>ContentEncoding</tt> found | |||
found in the <tt>ContentEncodings</tt> of this <tt>TrackEntry</tt>.</dd> | in the <tt>ContentEncodings</tt> of this <tt>TrackEntry</tt>.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="contentencodingscope-element"><name>ContentEncodingScope Elemen t</name> | <section anchor="contentencodingscope-element"><name>ContentEncodingScope Elemen t</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x5032 / uinteger / 1</dd> | <dd>0x5032 / uinteger / 1</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncod ingScope</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncod ingScope</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A bit field that describes which Elements have been modified in this way. | <dd>A bit field that describes which Elements have been modified in this way. | |||
Values (big-endian) can be OR'ed.</dd> | Values (big-endian) can be OR'ed.</dd> | |||
<dt>defined values:</dt> | ||||
<dd>See <xref target="ContentEncodingScopeValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>defined values:</t> | <table anchor="ContentEncodingScopeValues"><name>ContentEncodingScope Values</na | |||
<table anchor="ContentEncodingScopeValues"><name>ContentEncodingScope values</na | me> | |||
me> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
<th align="left">definition</th> | <th align="left">definition</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
skipping to change at line 3737 ¶ | skipping to change at line 4165 ¶ | |||
<tr> | <tr> | |||
<td align="left"><tt>2</tt></td> | <td align="left"><tt>2</tt></td> | |||
<td align="left">Private</td> | <td align="left">Private</td> | |||
<td align="left">The track's <tt>CodecPrivate</tt> data.</td> | <td align="left">The track's <tt>CodecPrivate</tt> data.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>4</tt></td> | <td align="left"><tt>4</tt></td> | |||
<td align="left">Next</td> | <td align="left">Next</td> | |||
<td align="left">The next ContentEncoding (next <tt>ContentEncodingOrder</tt>. E ither the data inside <tt>ContentCompression</tt> and/or <tt>ContentEncryption</ tt>).This value <bcp14>SHOULD NOT</bcp14> be used as it's not supported by playe rs.</td> | <td align="left">The next ContentEncoding (next <tt>ContentEncodingOrder</tt>; t he data inside <tt>ContentCompression</tt> and/or <tt>ContentEncryption</tt>). T his value <bcp14>SHOULD NOT</bcp14> be used, as it's not supported by players.</ td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="contentencodingtype-element"><name>ContentEncodingType Element< /name> | <section anchor="contentencodingtype-element"><name>ContentEncodingType Element< /name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x5033 / uinteger / 0</dd> | <dd>0x5033 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncod ingType</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncod ingType</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A value describing what kind of transformation is applied.</dd> | <dd>A value describing the kind of transformation that is applied.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="ContentEncodingTypeValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>restrictions:</t> | ||||
<table anchor="ContentEncodingTypeValues"><name>ContentEncodingType values</name | <table anchor="ContentEncodingTypeValues"><name>ContentEncodingType Values</name | |||
> | > | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
<td align="left">Compression</td> | <td align="left">Compression</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>1</tt></td> | <td align="left"><tt>1</tt></td> | |||
<td align="left">Encryption</td> | <td align="left">Encryption</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="contentcompression-element"><name>ContentCompression Element</n ame> | <section anchor="contentcompression-element"><name>ContentCompression Element</n ame> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x5034 / master</dd> | <dd>0x5034 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentCompr ession</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentCompr ession</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Settings describing the compression used. | <dd>Settings describing the compression used. | |||
This Element <bcp14>MUST</bcp14> be present if the value of ContentEncodingType is 0 and absent otherwise. | This Element <bcp14>MUST</bcp14> be present if the value of ContentEncodingType is 0 and absent otherwise. | |||
Each block <bcp14>MUST</bcp14> be decompressable even if no previous block is av | Each block <bcp14>MUST</bcp14> be decompressable, even if no previous block is a | |||
ailable in order not to prevent seeking.</dd> | vailable in order to not prevent seeking.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="contentcompalgo-element"><name>ContentCompAlgo Element</name> | <section anchor="contentcompalgo-element"><name>ContentCompAlgo Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x4254 / uinteger / 0</dd> | <dd>0x4254 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentCompr ession\ContentCompAlgo</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentCompr ession\ContentCompAlgo</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The compression algorithm used.</dd> | <dd>The compression algorithm used.</dd> | |||
<dt>defined values:</dt> | ||||
<dd>See <xref target="ContentCompAlgoValues"/>.</dd> | ||||
<dt>usage notes:</dt> | ||||
<dd>Compression method "1" (bzlib) and "2" (lzo1x) lack proper documentation on | ||||
the format, which limits implementation possibilities. Due to licensing conflict | ||||
s on commonly available libraries' compression methods, "2" (lzo1x) does not off | ||||
er widespread interoperability. A Matroska Writer <bcp14>SHOULD NOT</bcp14> use | ||||
these compression methods by default. A Matroska Reader <bcp14>MAY</bcp14> suppo | ||||
rt methods "1" and "2" as possible and <bcp14>SHOULD</bcp14> support other metho | ||||
ds.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>defined values:</t> | ||||
<table anchor="ContentCompAlgoValues"><name>ContentCompAlgo values</name> | <table anchor="ContentCompAlgoValues"><name>ContentCompAlgo Values</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
<th align="left">definition</th> | <th align="left">definition</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
<td align="left">zlib</td> | <td align="left">zlib</td> | |||
<td align="left">zlib compression <xref target="RFC1950"></xref>.</td> | <td align="left">zlib compression <xref target="RFC1950"></xref>.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>1</tt></td> | <td align="left"><tt>1</tt></td> | |||
<td align="left">bzlib</td> | <td align="left">bzlib</td> | |||
<td align="left">bzip2 compression <xref target="BZIP2"></xref>, <bcp14>SHOULD N OT</bcp14> be used; see usage notes.</td> | <td align="left">bzip2 compression <xref target="BZIP2"></xref> <bcp14>SHOULD NO T</bcp14> be used; see usage notes.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>2</tt></td> | <td align="left"><tt>2</tt></td> | |||
<td align="left">lzo1x</td> | <td align="left">lzo1x</td> | |||
<td align="left">Lempel-Ziv-Oberhumer compression <xref target="LZO"></xref>, <b cp14>SHOULD NOT</bcp14> be used; see usage notes.</td> | <td align="left">Lempel-Ziv-Oberhumer compression <xref target="LZO"></xref>, <b cp14>SHOULD NOT</bcp14> be used; see usage notes.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>3</tt></td> | <td align="left"><tt>3</tt></td> | |||
<td align="left">Header Stripping</td> | <td align="left">Header Stripping</td> | |||
<td align="left">Octets in <tt>ContentCompSettings</tt> (<xref target="contentco mpsettings-element"></xref>) have been stripped from each frame.</td> | <td align="left">Octets in <tt>ContentCompSettings</tt> (<xref target="contentco mpsettings-element"></xref>) have been stripped from each frame.</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table> | </table> | |||
<dl spacing="compact"> | ||||
<dt>usage notes:</dt> | <!-- [rfced] Please review "as possible" here. Is this phrase needed? If it is | |||
<dd>Compression method "1" (bzlib) and "2" (lzo1x) are lacki | needed, should it be updated to "if possible"? | |||
ng proper documentation on the format which limits implementation possibilities. | ||||
Due to licensing conflicts on commonly available libraries compression methods & | Original: | |||
quot;2" (lzo1x) does not offer widespread interoperability. | A Matroska Reader MAY support methods "1" and "2" as possible, and | |||
A Matroska Writer <bcp14>SHOULD NOT</bcp14> use these compression methods by def | SHOULD support other methods. | |||
ault. | ||||
A Matroska Reader <bcp14>MAY</bcp14> support methods "1" and "2&q | Perhaps (deleted "as possible"): | |||
uot; as possible, and <bcp14>SHOULD</bcp14> support other methods.</dd> | A Matroska Reader MAY support methods "1" and "2" and | |||
</dl> | SHOULD support other methods. | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
Or (use "if possible"): | ||||
A Matroska Reader MAY support methods "1" and "2" if possible and | ||||
SHOULD support other methods. | ||||
--> | ||||
</section> | </section> | |||
<section anchor="contentcompsettings-element"><name>ContentCompSettings Element< /name> | <section anchor="contentcompsettings-element"><name>ContentCompSettings Element< /name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x4255 / binary</dd> | <dd>0x4255 / binary</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentCompr ession\ContentCompSettings</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentCompr ession\ContentCompSettings</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Settings that might be needed by the decompressor. For Header Stripping (<tt >ContentCompAlgo</tt>=3), | <dd>Settings that might be needed by the decompressor. For Header Stripping (<tt >ContentCompAlgo</tt>=3), | |||
the bytes that were removed from the beginning of each frames of the track.</dd> | the bytes that were removed from the beginning of each frame of the track.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="contentencryption-element"><name>ContentEncryption Element</nam e> | <section anchor="contentencryption-element"><name>ContentEncryption Element</nam e> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x5035 / master</dd> | <dd>0x5035 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Settings describing the encryption used. | <dd>Settings describing the encryption used. | |||
This Element <bcp14>MUST</bcp14> be present if the value of <tt>ContentEncodingT ype</tt> is 1 (encryption) and <bcp14>MUST</bcp14> be ignored otherwise. | This Element <bcp14>MUST</bcp14> be present if the value of <tt>ContentEncodingT ype</tt> is 1 (encryption) and <bcp14>MUST</bcp14> be ignored otherwise. | |||
A Matroska Player <bcp14>MAY</bcp14> support encryption.</dd> | A Matroska Player <bcp14>MAY</bcp14> support encryption.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="contentencalgo-element"><name>ContentEncAlgo Element</name> | <section anchor="contentencalgo-element"><name>ContentEncAlgo Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x47E1 / uinteger / 0</dd> | <dd>0x47E1 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption\ContentEncAlgo</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption\ContentEncAlgo</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The encryption algorithm used.</dd> | <dd>The encryption algorithm used.</dd> | |||
<dt>defined values:</dt> | ||||
<dd>See <xref target="ContentEncAlgoValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>defined values:</t> | <table anchor="ContentEncAlgoValues"><name>ContentEncAlgo Values</name> | |||
<table anchor="ContentEncAlgoValues"><name>ContentEncAlgo values</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
<th align="left">definition</th> | <th align="left">definition</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
<td align="left">Not encrypted</td> | <td align="left">Not encrypted</td> | |||
<td align="left">The data are not encrypted.</td> | <td align="left">The data are not encrypted.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>1</tt></td> | <td align="left"><tt>1</tt></td> | |||
<td align="left">DES</td> | <td align="left">DES</td> | |||
<td align="left">Data Encryption Standard (DES) <xref target="FIPS.46-3"></xref> .This value <bcp14>SHOULD</bcp14> be avoided.</td> | <td align="left">Data Encryption Standard (DES) <xref target="FIPS46-3"></xref>. This value <bcp14>SHOULD</bcp14> be avoided.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>2</tt></td> | <td align="left"><tt>2</tt></td> | |||
<td align="left">3DES</td> | <td align="left">3DES</td> | |||
<td align="left">Triple Data Encryption Algorithm <xref target="SP.800-67"></xre f>.This value <bcp14>SHOULD</bcp14> be avoided.</td> | <td align="left">Triple Data Encryption Algorithm <xref target="SP800-67"></xref >. This value <bcp14>SHOULD</bcp14> be avoided.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>3</tt></td> | <td align="left"><tt>3</tt></td> | |||
<td align="left">Twofish</td> | <td align="left">Twofish</td> | |||
<td align="left">Twofish Encryption Algorithm <xref target="Twofish"></xref>.</t d> | <td align="left">Twofish Encryption Algorithm <xref target="Twofish"></xref>.</t d> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>4</tt></td> | <td align="left"><tt>4</tt></td> | |||
<td align="left">Blowfish</td> | <td align="left">Blowfish</td> | |||
<td align="left">Blowfish Encryption Algorithm <xref target="Blowfish"></xref>.T his value <bcp14>SHOULD</bcp14> be avoided.</td> | <td align="left">Blowfish Encryption Algorithm <xref target="Blowfish"></xref>. This value <bcp14>SHOULD</bcp14> be avoided.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>5</tt></td> | <td align="left"><tt>5</tt></td> | |||
<td align="left">AES</td> | <td align="left">AES</td> | |||
<td align="left">Advanced Encryption Standard (AES) <xref target="FIPS.197"></xr ef>.</td> | <td align="left">Advanced Encryption Standard (AES) <xref target="FIPS197"></xre f>.</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="contentenckeyid-element"><name>ContentEncKeyID Element</name> | <section anchor="contentenckeyid-element"><name>ContentEncKeyID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x47E2 / binary</dd> | <dd>0x47E2 / binary</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption\ContentEncKeyID</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption\ContentEncKeyID</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>For public key algorithms this is the ID of the public key the data was encr | <dd>For public key algorithms, the ID of the public key that the data was encryp | |||
ypted with.</dd> | ted with.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="contentencaessettings-element"><name>ContentEncAESSettings Elem ent</name> | <section anchor="contentencaessettings-element"><name>ContentEncAESSettings Elem ent</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x47E7 / master</dd> | <dd>0x47E7 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption\ContentEncAESSettings</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption\ContentEncAESSettings</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Settings describing the encryption algorithm used.</dd> | <dd>Settings describing the encryption algorithm used.</dd> | |||
<dt>notes:</dt> | ||||
<dd>See <xref target="ContentEncAESSettingsNotes"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>notes:</t> | <table anchor="ContentEncAESSettingsNotes"><name>ContentEncAESSettings Implement | |||
<table anchor="ContentEncAESSettingsNotes"><name>ContentEncAESSettings implement | ation Notes</name> | |||
ation notes</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">attribute</th> | <th align="left">attribute</th> | |||
<th align="left">note</th> | <th align="left">note</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left">maxOccurs</td> | <td align="left">maxOccurs</td> | |||
<td align="left">ContentEncAESSettings <bcp14>MUST NOT</bcp14> be set (maxOccurs =0) if ContentEncAlgo is not AES (5).</td> | <td align="left">ContentEncAESSettings <bcp14>MUST NOT</bcp14> be set (maxOccurs =0) if ContentEncAlgo is not AES (5).</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
<section anchor="aessettingsciphermode-element"><name>AESSettingsCipherMode Elem ent</name> | <section anchor="aessettingsciphermode-element"><name>AESSettingsCipherMode Elem ent</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x47E8 / uinteger</dd> | <dd>0x47E8 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption\ContentEncAESSettings\AESSettingsCipherMode</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption\ContentEncAESSettings\AESSettingsCipherMode</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The AES cipher mode used in the encryption.</dd> | <dd>The AES cipher mode used in the encryption.</dd> | |||
<dt>defined values:</dt> | ||||
<dd>See <xref target="AESSettingsCipherModeValues"/>.</dd> | ||||
<dt>notes:</dt> | ||||
<dd>See <xref target="AESSettingsCipherModeNotes"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>defined values:</t> | <table anchor="AESSettingsCipherModeValues"><name>AESSettingsCipherMode Values</ | |||
<table anchor="AESSettingsCipherModeValues"><name>AESSettingsCipherMode values</ | name> | |||
name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
<th align="left">definition</th> | <th align="left">definition</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>1</tt></td> | <td align="left"><tt>1</tt></td> | |||
<td align="left">AES-CTR</td> | <td align="left">AES-CTR</td> | |||
<td align="left">Counter <xref target="SP.800-38A"></xref>.</td> | <td align="left">Counter <xref target="SP800-38A"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>2</tt></td> | <td align="left"><tt>2</tt></td> | |||
<td align="left">AES-CBC</td> | <td align="left">AES-CBC</td> | |||
<td align="left">Cipher Block Chaining <xref target="SP.800-38A"></xref>.</td> | <td align="left">Cipher Block Chaining <xref target="SP800-38A"></xref></td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>notes:</t> | </table> | |||
<table anchor="AESSettingsCipherModeNotes"><name>AESSettingsCipherMode implement | ||||
ation notes</name> | <table anchor="AESSettingsCipherModeNotes"><name>AESSettingsCipherMode Implement | |||
ation Notes</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">attribute</th> | <th align="left">attribute</th> | |||
<th align="left">note</th> | <th align="left">note</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left">maxOccurs</td> | <td align="left">maxOccurs</td> | |||
<td align="left">AESSettingsCipherMode <bcp14>MUST NOT</bcp14> be set (maxOccurs =0) if ContentEncAlgo is not AES (5).</td> | <td align="left">AESSettingsCipherMode <bcp14>MUST NOT</bcp14> be set (maxOccurs =0) if ContentEncAlgo is not AES (5).</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>stream copy: True (<xref target="stream-copy"></xref>)</t> | </table> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="cues-element"><name>Cues Element</name> | <section anchor="cues-element"><name>Cues Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x1C53BB6B / master</dd> | <dd>0x1C53BB6B / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cues</tt></dd> | <dd><tt>\Segment\Cues</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>see implementation notes / 1</dd> | <dd>see implementation notes / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A Top-Level Element to speed seeking access. | <dd>A Top-Level Element to speed seeking access. | |||
All entries are local to the Segment.</dd> | All entries are local to the Segment.</dd> | |||
<dt>notes:</dt> | ||||
<dd>See <xref target="CuesNotes"/>.</dd> | ||||
</dl> | </dl> | |||
<t>notes:</t> | <table anchor="CuesNotes"><name>Cues Implementation Notes</name> | |||
<table anchor="CuesNotes"><name>Cues implementation notes</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">attribute</th> | <th align="left">attribute</th> | |||
<th align="left">note</th> | <th align="left">note</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left">minOccurs</td> | <td align="left">minOccurs</td> | |||
skipping to change at line 4119 ¶ | skipping to change at line 4578 ¶ | |||
<section anchor="cuetrackpositions-element"><name>CueTrackPositions Element</nam e> | <section anchor="cuetrackpositions-element"><name>CueTrackPositions Element</nam e> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xB7 / master</dd> | <dd>0xB7 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cues\CuePoint\CueTrackPositions</tt></dd> | <dd><tt>\Segment\Cues\CuePoint\CueTrackPositions</tt></dd> | |||
<dt>minOccurs:</dt> | <dt>minOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contain positions for different tracks corresponding to the timestamp.</dd> | <dd>Contains positions for different tracks corresponding to the timestamp.</dd> | |||
</dl> | </dl> | |||
<section anchor="cuetrack-element"><name>CueTrack Element</name> | <section anchor="cuetrack-element"><name>CueTrack Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xF7 / uinteger</dd> | <dd>0xF7 / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
skipping to change at line 4181 ¶ | skipping to change at line 4640 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xB2 / uinteger</dd> | <dd>0xB2 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueDuration</tt></dd> | <dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueDuration</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The duration of the block, expressed in Segment Ticks which is based on Time stampScale; see <xref target="timestamp-ticks"></xref>. | <dd>The duration of the block, expressed in Segment Ticks, which are based on Ti mestampScale; see <xref target="timestamp-ticks"></xref>. | |||
If missing, the track's DefaultDuration does not apply and no duration informati on is available in terms of the cues.</dd> | If missing, the track's DefaultDuration does not apply and no duration informati on is available in terms of the cues.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="cueblocknumber-element"><name>CueBlockNumber Element</name> | <section anchor="cueblocknumber-element"><name>CueBlockNumber Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x5378 / uinteger</dd> | <dd>0x5378 / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
skipping to change at line 4262 ¶ | skipping to change at line 4721 ¶ | |||
<section anchor="attachments-element"><name>Attachments Element</name> | <section anchor="attachments-element"><name>Attachments Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x1941A469 / master</dd> | <dd>0x1941A469 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Attachments</tt></dd> | <dd><tt>\Segment\Attachments</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contain attached files.</dd> | <dd>Contains attached files.</dd> | |||
</dl> | </dl> | |||
<section anchor="attachedfile-element"><name>AttachedFile Element</name> | <section anchor="attachedfile-element"><name>AttachedFile Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x61A7 / master</dd> | <dd>0x61A7 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Attachments\AttachedFile</tt></dd> | <dd><tt>\Segment\Attachments\AttachedFile</tt></dd> | |||
<dt>minOccurs:</dt> | <dt>minOccurs:</dt> | |||
skipping to change at line 4316 ¶ | skipping to change at line 4775 ¶ | |||
<section anchor="filemediatype-element"><name>FileMediaType Element</name> | <section anchor="filemediatype-element"><name>FileMediaType Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x4660 / string</dd> | <dd>0x4660 / string</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Attachments\AttachedFile\FileMediaType</tt></dd> | <dd><tt>\Segment\Attachments\AttachedFile\FileMediaType</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Media type of the file following the <xref target="RFC6838"></xref> format.< | <dd>Media type of the file following the format described in <xref target="RFC68 | |||
/dd> | 38"></xref>.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="filedata-element"><name>FileData Element</name> | <section anchor="filedata-element"><name>FileData Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x465C / binary</dd> | <dd>0x465C / binary</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Attachments\AttachedFile\FileData</tt></dd> | <dd><tt>\Segment\Attachments\AttachedFile\FileData</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The data of the file.</dd> | <dd>The data of the file.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="fileuid-element"><name>FileUID Element</name> | <section anchor="fileuid-element"><name>FileUID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x46AE / uinteger</dd> | <dd>0x46AE / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Attachments\AttachedFile\FileUID</tt></dd> | <dd><tt>\Segment\Attachments\AttachedFile\FileUID</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Unique ID representing the file, as random as possible.</dd> | <dd>UID representing the file, as random as possible.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="chapters-element"><name>Chapters Element</name> | <section anchor="chapters-element"><name>Chapters Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x1043A770 / master</dd> | <dd>0x1043A770 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters</tt></dd> | <dd><tt>\Segment\Chapters</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
</dl> | <dt>recurring:</dt><dd>True</dd> | |||
<t>recurring: True</t> | ||||
<dl spacing="compact"> | ||||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A system to define basic menus and partition data. | <dd>A system to define basic menus and partition data. | |||
For more detailed information, look at the Chapters explanation in <xref target= "chapters"></xref>.</dd> | For more detailed information, see <xref target="chapters"></xref>.</dd> | |||
</dl> | </dl> | |||
<section anchor="editionentry-element"><name>EditionEntry Element</name> | <section anchor="editionentry-element"><name>EditionEntry Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x45B9 / master</dd> | <dd>0x45B9 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry</tt></dd> | |||
<dt>minOccurs:</dt> | <dt>minOccurs:</dt> | |||
skipping to change at line 4398 ¶ | skipping to change at line 4854 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x45BC / uinteger</dd> | <dd>0x45BC / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\EditionUID</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\EditionUID</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A unique ID to identify the edition. It's useful for tagging an edition.</dd | <dd>A UID to identify the edition. It's useful for tagging an edition.</dd> | |||
> | <dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | |||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="editionflagdefault-element"><name>EditionFlagDefault Element</n ame> | <section anchor="editionflagdefault-element"><name>EditionFlagDefault Element</n ame> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x45DB / uinteger / 0</dd> | <dd>0x45DB / uinteger / 0</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0-1</dd> | <dd>0-1</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
skipping to change at line 4444 ¶ | skipping to change at line 4900 ¶ | |||
<section anchor="chapteratom-element"><name>ChapterAtom Element</name> | <section anchor="chapteratom-element"><name>ChapterAtom Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xB6 / master</dd> | <dd>0xB6 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom</tt></dd> | |||
<dt>minOccurs:</dt> | <dt>minOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
</dl> | <dt>recursive:</dt><dd>True</dd> | |||
<t>recursive: True</t> | ||||
<dl spacing="compact"> | ||||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contains the atom information to use as the chapter atom (apply to all track s).</dd> | <dd>Contains the atom information to use as the chapter atom (applies to all tra cks).</dd> | |||
</dl> | </dl> | |||
<section anchor="chapteruid-element"><name>ChapterUID Element</name> | <section anchor="chapteruid-element"><name>ChapterUID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x73C4 / uinteger</dd> | <dd>0x73C4 / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterUID</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterUID</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A unique ID to identify the Chapter.</dd> | <dd>A UID to identify the Chapter.</dd> | |||
<dt>stream copy:</dt><dd>True (<xref target="stream-copy"></xref>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<section anchor="chapterstringuid-element"><name>ChapterStringUID Element</name> | <section anchor="chapterstringuid-element"><name>ChapterStringUID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x5654 / utf-8</dd> | <dd>0x5654 / utf-8</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterStringUID</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterStringUID</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>3</dd> | <dd>3</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A unique string ID to identify the Chapter. | <dd>A unique string ID to identify the Chapter. | |||
For example it is used as the storage for <xref target="WebVTT"></xref> cue iden tifier values.</dd> | For example, it is used as the storage for cue identifier values <xref target="W ebVTT"></xref>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="chaptertimestart-element"><name>ChapterTimeStart Element</name> | <section anchor="chaptertimestart-element"><name>ChapterTimeStart Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x91 / uinteger</dd> | <dd>0x91 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterTimeStart</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterTimeStart</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Timestamp of the start of Chapter, expressed in Matroska Ticks -- i.e., in n anoseconds; see <xref target="timestamp-ticks"></xref>.</dd> | <dd>Timestamp of the start of Chapter, expressed in Matroska Ticks -- i.e., in n anoseconds; see <xref target="timestamp-ticks"></xref>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="chaptertimeend-element"><name>ChapterTimeEnd Element</name> | <section anchor="chaptertimeend-element"><name>ChapterTimeEnd Element</name> | |||
<!-- [rfced] Please clarify "Timestamp of the end of Chapter timestamp | ||||
excluded". | ||||
Original: | ||||
definition: Timestamp of the end of Chapter timestamp excluded, | ||||
expressed in Matroska Ticks - i.e., in nanoseconds; see | ||||
Section 11.1. | ||||
--> | ||||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x92 / uinteger</dd> | <dd>0x92 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterTimeEnd</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterTimeEnd</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>see implementation notes / 1</dd> | <dd>see implementation notes / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Timestamp of the end of Chapter timestamp excluded, expressed in Matroska Ti cks -- i.e., in nanoseconds; see <xref target="timestamp-ticks"></xref>. | <dd>Timestamp of the end of Chapter timestamp excluded, expressed in Matroska Ti cks -- i.e., in nanoseconds; see <xref target="timestamp-ticks"></xref>. | |||
The value <bcp14>MUST</bcp14> be greater than or equal to the <tt>ChapterTimeSta rt</tt> of the same <tt>ChapterAtom</tt>.</dd> | The value <bcp14>MUST</bcp14> be greater than or equal to the <tt>ChapterTimeSta rt</tt> of the same <tt>ChapterAtom</tt>.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>The <tt>ChapterTimeEnd</tt> timestamp value being excluded, it <bcp14>MUST</ bcp14> take in account the duration of | <dd>With the <tt>ChapterTimeEnd</tt> timestamp value being excluded, it <bcp14>M UST</bcp14> take into account the duration of | |||
the last frame it includes, especially for the <tt>ChapterAtom</tt> using the la st frames of the <tt>Segment</tt>.</dd> | the last frame it includes, especially for the <tt>ChapterAtom</tt> using the la st frames of the <tt>Segment</tt>.</dd> | |||
<dt>notes:</dt> | ||||
<dd>See <xref target="ChapterTimeEndNotes"/>.</dd> | ||||
</dl> | </dl> | |||
<t>notes:</t> | <table anchor="ChapterTimeEndNotes"><name>ChapterTimeEnd Implementation Notes</n | |||
<table anchor="ChapterTimeEndNotes"><name>ChapterTimeEnd implementation notes</n | ame> | |||
ame> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">attribute</th> | <th align="left">attribute</th> | |||
<th align="left">note</th> | <th align="left">note</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left">minOccurs</td> | <td align="left">minOccurs</td> | |||
<td align="left">ChapterTimeEnd <bcp14>MUST</bcp14> be set (minOccurs=1) if the Edition is an ordered edition; see <xref target="editionflagordered"></xref>, un less it's a <tt>Parent Chapter</tt>; see <xref target="nested-chapters"></xref>< /td> | <td align="left">ChapterTimeEnd <bcp14>MUST</bcp14> be set (minOccurs=1) if the Edition is an ordered edition; see <xref target="editionflagordered"></xref>. If it's a <tt>Parent Chapter</tt>, see <xref target="nested-chapters"></xref>.</td > | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table> | |||
</section> | ||||
<section anchor="chapterflaghidden-element"><name>ChapterFlagHidden Element</nam e> | <section anchor="chapterflaghidden-element"><name>ChapterFlagHidden Element</nam e> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x98 / uinteger / 0</dd> | <dd>0x98 / uinteger / 0</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>0-1</dd> | <dd>0-1</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterFlagHidden</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterFlagHidden</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Set to 1 if a chapter is hidden. Hidden chapters <bcp14>SHOULD NOT</bcp14> b | <dd>Set to 1 if a chapter is hidden. | |||
e available to the user interface | ||||
<!-- [rfced] How may we rephrase the parenthetical in the following sentence for | ||||
clarity? | ||||
Original: | ||||
Hidden chapters SHOULD NOT be available to the user interface (but | ||||
still to Control Tracks; see Section 20.2.5 on Chapter flags). | ||||
Perhaps: | ||||
Hidden chapters SHOULD NOT be available to the user interface (but | ||||
still be available to Control Tracks); see Section 20.2.5 on Chapter flags. | ||||
--> | ||||
Hidden chapters <bcp14>SHOULD NOT</bcp14> be available to the user interface | ||||
(but still to Control Tracks; see <xref target="chapterflaghidden"></xref> on Ch apter flags).</dd> | (but still to Control Tracks; see <xref target="chapterflaghidden"></xref> on Ch apter flags).</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="chaptersegmentuuid-element"><name>ChapterSegmentUUID Element</n ame> | <section anchor="chaptersegmentuuid-element"><name>ChapterSegmentUUID Element</n ame> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x6E67 / binary</dd> | <dd>0x6E67 / binary</dd> | |||
<dt>length:</dt> | <dt>length:</dt> | |||
<dd>16</dd> | <dd>16</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterSegmentUUID</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterSegmentUUID</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>see implementation notes / 1</dd> | <dd>see implementation notes / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The SegmentUUID of another Segment to play during this chapter.</dd> | <dd>The SegmentUUID of another Segment to play during this chapter.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>The value <bcp14>MUST NOT</bcp14> be the <tt>SegmentUUID</tt> value of the < tt>Segment</tt> it belongs to.</dd> | <dd>The value <bcp14>MUST NOT</bcp14> be the <tt>SegmentUUID</tt> value of the < tt>Segment</tt> it belongs to.</dd> | |||
<dt>notes:</dt> | ||||
<dd>See <xref target="ChapterSegmentUUIDNotes"/>.</dd> | ||||
</dl> | </dl> | |||
<t>notes:</t> | <table anchor="ChapterSegmentUUIDNotes"><name>ChapterSegmentUUID Implementation | |||
<table anchor="ChapterSegmentUUIDNotes"><name>ChapterSegmentUUID implementation | Notes</name> | |||
notes</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">attribute</th> | <th align="left">attribute</th> | |||
<th align="left">note</th> | <th align="left">note</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left">minOccurs</td> | <td align="left">minOccurs</td> | |||
<td align="left">ChapterSegmentUUID <bcp14>MUST</bcp14> be set (minOccurs=1) if ChapterSegmentEditionUID is used; see <xref target="medium-linking"></xref> on m edium-linking Segments.</td> | <td align="left">ChapterSegmentUUID <bcp14>MUST</bcp14> be set (minOccurs=1) if ChapterSegmentEditionUID is used; see <xref target="medium-linking"></xref> on M edium-Linking Segments.</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table> | |||
</section> | ||||
<section anchor="chaptersegmenteditionuid-element"><name>ChapterSegmentEditionUI D Element</name> | <section anchor="chaptersegmenteditionuid-element"><name>ChapterSegmentEditionUI D Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x6EBC / uinteger</dd> | <dd>0x6EBC / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterSegmentEditionUID</tt ></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterSegmentEditionUID</tt ></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The EditionUID to play from the Segment linked in ChapterSegmentUUID. | <dd>The EditionUID to play from the Segment linked in ChapterSegmentUUID. | |||
If ChapterSegmentEditionUID is undeclared, then no Edition of the linked Segment is used; see <xref target="medium-linking"></xref> on medium-linking Segments.< /dd> | If ChapterSegmentEditionUID is undeclared, then no Edition of the linked Segment is used; see <xref target="medium-linking"></xref> on Medium-Linking Segments.< /dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="chapterphysicalequiv-element"><name>ChapterPhysicalEquiv Elemen t</name> | <section anchor="chapterphysicalequiv-element"><name>ChapterPhysicalEquiv Elemen t</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x63C3 / uinteger</dd> | <dd>0x63C3 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterPhysicalEquiv</tt></d d> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterPhysicalEquiv</tt></d d> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Specify the physical equivalent of this ChapterAtom like "DVD" (60 ) or "SIDE" (50); | <dd>Specifies the physical equivalent of this ChapterAtom, e.g., "DVD" (60) or " SIDE" (50); | |||
see <xref target="physical-types"></xref> for a complete list of values.</dd> | see <xref target="physical-types"></xref> for a complete list of values.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="chapterdisplay-element"><name>ChapterDisplay Element</name> | <section anchor="chapterdisplay-element"><name>ChapterDisplay Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x80 / master</dd> | <dd>0x80 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
skipping to change at line 4668 ¶ | skipping to change at line 5147 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x437D / string</dd> | <dd>0x437D / string</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterDisplay\ChapLanguageB CP47</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterDisplay\ChapLanguageB CP47</tt></dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A language corresponding to the ChapString, | <dd>A language corresponding to the ChapString, | |||
in the <xref target="BCP47"></xref> form; see <xref target="language-codes"></xr ef> on language codes. | in the form defined in <xref target="RFC5646"></xref>; see <xref target="languag e-codes"></xref> on language codes. | |||
If a ChapLanguageBCP47 Element is used, then any ChapLanguage and ChapCountry El ements used in the same ChapterDisplay <bcp14>MUST</bcp14> be ignored.</dd> | If a ChapLanguageBCP47 Element is used, then any ChapLanguage and ChapCountry El ements used in the same ChapterDisplay <bcp14>MUST</bcp14> be ignored.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="chapcountry-element"><name>ChapCountry Element</name> | <section anchor="chapcountry-element"><name>ChapCountry Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x437E / string</dd> | <dd>0x437E / string</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
skipping to change at line 4701 ¶ | skipping to change at line 5180 ¶ | |||
<dd>0x6944 / master</dd> | <dd>0x6944 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapProcess</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapProcess</tt></dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contains all the commands associated to the Atom.</dd> | <dd>Contains all the commands associated to the Atom.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="chapprocesscodecid-element"><name>ChapProcessCodecID Element</n ame> | <section anchor="chapprocesscodecid-element"><name>ChapProcessCodecID Element</n ame> | |||
<!-- [rfced] We have two questions about the definition below: | ||||
a) Does "to be defined" need further clarification, perhaps "to be defined in | ||||
future specifications"? | ||||
b) Section 20.3 defines value 0 as "matroska script" and value 1 as "menu | ||||
borrowed from the DVD [DVD-Video]". Should the definitions match? Or is the | ||||
current okay? | ||||
Original: | ||||
definition: Contains the type of the codec used for the processing. | ||||
A value of 0 means built-in Matroska processing (to be defined), a | ||||
value of 1 means the DVD command set is used; see Section 20.3 on | ||||
DVD menus. | ||||
--> | ||||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x6955 / uinteger / 0</dd> | <dd>0x6955 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapProcess\ChapProcessCodec ID</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapProcess\ChapProcessCodec ID</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contains the type of the codec used for the processing. | <dd>Contains the type of the codec used for processing. | |||
A value of 0 means built-in Matroska processing (to be defined), a value of 1 me | A value of 0 means built-in Matroska processing (to be defined), and a value of | |||
ans the DVD command set is used; see <xref target="menu-features"></xref> on DVD | 1 means the DVD command set is used; see <xref target="menu-features"></xref> on | |||
menus. | DVD menus. | |||
More codec IDs can be added later.</dd> | More codec IDs can be added later.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="chapprocessprivate-element"><name>ChapProcessPrivate Element</n ame> | <section anchor="chapprocessprivate-element"><name>ChapProcessPrivate Element</n ame> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x450D / binary</dd> | <dd>0x450D / binary</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapProcess\ChapProcessPriva te</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapProcess\ChapProcessPriva te</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Some optional data attached to the ChapProcessCodecID information. | <dd>Optional data attached to the ChapProcessCodecID information. | |||
For ChapProcessCodecID = 1, it is the "DVD level" equivalent; see <xre | For ChapProcessCodecID = 1, it is the "DVD level" equivalent; see <xref target=" | |||
f target="menu-features"></xref> on DVD menus.</dd> | menu-features"></xref> on DVD menus.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="chapprocesscommand-element"><name>ChapProcessCommand Element</n ame> | <section anchor="chapprocesscommand-element"><name>ChapProcessCommand Element</n ame> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x6911 / master</dd> | <dd>0x6911 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapProcess\ChapProcessComma nd</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapProcess\ChapProcessComma nd</tt></dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contains all the commands associated to the Atom.</dd> | <dd>Contains all the commands associated with the Atom.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="chapprocesstime-element"><name>ChapProcessTime Element</name> | <section anchor="chapprocesstime-element"><name>ChapProcessTime Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x6922 / uinteger</dd> | <dd>0x6922 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapProcess\ChapProcessComma nd\ChapProcessTime</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapProcess\ChapProcessComma nd\ChapProcessTime</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Defines when the process command <bcp14>SHOULD</bcp14> be handled</dd> | <dd>Defines when the process command <bcp14>SHOULD</bcp14> be handled.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="ChapProcessTimeValues"/>.</dd> | ||||
</dl> | </dl> | |||
<t>restrictions:</t> | <table anchor="ChapProcessTimeValues"><name>ChapProcessTime Values</name> | |||
<table anchor="ChapProcessTimeValues"><name>ChapProcessTime values</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>0</tt></td> | <td align="left"><tt>0</tt></td> | |||
skipping to change at line 4779 ¶ | skipping to change at line 5275 ¶ | |||
<tr> | <tr> | |||
<td align="left"><tt>1</tt></td> | <td align="left"><tt>1</tt></td> | |||
<td align="left">before starting playback</td> | <td align="left">before starting playback</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>2</tt></td> | <td align="left"><tt>2</tt></td> | |||
<td align="left">after playback of the chapter</td> | <td align="left">after playback of the chapter</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table> | |||
</section> | ||||
<section anchor="chapprocessdata-element"><name>ChapProcessData Element</name> | <section anchor="chapprocessdata-element"><name>ChapProcessData Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x6933 / binary</dd> | <dd>0x6933 / binary</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapProcess\ChapProcessComma nd\ChapProcessData</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapProcess\ChapProcessComma nd\ChapProcessData</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
skipping to change at line 4809 ¶ | skipping to change at line 5306 ¶ | |||
<section anchor="tags-element"><name>Tags Element</name> | <section anchor="tags-element"><name>Tags Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x1254C367 / master</dd> | <dd>0x1254C367 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tags</tt></dd> | <dd><tt>\Segment\Tags</tt></dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Element containing metadata describing Tracks, Editions, Chapters, Attachmen ts, or the Segment as a whole. | <dd>Element containing metadata describing Tracks, Editions, Chapters, Attachmen ts, or the Segment as a whole. | |||
A list of valid tags can be found in <xref target="MatroskaTags"></xref>.</dd> | A list of valid tags can be found in <xref target="I-D.ietf-cellar-tags"></xref> .</dd> | |||
</dl> | </dl> | |||
<section anchor="tag-element"><name>Tag Element</name> | <section anchor="tag-element"><name>Tag Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x7373 / master</dd> | <dd>0x7373 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tags\Tag</tt></dd> | <dd><tt>\Segment\Tags\Tag</tt></dd> | |||
<dt>minOccurs:</dt> | <dt>minOccurs:</dt> | |||
skipping to change at line 4850 ¶ | skipping to change at line 5347 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x68CA / uinteger / 50</dd> | <dd>0x68CA / uinteger / 50</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tags\Tag\Targets\TargetTypeValue</tt></dd> | <dd><tt>\Segment\Tags\Tag\Targets\TargetTypeValue</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A number to indicate the logical level of the target.</dd> | <dd>A number to indicate the logical level of the target.</dd> | |||
<dt>defined values:</dt> | ||||
<dd>See <xref target="TargetTypeValueValues"/>.</dd> | ||||
</dl> | </dl> | |||
<t>defined values:</t> | <table anchor="TargetTypeValueValues"><name>TargetTypeValue Values</name> | |||
<table anchor="TargetTypeValueValues"><name>TargetTypeValue values</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
<th align="left">definition</th> | <th align="left">definition</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
skipping to change at line 4877 ¶ | skipping to change at line 5375 ¶ | |||
<tr> | <tr> | |||
<td align="left"><tt>60</tt></td> | <td align="left"><tt>60</tt></td> | |||
<td align="left">EDITION / ISSUE / VOLUME / OPUS / SEASON / SEQUEL</td> | <td align="left">EDITION / ISSUE / VOLUME / OPUS / SEASON / SEQUEL</td> | |||
<td align="left">A list of lower levels grouped together.</td> | <td align="left">A list of lower levels grouped together.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>50</tt></td> | <td align="left"><tt>50</tt></td> | |||
<td align="left">ALBUM / OPERA / CONCERT / MOVIE / EPISODE</td> | <td align="left">ALBUM / OPERA / CONCERT / MOVIE / EPISODE</td> | |||
<td align="left">The most common grouping level of music and video (equals to an episode for TV series).</td> | <td align="left">The most common grouping level of music and video (e.g., an epi sode for TV series).</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>40</tt></td> | <td align="left"><tt>40</tt></td> | |||
<td align="left">PART / SESSION</td> | <td align="left">PART / SESSION</td> | |||
<td align="left">When an album or episode has different logical parts.</td> | <td align="left">When an album or episode has different logical parts.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>30</tt></td> | <td align="left"><tt>30</tt></td> | |||
<td align="left">TRACK / SONG / CHAPTER</td> | <td align="left">TRACK / SONG / CHAPTER</td> | |||
<td align="left">The common parts of an album or movie.</td> | <td align="left">The common parts of an album or movie.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>20</tt></td> | <td align="left"><tt>20</tt></td> | |||
<td align="left">SUBTRACK / MOVEMENT / SCENE</td> | <td align="left">SUBTRACK / MOVEMENT / SCENE</td> | |||
<td align="left">Corresponds to parts of a track for audio like a movement, or a scene in a movie.</td> | <td align="left">Corresponds to parts of a track for audio, such as a movement o r scene in a movie.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>10</tt></td> | <td align="left"><tt>10</tt></td> | |||
<td align="left">SHOT</td> | <td align="left">SHOT</td> | |||
<td align="left">The lowest hierarchy found in music or movies.</td> | <td align="left">The lowest hierarchy found in music or movies.</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table> | |||
</section> | ||||
<section anchor="targettype-element"><name>TargetType Element</name> | <section anchor="targettype-element"><name>TargetType Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x63CA / string</dd> | <dd>0x63CA / string</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tags\Tag\Targets\TargetType</tt></dd> | <dd><tt>\Segment\Tags\Tag\Targets\TargetType</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>An informational string that can be used to display the logical level of the | <dd>An informational string that can be used to display the logical level of the | |||
target like "ALBUM", "TRACK", "MOVIE", "CHAP | target, such as "ALBUM", "TRACK", "MOVIE", "CHAPTER", etc.</dd> | |||
TER", etc.</dd> | <dt>restrictions:</dt> | |||
<dd>See <xref target="TargetTypeValues"/>.</dd> | ||||
</dl> | </dl> | |||
<t>restrictions:</t> | <table anchor="TargetTypeValues"><name>TargetType Values</name> | |||
<table anchor="TargetTypeValues"><name>TargetType values</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">value</th> | <th align="left">value</th> | |||
<th align="left">label</th> | <th align="left">label</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left"><tt>COLLECTION</tt></td> | <td align="left"><tt>COLLECTION</tt></td> | |||
skipping to change at line 5033 ¶ | skipping to change at line 5533 ¶ | |||
<tr> | <tr> | |||
<td align="left"><tt>SCENE</tt></td> | <td align="left"><tt>SCENE</tt></td> | |||
<td align="left">TargetTypeValue 20</td> | <td align="left">TargetTypeValue 20</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>SHOT</tt></td> | <td align="left"><tt>SHOT</tt></td> | |||
<td align="left">TargetTypeValue 10</td> | <td align="left">TargetTypeValue 10</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table> | |||
</section> | ||||
<section anchor="tagtrackuid-element"><name>TagTrackUID Element</name> | <section anchor="tagtrackuid-element"><name>TagTrackUID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x63C5 / uinteger / 0</dd> | <dd>0x63C5 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tags\Tag\Targets\TagTrackUID</tt></dd> | <dd><tt>\Segment\Tags\Tag\Targets\TagTrackUID</tt></dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A unique ID to identify the Track(s) the tags belong to.</dd> | <dd>A UID to identify the Track(s) that the tags belong to.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>If the value is 0 at this level, the tags apply to all tracks in the Segment . | <dd>If the value is 0 at this level, the tags apply to all tracks in the Segment . | |||
If set to any other value, it <bcp14>MUST</bcp14> match the <tt>TrackUID</tt> va lue of a track found in this Segment.</dd> | If set to any other value, it <bcp14>MUST</bcp14> match the <tt>TrackUID</tt> va lue of a track found in this Segment.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="tageditionuid-element"><name>TagEditionUID Element</name> | <section anchor="tageditionuid-element"><name>TagEditionUID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x63C9 / uinteger / 0</dd> | <dd>0x63C9 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tags\Tag\Targets\TagEditionUID</tt></dd> | <dd><tt>\Segment\Tags\Tag\Targets\TagEditionUID</tt></dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A unique ID to identify the EditionEntry(s) the tags belong to.</dd> | <dd>A UID to identify the EditionEntry(s) that the tags belong to.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>If the value is 0 at this level, the tags apply to all editions in the Segme nt. | <dd>If the value is 0 at this level, the tags apply to all editions in the Segme nt. | |||
If set to any other value, it <bcp14>MUST</bcp14> match the <tt>EditionUID</tt> value of an edition found in this Segment.</dd> | If set to any other value, it <bcp14>MUST</bcp14> match the <tt>EditionUID</tt> value of an edition found in this Segment.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="tagchapteruid-element"><name>TagChapterUID Element</name> | <section anchor="tagchapteruid-element"><name>TagChapterUID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x63C4 / uinteger / 0</dd> | <dd>0x63C4 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tags\Tag\Targets\TagChapterUID</tt></dd> | <dd><tt>\Segment\Tags\Tag\Targets\TagChapterUID</tt></dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A unique ID to identify the Chapter(s) the tags belong to.</dd> | <dd>A UID to identify the Chapter(s) that the tags belong to.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>If the value is 0 at this level, the tags apply to all chapters in the Segme nt. | <dd>If the value is 0 at this level, the tags apply to all chapters in the Segme nt. | |||
If set to any other value, it <bcp14>MUST</bcp14> match the <tt>ChapterUID</tt> value of a chapter found in this Segment.</dd> | If set to any other value, it <bcp14>MUST</bcp14> match the <tt>ChapterUID</tt> value of a chapter found in this Segment.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="tagattachmentuid-element"><name>TagAttachmentUID Element</name> | <section anchor="tagattachmentuid-element"><name>TagAttachmentUID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x63C6 / uinteger / 0</dd> | <dd>0x63C6 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tags\Tag\Targets\TagAttachmentUID</tt></dd> | <dd><tt>\Segment\Tags\Tag\Targets\TagAttachmentUID</tt></dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A unique ID to identify the Attachment(s) the tags belong to.</dd> | <dd>A UID to identify the Attachment(s) that the tags belong to.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>If the value is 0 at this level, the tags apply to all the attachments in th e Segment. | <dd>If the value is 0 at this level, the tags apply to all the attachments in th e Segment. | |||
If set to any other value, it <bcp14>MUST</bcp14> match the <tt>FileUID</tt> val ue of an attachment found in this Segment.</dd> | If set to any other value, it <bcp14>MUST</bcp14> match the <tt>FileUID</tt> val ue of an attachment found in this Segment.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="simpletag-element"><name>SimpleTag Element</name> | <section anchor="simpletag-element"><name>SimpleTag Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x67C8 / master</dd> | <dd>0x67C8 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tags\Tag\+SimpleTag</tt></dd> | <dd><tt>\Segment\Tags\Tag\+SimpleTag</tt></dd> | |||
<dt>minOccurs:</dt> | <dt>minOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
</dl> | <dt>recursive:</dt><dd>True</dd> | |||
<t>recursive: True</t> | ||||
<dl spacing="compact"> | ||||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contains general information about the target.</dd> | <dd>Contains general information about the target.</dd> | |||
</dl> | </dl> | |||
<section anchor="tagname-element"><name>TagName Element</name> | <section anchor="tagname-element"><name>TagName Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x45A3 / utf-8</dd> | <dd>0x45A3 / utf-8</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
skipping to change at line 5137 ¶ | skipping to change at line 5635 ¶ | |||
<section anchor="taglanguage-element"><name>TagLanguage Element</name> | <section anchor="taglanguage-element"><name>TagLanguage Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x447A / string / und</dd> | <dd>0x447A / string / und</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tags\Tag\+SimpleTag\TagLanguage</tt></dd> | <dd><tt>\Segment\Tags\Tag\+SimpleTag\TagLanguage</tt></dd> | |||
<dt>minOccurs / maxOccurs:</dt> | <dt>minOccurs / maxOccurs:</dt> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Specifies the language of the tag specified, | <dd>Specifies the language of the specified tag in the Matroska languages form; | |||
in the Matroska languages form; see <xref target="language-codes"></xref> on lan | see <xref target="language-codes"></xref> on language codes. | |||
guage codes. | ||||
This Element <bcp14>MUST</bcp14> be ignored if the TagLanguageBCP47 Element is u sed within the same SimpleTag Element.</dd> | This Element <bcp14>MUST</bcp14> be ignored if the TagLanguageBCP47 Element is u sed within the same SimpleTag Element.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="taglanguagebcp47-element"><name>TagLanguageBCP47 Element</name> | <section anchor="taglanguagebcp47-element"><name>TagLanguageBCP47 Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x447B / string</dd> | <dd>0x447B / string</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tags\Tag\+SimpleTag\TagLanguageBCP47</tt></dd> | <dd><tt>\Segment\Tags\Tag\+SimpleTag\TagLanguageBCP47</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The language used in the TagString, | <dd>The language used in the TagString, | |||
in the <xref target="BCP47"></xref> form; see <xref target="language-codes"></xr ef> on language codes. | in the form defined in <xref target="RFC5646"></xref>; see <xref target="languag e-codes"></xref> on language codes. | |||
If this Element is used, then any TagLanguage Elements used in the same SimpleTa g <bcp14>MUST</bcp14> be ignored.</dd> | If this Element is used, then any TagLanguage Elements used in the same SimpleTa g <bcp14>MUST</bcp14> be ignored.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="tagdefault-element"><name>TagDefault Element</name> | <section anchor="tagdefault-element"><name>TagDefault Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x4484 / uinteger / 1</dd> | <dd>0x4484 / uinteger / 1</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
skipping to change at line 5201 ¶ | skipping to change at line 5698 ¶ | |||
<section anchor="tagbinary-element"><name>TagBinary Element</name> | <section anchor="tagbinary-element"><name>TagBinary Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x4485 / binary</dd> | <dd>0x4485 / binary</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tags\Tag\+SimpleTag\TagBinary</tt></dd> | <dd><tt>\Segment\Tags\Tag\+SimpleTag\TagBinary</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The values of the Tag, if it is binary. Note that this cannot be used in the same SimpleTag as TagString.</dd> | <dd>The values of the Tag if it is binary. Note that this cannot be used in the same SimpleTag as TagString.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="matroska-element-ordering"><name>Matroska Element Ordering</nam e> | <section anchor="matroska-element-ordering"><name>Matroska Element Ordering</nam e> | |||
<t>Except for the <tt>EBML Header</tt> and the <tt>CRC-32 Element</tt>, the EBML | <t>With the exceptions of the <tt>EBML Header</tt> and the <tt>CRC-32 Element</t | |||
specification does not | t>, the EBML specification <xref target="RFC8794"></xref> does not | |||
require any particular storage order for <tt>Elements</tt>. This specification h | require any particular storage order for <tt>Elements</tt>. | |||
owever | However, this specification defines mandates and recommendations for ordering | |||
defines mandates and recommendations for ordering certain <tt>Elements</tt> in o | certain <tt>Elements</tt> to facilitate better playback, seeking, and editing | |||
rder to facilitate | efficiency. This section describes and offers rationale for ordering | |||
better playback, seeking, and editing efficiency. This section describes and off | requirements and recommendations for Matroska.</t> | |||
ers | ||||
rationale for ordering requirements and recommendations for Matroska.</t> | ||||
<section anchor="top-level-elements"><name>Top-Level Elements</name> | <section anchor="top-level-elements"><name>Top-Level Elements</name> | |||
<t>The <tt>Info Element</tt> is the only <bcp14>REQUIRED</bcp14> <tt>Top-Level E lement</tt> in a Matroska file. | <t>The <tt>Info Element</tt> is the only <bcp14>REQUIRED</bcp14> <tt>Top-Level E lement</tt> in a Matroska file. | |||
To be playable, Matroska <bcp14>MUST</bcp14> also contain at least one <tt>Track s Element</tt> and <tt>Cluster Element</tt>. | To be playable, Matroska <bcp14>MUST</bcp14> also contain at least one <tt>Track s Element</tt> and <tt>Cluster Element</tt>. | |||
The first <tt>Info Element</tt> and the first <tt>Tracks Element</tt> <bcp14>MUS | The first <tt>Info Element</tt> and the first <tt>Tracks Element</tt> either <bc | |||
T</bcp14> either be stored before the first | p14>MUST</bcp14> be stored before the first | |||
<tt>Cluster Element</tt> or both <bcp14>SHALL</bcp14> be referenced by a <tt>See | <tt>Cluster Element</tt> or <bcp14>SHALL</bcp14> both be referenced by a <tt>See | |||
kHead Element</tt> occurring before the first <tt>Cluster Element</tt>.</t> | kHead Element</tt> occurring before the first <tt>Cluster Element</tt>.</t> | |||
<t>All <tt>Top-Level Elements</tt> <bcp14>MUST</bcp14> use a 4-octet long EBML E | <t>All <tt>Top-Level Elements</tt> <bcp14>MUST</bcp14> use a 4-octet EBML Elemen | |||
lement ID.</t> | t ID.</t> | |||
<t>When using Medium Linking, chapters are used to reference other Segments to p | <t>When using Medium Linking, chapters are used to reference other Segments to p | |||
lay in a given order <xref target="medium-linking"></xref>. | lay in a given order (see <xref target="medium-linking"></xref>). | |||
A Segment containing these linked Chapters does not require a <tt>Track</tt> Ele | A Segment containing these Linked Chapters does not require a <tt>Track</tt> Ele | |||
ment or a <tt>Cluster</tt> Element.</t> | ment or a <tt>Cluster</tt> Element.</t> | |||
<t>It is possible to edit a Matroska file after it has been created. For example , chapters, | <t>It is possible to edit a Matroska file after it has been created. For example , chapters, | |||
tags, or attachments can be added. When new <tt>Top-Level Elements</tt> are adde d to a Matroska file, | tags, or attachments can be added. When new <tt>Top-Level Elements</tt> are adde d to a Matroska file, | |||
the <tt>SeekHead</tt> Element(s) <bcp14>MUST</bcp14> be updated so that the <tt> SeekHead</tt> Element(s) itemize | the <tt>SeekHead</tt> Element(s) <bcp14>MUST</bcp14> be updated so that the <tt> SeekHead</tt> Element(s) itemizes | |||
the identity and position of all <tt>Top-Level Elements</tt>.</t> | the identity and position of all <tt>Top-Level Elements</tt>.</t> | |||
<t>Editing, removing, or adding | <t>Editing, removing, or adding | |||
<tt>Elements</tt> to a Matroska file often requires that some existing <tt>Eleme nts</tt> be voided | <tt>Elements</tt> to a Matroska file often requires that some existing <tt>Eleme nts</tt> be voided | |||
or extended. | or extended. | |||
Transforming the existing <tt>Elements</tt> into <tt>Void Elements</tt> as paddi ng can be used | Transforming the existing <tt>Elements</tt> into <tt>Void Elements</tt> as paddi ng can be used | |||
as a method to avoid moving large amounts of data around.</t> | as a method to avoid moving large amounts of data around.</t> | |||
</section> | </section> | |||
<section anchor="crc-32"><name>CRC-32</name> | <section anchor="crc-32"><name>CRC-32</name> | |||
<t>As noted by the EBML specification, if a <tt>CRC-32 Element</tt> is used, the n the <tt>CRC-32 Element</tt> | <t>As noted by the EBML specification <xref target="RFC8794"></xref>, if a <tt>C RC-32 Element</tt> is used, then the <tt>CRC-32 Element</tt> | |||
<bcp14>MUST</bcp14> be the first ordered <tt>Element</tt> within its <tt>Parent Element</tt>.</t> | <bcp14>MUST</bcp14> be the first ordered <tt>Element</tt> within its <tt>Parent Element</tt>.</t> | |||
<t>In Matroska all <tt>Top-Level Elements</tt> of an EBML Document <bcp14>SHOULD </bcp14> include a <tt>CRC-32 Element</tt> | <t>In Matroska, all <tt>Top-Level Elements</tt> of an EBML Document <bcp14>SHOUL D</bcp14> include a <tt>CRC-32 Element</tt> | |||
as their first <tt>Child Element</tt>. | as their first <tt>Child Element</tt>. | |||
The <tt>Segment Element</tt>, which is the <tt>Root Element</tt>, <bcp14>SHOULD NOT</bcp14> have a <tt>CRC-32 Element</tt>.</t> | The <tt>Segment Element</tt>, which is the <tt>Root Element</tt>, <bcp14>SHOULD NOT</bcp14> have a <tt>CRC-32 Element</tt>.</t> | |||
</section> | </section> | |||
<section anchor="seekhead"><name>SeekHead</name> | <section anchor="seekhead"><name>SeekHead</name> | |||
<t>If used, the first <tt>SeekHead Element</tt> <bcp14>MUST</bcp14> be the first non-<tt>CRC-32 Child Element</tt> | <t>If used, the first <tt>SeekHead Element</tt> <bcp14>MUST</bcp14> be the first non-<tt>CRC-32 Child Element</tt> | |||
of the <tt>Segment Element</tt>. If a second <tt>SeekHead Element</tt> is used, then the first | of the <tt>Segment Element</tt>. If a second <tt>SeekHead Element</tt> is used, then the first | |||
<tt>SeekHead Element</tt> <bcp14>MUST</bcp14> reference the identity and positio n of the second <tt>SeekHead</tt>.</t> | <tt>SeekHead Element</tt> <bcp14>MUST</bcp14> reference the identity and positio n of the second <tt>SeekHead Element</tt>.</t> | |||
<t>Additionally, the second <tt>SeekHead Element</tt> <bcp14>MUST</bcp14> only r eference <tt>Cluster</tt> Elements | <t>Additionally, the second <tt>SeekHead Element</tt> <bcp14>MUST</bcp14> only r eference <tt>Cluster</tt> Elements | |||
and not any other <tt>Top-Level Element</tt> already contained within the first <tt>SeekHead Element</tt>.</t> | and not any other <tt>Top-Level Element</tt> already contained within the first <tt>SeekHead Element</tt>.</t> | |||
<t>The second <tt>SeekHead Element</tt> <bcp14>MAY</bcp14> be stored in any orde r relative to the other <tt>Top-Level Elements</tt>. | <t>The second <tt>SeekHead Element</tt> <bcp14>MAY</bcp14> be stored in any orde r relative to the other <tt>Top-Level Elements</tt>. | |||
Whether one or two <tt>SeekHead Element(s)</tt> are used, the <tt>SeekHead Eleme nt(s)</tt> <bcp14>MUST</bcp14> | Whether one or two <tt>SeekHead Elements</tt> are used, the <tt>SeekHead Element (s)</tt> <bcp14>MUST</bcp14> | |||
collectively reference the identity and position of all <tt>Top-Level Elements</ tt> except | collectively reference the identity and position of all <tt>Top-Level Elements</ tt> except | |||
for the first <tt>SeekHead Element</tt>.</t> | for the first <tt>SeekHead Element</tt>.</t> | |||
</section> | </section> | |||
<section anchor="cues-index"><name>Cues (index)</name> | <section anchor="cues-index"><name>Cues (Index)</name> | |||
<t>The <tt>Cues Element</tt> is <bcp14>RECOMMENDED</bcp14> to optimize seeking a ccess in Matroska. It is | <t>The <tt>Cues Element</tt> is <bcp14>RECOMMENDED</bcp14> to optimize seeking a ccess in Matroska. It is | |||
programmatically simpler to add the <tt>Cues Element</tt> after all <tt>Cluster Elements</tt> | programmatically simpler to add the <tt>Cues Element</tt> after all <tt>Cluster Elements</tt> | |||
have been written because this does not require a prediction of how much space t o | have been written because this does not require a prediction of how much space t o | |||
reserve before writing the <tt>Cluster Elements</tt>. However, storing the <tt>C ues Element</tt> | reserve before writing the <tt>Cluster Elements</tt>. However, storing the <tt>C ues Element</tt> | |||
before the <tt>Cluster Elements</tt> can provide some seeking advantages. If the <tt>Cues Element</tt> | before the <tt>Cluster Elements</tt> can provide some seeking advantages. If the <tt>Cues Element</tt> | |||
is present, then it <bcp14>SHOULD</bcp14> either be stored before the first <tt> Cluster Element</tt> | is present, then it <bcp14>SHOULD</bcp14> either be stored before the first <tt> Cluster Element</tt> | |||
or be referenced by a <tt>SeekHead Element</tt>.</t> | or be referenced by a <tt>SeekHead Element</tt>.</t> | |||
</section> | </section> | |||
<section anchor="info"><name>Info</name> | <section anchor="info"><name>Info</name> | |||
<t>The first <tt>Info Element</tt> <bcp14>SHOULD</bcp14> occur before the first <tt>Tracks Element</tt> and first | <t>The first <tt>Info Element</tt> <bcp14>SHOULD</bcp14> occur before the first <tt>Tracks Element</tt> and first | |||
<tt>Cluster Element</tt> except when referenced by a <tt>SeekHead Element</tt>.< /t> | <tt>Cluster Element</tt> except when referenced by a <tt>SeekHead Element</tt>.< /t> | |||
</section> | </section> | |||
<section anchor="chapters-element-1"><name>Chapters Element</name> | <section anchor="chapters-element-1"><name>Chapters Element</name> | |||
<t>The <tt>Chapters Element</tt> <bcp14>SHOULD</bcp14> be placed before the <tt> Cluster Element(s)</tt>. The | <t>The <tt>Chapters Element</tt> <bcp14>SHOULD</bcp14> be placed before the <tt> Cluster Element(s)</tt>. The | |||
<tt>Chapters Element</tt> can be used during playback even if the user does not need to seek. | <tt>Chapters Element</tt> can be used during playback even if the user does not need to seek. | |||
It immediately gives the user information about what section is being read and w hat | It immediately gives the user information about what section is being read and w hat | |||
other sections are available. In the case of Ordered Chapters it is <bcp14>RECOM | other sections are available. | |||
MENDED</bcp14> to evaluate | ||||
the logical linking even before playing. The <tt>Chapters Element</tt> <bcp14>SH | In the case of Ordered Chapters, it is <bcp14>RECOMMENDED</bcp14> to evaluate | |||
OULD</bcp14> be placed before | the logical linking before playing. The <tt>Chapters Element</tt> <bcp14>SHOULD< | |||
/bcp14> be placed before | ||||
the first <tt>Tracks Element</tt> and after the first <tt>Info Element</tt>.</t> | the first <tt>Tracks Element</tt> and after the first <tt>Info Element</tt>.</t> | |||
</section> | </section> | |||
<section anchor="attachments"><name>Attachments</name> | <section anchor="attachments"><name>Attachments</name> | |||
<t>The <tt>Attachments Element</tt> is not intended to be used by default when p laying the file, | <t>The <tt>Attachments Element</tt> is not intended to be used by default when p laying the file | |||
but could contain information relevant to the content, such as cover art or font s. | but could contain information relevant to the content, such as cover art or font s. | |||
Cover art is useful even before the file is played and fonts could be needed bef | Cover art is useful even before the file is played, and fonts could be needed be | |||
ore playback | fore playback | |||
starts for initialization of subtitles. The <tt>Attachments Element</tt> <bcp14> | starts for the initialization of subtitles. The <tt>Attachments Element</tt> <bc | |||
MAY</bcp14> be placed before | p14>MAY</bcp14> be placed before | |||
the first <tt>Cluster Element</tt>; however, if the <tt>Attachments Element</tt> is likely to be edited, | the first <tt>Cluster Element</tt>; however, if the <tt>Attachments Element</tt> is likely to be edited, | |||
then it <bcp14>SHOULD</bcp14> be placed after the last <tt>Cluster Element</tt>. </t> | then it <bcp14>SHOULD</bcp14> be placed after the last <tt>Cluster Element</tt>. </t> | |||
</section> | </section> | |||
<section anchor="tags"><name>Tags</name> | <section anchor="tags"><name>Tags</name> | |||
<t>The <tt>Tags Element</tt> is most subject to changes after the file was origi nally created. | <t>The <tt>Tags Element</tt> is most subject to changes after the file was origi nally created. | |||
For easier editing, the <tt>Tags Element</tt> can be placed at the end of the <t t>Segment Element</tt>, | For easier editing, the <tt>Tags Element</tt> can be placed at the end of the <t t>Segment Element</tt>, | |||
even after the <tt>Attachments Element</tt>. On the other hand, it is inconvenie nt to have to | even after the <tt>Attachments Element</tt>. On the other hand, it is inconvenie nt to have to | |||
seek in the <tt>Segment</tt> for tags, especially for network streams. So it's b etter if the | seek in the <tt>Segment</tt> for tags, especially for network streams; thus, it' s better if the | |||
<tt>Tags Element</tt> is found early in the stream. When editing the <tt>Tags El ement</tt>, the original | <tt>Tags Element</tt> is found early in the stream. When editing the <tt>Tags El ement</tt>, the original | |||
<tt>Tags Element</tt> at the beginning can be overwritten with a <tt>Void Elemen t</tt> and a | <tt>Tags Element</tt> at the beginning can be overwritten with a <tt>Void Elemen t</tt> and a | |||
new <tt>Tags Element</tt> written at the end of the <tt>Segment Element</tt>. Th e file and Segment sizes will only marginally change.</t> | new <tt>Tags Element</tt> written at the end of the <tt>Segment Element</tt>. Th e file and Segment sizes will only marginally change.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="matroska-versioning"><name>Matroska versioning</name> | <section anchor="matroska-versioning"><name>Matroska Versioning</name> | |||
<t>Matroska is based upon the principle that a reading application does not have | <t>Matroska is based on the principle that a reading application does not have t | |||
to support | o support | |||
100% of the specifications in order to be able to play the file. A Matroska file | 100% of the specifications in order to be able to play the file. Therefore, a Ma | |||
therefore | troska file contains version indicators that tell a reading application what to | |||
contains version indicators that tell a reading application what to expect.</t> | expect.</t> | |||
<t>It is possible and valid to have the version fields indicate that the file co ntains | <t>It is possible and valid to have the version fields indicate that the file co ntains | |||
Matroska <tt>Elements</tt> from a higher specification version number while sign aling that a | Matroska <tt>Elements</tt> from a higher specification version number while sign aling that a | |||
reading application <bcp14>MUST</bcp14> only support a lower version number prop erly in order to play | reading application <bcp14>MUST</bcp14> only support a lower version number prop erly in order to play | |||
it back (possibly with a reduced feature set).</t> | it back (possibly with a reduced feature set).</t> | |||
<t>The <tt>EBML Header</tt> of each Matroska document informs the reading applic ation on what | <t>The <tt>EBML Header</tt> of each Matroska document informs the reading applic ation on what | |||
version of Matroska to expect. The <tt>Elements</tt> within <tt>EBML Header</tt> with jurisdiction | version of Matroska to expect. The <tt>Elements</tt> within the <tt>EBML Header< /tt> with jurisdiction | |||
over this information are <tt>DocTypeVersion</tt> and <tt>DocTypeReadVersion</tt >.</t> | over this information are <tt>DocTypeVersion</tt> and <tt>DocTypeReadVersion</tt >.</t> | |||
<t><tt>DocTypeVersion</tt> <bcp14>MUST</bcp14> be equal to or greater than the h ighest Matroska version number of | <t><tt>DocTypeVersion</tt> <bcp14>MUST</bcp14> be equal to or greater than the h ighest Matroska version number of | |||
any <tt>Element</tt> present in the Matroska file. For example, a file using the <tt>SimpleBlock Element</tt> (<xref target="simpleblock-element"></xref>) | any <tt>Element</tt> present in the Matroska file. For example, a file using the <tt>SimpleBlock Element</tt> (<xref target="simpleblock-element"></xref>) | |||
<bcp14>MUST</bcp14> have a <tt>DocTypeVersion</tt> equal to or greater than 2. A file containing <tt>CueRelativePosition</tt> | <bcp14>MUST</bcp14> have a <tt>DocTypeVersion</tt> equal to or greater than 2. A file containing <tt>CueRelativePosition</tt> | |||
Elements (<xref target="cuerelativeposition-element"></xref>) <bcp14>MUST</bcp1 4> have a <tt>DocTypeVersion</tt> equal to or greater than 4.</t> | Elements (<xref target="cuerelativeposition-element"></xref>) <bcp14>MUST</bcp1 4> have a <tt>DocTypeVersion</tt> equal to or greater than 4.</t> | |||
<t>The <tt>DocTypeReadVersion</tt> <bcp14>MUST</bcp14> contain the minimum versi on number that a reading application | <t>The <tt>DocTypeReadVersion</tt> <bcp14>MUST</bcp14> contain the minimum versi on number that a reading application | |||
can minimally support in order to play the file back -- optionally with a reduce d feature | can minimally support in order to play the file back -- optionally with a reduce d feature | |||
set. For example, if a file contains only <tt>Elements</tt> of version 2 or lowe r except for | set. For example, if a file contains only <tt>Elements</tt> of version 2 or lowe r except for | |||
<tt>CueRelativePosition</tt> (which is a version 4 Matroska <tt>Element</tt>), t hen <tt>DocTypeReadVersion</tt> | <tt>CueRelativePosition</tt> (which is a version 4 Matroska <tt>Element</tt>), t hen <tt>DocTypeReadVersion</tt> | |||
<bcp14>SHOULD</bcp14> still be set to 2 and not 4 because evaluating <tt>CueRela tivePosition</tt> is not | <bcp14>SHOULD</bcp14> still be set to 2 and not 4 because evaluating <tt>CueRela tivePosition</tt> is not | |||
necessary for standard playback -- it makes seeking more precise if used.</t> | necessary for standard playback -- it makes seeking more precise if used.</t> | |||
<t>A reading application supporting Matroska version <tt>V</tt> <bcp14>MUST NOT< /bcp14> refuse to read a | <t>A reading application supporting Matroska version <tt>V</tt> <bcp14>MUST NOT< /bcp14> refuse to read a | |||
file with <tt>DocReadTypeVersion</tt> equal to or lower than <tt>V</tt> even if <tt>DocTypeVersion</tt> | file with <tt>DocReadTypeVersion</tt> equal to or lower than <tt>V</tt>, even if <tt>DocTypeVersion</tt> | |||
is greater than <tt>V</tt>.</t> | is greater than <tt>V</tt>.</t> | |||
<t>A reading application | <t>A reading application | |||
supporting at least Matroska version <tt>V</tt> reading a file whose <tt>DocType ReadVersion</tt> | supporting at least Matroska version <tt>V</tt> and reading a file whose <tt>Doc TypeReadVersion</tt> | |||
field is equal to or lower than <tt>V</tt> <bcp14>MUST</bcp14> skip Matroska/EBM L <tt>Elements</tt> it encounters | field is equal to or lower than <tt>V</tt> <bcp14>MUST</bcp14> skip Matroska/EBM L <tt>Elements</tt> it encounters | |||
but does not know about if that unknown element fits into the size constraints s et | but does not know about if that unknown element fits into the size constraints s et | |||
by the current <tt>Parent Element</tt>.</t> | by the current <tt>Parent Element</tt>.</t> | |||
</section> | </section> | |||
<section anchor="stream-copy"><name>Stream Copy</name> | <section anchor="stream-copy"><name>Stream Copy</name> | |||
<t>It is sometimes necessary to create a Matroska file from another Matroska fil e, for example to add subtitles in a language | <t>It is sometimes necessary to create a Matroska file from another Matroska fil e, for example, to add subtitles in a language | |||
or to edit out a portion of the content. | or to edit out a portion of the content. | |||
Some values from the original Matroska file need to be kept the same in the dest ination file. | Some values from the original Matroska file need to be kept the same in the dest ination file. | |||
For example, the SamplingFrequency of an audio track wouldn't change between the two files. | For example, the SamplingFrequency of an audio track wouldn't change between the two files. | |||
Some other values may change between the two files, for example the TrackNumber | Some other values may change between the two files, for example, the TrackNumber | |||
of an audio track when another track has been added.</t> | of an audio track when another track has been added.</t> | |||
<t>An Element is marked with a property: <tt>stream copy: True</tt> when the val | ||||
ues of that Element need to be kept identical between the source and destination | <!-- [rfced] Please clarify "with a property: stream copy: True when". | |||
file. | ||||
If that property is not set, elements may or may not keep the same value between | Original: | |||
the source and destination.</t> | An Element is marked with a property: stream copy: True when the | |||
values of that Element need to be kept identical between the source | ||||
and destination file. | ||||
Perhaps: | ||||
An Element is marked with the property "stream copy: True" when the | ||||
values of that Element need to be kept identical between the source | ||||
and destination files. | ||||
--> | ||||
<t>An Element is marked with a property: <tt>stream copy: True</tt> when the val | ||||
ues of that Element need to be kept identical between the source and destination | ||||
files. | ||||
If that property is not set, elements may or may not keep the same value between | ||||
the source and destination files.</t> | ||||
</section> | </section> | |||
<section anchor="defaultdecodedfieldduration"><name>DefaultDecodedFieldDuration< /name> | <section anchor="defaultdecodedfieldduration"><name>DefaultDecodedFieldDuration< /name> | |||
<t>The <tt>DefaultDecodedFieldDuration Element</tt> can signal to the displaying application how | <t>The <tt>DefaultDecodedFieldDuration Element</tt> can signal to the displaying application how | |||
often fields of a video sequence will be available for displaying. It can be use d for both | often fields of a video sequence will be available for displaying. It can be use d for both | |||
interlaced and progressive content.</t> | interlaced and progressive content.</t> | |||
<t>If the video sequence is signaled as interlaced <xref target="flaginterlaced- element"></xref>, then <tt>DefaultDecodedFieldDuration</tt> equals | <t>If the video sequence is signaled as interlaced (<xref target="flaginterlaced -element"></xref>), then <tt>DefaultDecodedFieldDuration</tt> equals | |||
the period between two successive fields at the output of the decoding process. | the period between two successive fields at the output of the decoding process. | |||
For video sequences signaled as progressive, <tt>DefaultDecodedFieldDuration</tt > is half of | For video sequences signaled as progressive, <tt>DefaultDecodedFieldDuration</tt > is half of | |||
the period between two successive frames at the output of the decoding process.< /t> | the period between two successive frames at the output of the decoding process.< /t> | |||
<t>These values are valid at the end of the decoding process before post-process ing | <t>These values are valid at the end of the decoding process before post-process ing | |||
(such as deinterlacing or inverse telecine) is applied.</t> | (such as deinterlacing or inverse telecine) is applied.</t> | |||
<t>Examples:</t> | <t>Examples:</t> | |||
<ul spacing="compact"> | <ul> | |||
<li>Blu-ray movie: 1000000000 ns/(48/1.001) = 20854167 ns</li> | <li>Blu-ray movie: 1000000000 ns/(48/1.001) = 20854167 ns</li> | |||
<li>PAL broadcast/DVD: 1000000000 ns/(50/1.000) = 20000000 ns</li> | <li>PAL broadcast/DVD: 1000000000 ns/(50/1.000) = 20000000 ns</li> | |||
<li>N/ATSC broadcast: 1000000000 ns/(60/1.001) = 16683333 ns</li> | <li>N/ATSC broadcast: 1000000000 ns/(60/1.001) = 16683333 ns</li> | |||
<li>hard-telecined DVD: 1000000000 ns/(60/1.001) = 16683333 ns (60 encoded inter | <li>Hard-telecined DVD: 1000000000 ns/(60/1.001) = 16683333 ns (60 encoded inter | |||
laced fields per second)</li> | laced fields per second)</li> | |||
<li>soft-telecined DVD: 1000000000 ns/(60/1.001) = 16683333 ns (48 encoded inter | <li>Soft-telecined DVD: 1000000000 ns/(60/1.001) = 16683333 ns (48 encoded inter | |||
laced fields per second, with "repeat_first_field = 1")</li> | laced fields per second, with "repeat_first_field = 1")</li> | |||
</ul> | </ul> | |||
</section> | </section> | |||
<section anchor="cluster-blocks"><name>Cluster Blocks</name> | <section anchor="cluster-blocks"><name>Cluster Blocks</name> | |||
<t>Frames using references <bcp14>SHOULD</bcp14> be stored in "coding order | ||||
". That means the references first, and then | <t>Frames using references <bcp14>SHOULD</bcp14> be stored in "coding order" (i. | |||
the frames referencing them. A consequence is that timestamps might not be conse | e., the references first and then | |||
cutive. | the frames referencing them). A consequence is that timestamps might not be cons | |||
But a frame with a past timestamp <bcp14>MUST</bcp14> reference a frame already | ecutive. | |||
known, otherwise it's considered bad/void.</t> | However, a frame with a past timestamp <bcp14>MUST</bcp14> reference a frame alr | |||
eady known; otherwise, it is considered bad/void.</t> | ||||
<t>Matroska has two similar ways to store frames in a block:</t> | <t>Matroska has two similar ways to store frames in a block:</t> | |||
<ul spacing="compact"> | <ul> | |||
<li>in a <tt>Block</tt> which is contained inside a <tt>BlockGroup</tt>,</li> | <li>in a <tt>Block</tt> that is contained inside a <tt>BlockGroup</tt></li> | |||
<li>or in a <tt>SimpleBlock</tt> which is directly in the <tt>Cluster</tt>.</li> | <li>in a <tt>SimpleBlock</tt> that is directly in the <tt>Cluster</tt></li> | |||
</ul> | </ul> | |||
<t>The <tt>SimpleBlock</tt> is usually preferred unless some extra elements of t he <tt>BlockGroup</tt> need to be used. | <t>The <tt>SimpleBlock</tt> is usually preferred unless some extra elements of t he <tt>BlockGroup</tt> need to be used. | |||
A Matroska Reader <bcp14>MUST</bcp14> support both types of blocks.</t> | A Matroska Reader <bcp14>MUST</bcp14> support both types of blocks.</t> | |||
<t>Each block contains the same parts in the following order:</t> | <t>Each block contains the same parts in the following order:</t> | |||
<ul spacing="compact"> | <ul> | |||
<li>a variable length header,</li> | <li>a variable-length header</li> | |||
<li>optionally the lacing information,</li> | <li>the lacing information (optional)</li> | |||
<li>the consecutive frame(s)</li> | <li>the consecutive frame(s)</li> | |||
</ul> | </ul> | |||
<!-- [rfced] Is "on up to" correct here? | ||||
Original: | ||||
The value can be coded on up to 8 octets. | ||||
Perhaps: | ||||
The value can be coded up to 8 octets. | ||||
--> | ||||
<t>The block header starts with the number of the Track it corresponds to. | <t>The block header starts with the number of the Track it corresponds to. | |||
The value <bcp14>MUST</bcp14> corresponding to the <tt>TrackNumber</tt> (<xref t | ||||
arget="tracknumber-element"></xref>) of a <tt>TrackEntry</tt> of the <tt>Segment | The value <bcp14>MUST</bcp14> correspond to the <tt>TrackNumber</tt> (<xref targ | |||
</tt>.</t> | et="tracknumber-element"></xref>) of a <tt>TrackEntry</tt> of the <tt>Segment</t | |||
<t>The <tt>TrackNumber</tt> is coded using the VINT mechanism described in Secti | t>.</t> | |||
on 4 of <xref target="RFC8794"></xref>. | <t>The <tt>TrackNumber</tt> is coded using the Variable-Size Integer (VINT) mech | |||
anism described in <xref target="RFC8794" sectionFormat="of" section="4"></xref> | ||||
. | ||||
To save space, the shortest VINT form <bcp14>SHOULD</bcp14> be used. The value c an be coded on up to 8 octets. | To save space, the shortest VINT form <bcp14>SHOULD</bcp14> be used. The value c an be coded on up to 8 octets. | |||
This is the only element with a variable size in the block header.</t> | This is the only element with a variable size in the block header.</t> | |||
<t>The timestamp is expressed in Track Ticks; see <xref target="timestamp-ticks" ></xref>. | <t>The timestamp is expressed in Track Ticks; see <xref target="timestamp-ticks" ></xref>. | |||
The value is stored as a signed value on 16 bits.</t> | The value is stored as a signed value on 16 bits.</t> | |||
<section anchor="block-structure"><name>Block Structure</name> | <section anchor="block-structure"><name>Block Structure</name> | |||
<t>This section describes the binary data contained in the <tt>Block</tt> Elemen t <xref target="block-element"></xref>. Bit 0 is the most significant bit.</t> | <t>This section describes the binary data contained in the <tt>Block</tt> Elemen t (<xref target="block-element"></xref>). Bit 0 is the most significant bit.</t> | |||
<t>As the <tt>TrackNumber</tt> size can vary between 1 and 8 octets, there are 8 different sizes for the <tt>Block</tt> header. | <t>As the <tt>TrackNumber</tt> size can vary between 1 and 8 octets, there are 8 different sizes for the <tt>Block</tt> header. | |||
We only provide the definitions for <tt>TrackNumber</tt> sizes of 1 and 2. | The definitions for <tt>TrackNumber</tt> sizes of 1 and 2 are provided; the othe | |||
The other variants can be deduced by extending the size of the <tt>TrackNumber</ | r variants can be deduced by extending the size of the <tt>TrackNumber</tt> by m | |||
tt> by multiples of 8 bits.</t> | ultiples of 8 bits.</t> | |||
<figure><name>Block Header with 1 octet TrackNumber | <figure><name>Block Header with 1-Octet TrackNumber | |||
</name> | </name> | |||
<artwork> 0 1 2 3 | <artwork> | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| | | |I|LAC|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Track Number | Timestamp | Rsvrd |N|ING|N| | | | | |I|LAC|U| | |||
| | | |V| |U| | | Track Number | Timestamp | Rsvrd |N|ING|N| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | |V| |U| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
</artwork> | </artwork> | |||
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
</figure> | </figure> | |||
<figure><name>Block Header with 2 octets TrackNumber | <figure><name>Block Header with 2-Octet TrackNumber | |||
</name> | </name> | |||
<artwork> 0 1 2 3 | <artwork> | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| Track Number | Timestamp | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Track Number | Timestamp | | |||
| |I|LAC|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Rsvrd |N|ING|N| ... | | |I|LAC|U| | |||
| |V| |U| | | Rsvrd |N|ING|N| ... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | |V| |U| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
</artwork> | </artwork> | |||
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
</figure> | </figure> | |||
<t>where:</t> | <t>where:</t> | |||
<dl newline="false" spacing="normal"> | ||||
<dt>Track Number:</dt><dd>8, 16, 24, 32, 40, 48, or 64 bits. An EBML VINT-coded | ||||
track number.</dd> | ||||
<dt>Timestamp:</dt><dd>16 bits. Signed timestamp in Track Ticks.</dd> | ||||
<dt>Rsvrd:</dt><dd>4 bits. Reserved bits <bcp14>MUST</bcp14> be set to 0.</dd> | ||||
<dt>INV:</dt><dd>1 bit. Invisible. The codec <bcp14>SHOULD</bcp14> decode this f | ||||
rame but not display it.</dd> | ||||
<dt>LACING:</dt><dd><t>2 bits. Uses lacing mode.</t> | ||||
<dl newline="true" spacing="normal"> | <dl spacing="compact"> | |||
<dt>Track Number: 8, 16, 24, 32, 40, 48 or 64 bits</dt> | <dt>00b:</dt><dd>no lacing (<xref target="no-lacing"></xref>)</dd> | |||
<dd>an EBML VINT coded track number</dd> | <dt>01b:</dt><dd>Xiph lacing (<xref target="xiph-lacing"></xref>)</dd> | |||
<dt>Timestamp: 16 bits</dt> | <dt>11b:</dt><dd>EBML lacing (<xref target="ebml-lacing"></xref>)</dd> | |||
<dd>signed timestamp in Track Ticks</dd> | <dt>10b:</dt><dd>fixed-size lacing (<xref target="fixed-size-lacing"></xref>)</d | |||
<dt>Rsvrd: 4 bits</dt> | d> | |||
<dd>Reserved bits <bcp14>MUST</bcp14> be set to 0</dd> | </dl></dd> | |||
<dt>INV: 1 bit</dt> | <dt>UNU:</dt><dd>1 bit. Unused bit.</dd> | |||
<dd>Invisible, the codec <bcp14>SHOULD</bcp14> decode this frame but not display | ||||
it</dd> | ||||
<dt>LACING: 2 bits</dt> | ||||
<dd><t>using lacing mode</t> | ||||
<ul spacing="compact"> | ||||
<li>00b : no lacing (<xref target="no-lacing"></xref>)</li> | ||||
<li>01b : Xiph lacing (<xref target="xiph-lacing"></xref>)</li> | ||||
<li>11b : EBML lacing (<xref target="ebml-lacing"></xref>)</li> | ||||
<li>10b : fixed-size lacing (<xref target="fixed-size-lacing"></xref>)</li> | ||||
</ul></dd> | ||||
<dt>UNU: 1 bit</dt> | ||||
<dd>unused bit</dd> | ||||
</dl> | </dl> | |||
<t>The following data in the <tt>Block</tt> correspond to the lacing data and fr | ||||
ames usage as described in each respective lacing mode.</t> | <t>The following data in the <tt>Block</tt> corresponds to the lacing data and f | |||
rames usage as described in each respective lacing mode.</t> | ||||
</section> | </section> | |||
<section anchor="simpleblock-structure"><name>SimpleBlock Structure</name> | <section anchor="simpleblock-structure"><name>SimpleBlock Structure</name> | |||
<t>This section describes the binary data contained in the <tt>SimpleBlock</tt> | <t>This section describes the binary data contained in the <tt>SimpleBlock</tt> | |||
Element <xref target="simpleblock-element"></xref>. Bit 0 is the most significan | Element (<xref target="simpleblock-element"></xref>). Bit 0 is the most signific | |||
t bit.</t> | ant bit.</t> | |||
<t>The <tt>SimpleBlock</tt> is inspired by the Block structure; see <xref target | <t>The <tt>SimpleBlock</tt> structure is inspired by the Block structure; see <x | |||
="block-structure"></xref>. | ref target="block-structure"></xref>. | |||
The main differences are the added Keyframe flag and Discardable flag. Otherwise , everything is the same.</t> | The main differences are the added Keyframe flag and Discardable flag. Otherwise , everything is the same.</t> | |||
<t>As the <tt>TrackNumber</tt> size can vary between 1 and 8 octets, there are 8 different sizes for the <tt>SimpleBlock</tt> header. | <t>As the <tt>TrackNumber</tt> size can vary between 1 and 8 octets, there are 8 different sizes for the <tt>SimpleBlock</tt> header. | |||
We only provide the definitions for <tt>TrackNumber</tt> sizes of 1 and 2. | The definitions for <tt>TrackNumber</tt> sizes of 1 and 2 are provided; the | |||
The other variants can be deduced by extending the size of the <tt>TrackNumber</ | other variants can be deduced by extending the size of the | |||
tt> by multiples of 8 bits.</t> | <tt>TrackNumber</tt> by multiples of 8 bits.</t> | |||
<figure><name>SimpleBlock Header with 1 octet TrackNumber | <figure><name>SimpleBlock Header with 1-Octet TrackNumber | |||
</name> | </name> | |||
<artwork> 0 1 2 3 | <artwork> | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| | |K| |I|LAC|D| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Track Number | Timestamp |E|Rsvrd|N|ING|I| | | | |K| |I|LAC|D| | |||
| | |Y| |V| |S| | | Track Number | Timestamp |E|Rsvrd|N|ING|I| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | |Y| |V| |S| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
</artwork> | </artwork> | |||
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
</figure> | </figure> | |||
<figure><name>SimpleBlock Header with 2 octets TrackNumber | <figure><name>SimpleBlock Header with 2-Octet TrackNumber | |||
</name> | </name> | |||
<artwork> 0 1 2 3 | <artwork> | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | 0 1 2 3 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | |||
| Track Number | Timestamp | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Track Number | Timestamp | | |||
|K| |I|LAC|D| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|E|Rsvrd|N|ING|I| ... | |K| |I|LAC|D| | |||
|Y| |V| |S| | |E|Rsvrd|N|ING|I| ... | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |Y| |V| |S| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
</artwork> | </artwork> | |||
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
</figure> | </figure> | |||
<t>where:</t> | <t>where:</t> | |||
<dl newline="true" spacing="normal"> | <dl newline="false" spacing="normal"> | |||
<dt>Track Number: 8, 16, 24, 32, 40, 48 or 64 bits</dt> | <dt>Track Number:</dt><dd>8, 16, 24, 32, 40, 48, or 64 bits. An EBML VINT-coded | |||
<dd>an EBML VINT coded track number</dd> | track number.</dd> | |||
<dt>Timestamp: 16 bits</dt> | <dt>Timestamp:</dt><dd>16 bits. Signed timestamp in Track Ticks.</dd> | |||
<dd>signed timestamp in Track Ticks</dd> | <dt>KEY:</dt><dd>1 bit. Keyframe. Set when the Block contains only keyframes.</d | |||
<dt>KEY: 1 bit</dt> | d> | |||
<dd>Keyframe, set when the Block contains only keyframes</dd> | <dt>Rsvrd:</dt><dd>3 bits. Reserved bits <bcp14>MUST</bcp14> be set to 0.</dd> | |||
<dt>Rsvrd: 3 bits</dt> | <dt>INV:</dt><dd>1 bit. Invisible. The codec <bcp14>SHOULD</bcp14> decode this f | |||
<dd>Reserved bits <bcp14>MUST</bcp14> be set to 0</dd> | rame but not display it.</dd> | |||
<dt>INV: 1 bit</dt> | <dt>LACING:</dt><dd><t>2 bits. Uses lacing mode.</t> | |||
<dd>Invisible, the codec <bcp14>SHOULD</bcp14> decode this frame but not display | ||||
it</dd> | ||||
<dt>LACING: 2 bits</dt> | ||||
<dd><t>using lacing mode</t> | ||||
<ul spacing="compact"> | <dl spacing="compact"> | |||
<li>00b : no lacing (<xref target="no-lacing"></xref>)</li> | <dt>00b:</dt><dd>no lacing (<xref target="no-lacing"></xref>)</dd> | |||
<li>01b : Xiph lacing (<xref target="xiph-lacing"></xref>)</li> | <dt>01b:</dt><dd>Xiph lacing (<xref target="xiph-lacing"></xref>)</dd> | |||
<li>11b : EBML lacing (<xref target="ebml-lacing"></xref>)</li> | <dt>11b:</dt><dd>EBML lacing (<xref target="ebml-lacing"></xref>)</dd> | |||
<li>10b : fixed-size lacing (<xref target="fixed-size-lacing"></xref>)</li> | <dt>10b:</dt><dd>fixed-size lacing (<xref target="fixed-size-lacing"></xref>)</d | |||
</ul></dd> | d> | |||
<dt>DIS: 1 bit</dt> | </dl></dd> | |||
<dd>Discardable, the frames of the Block can be discarded during playing if need | <dt>DIS:</dt><dd>1 bit. Discardable. The frames of the Block can be discarded du | |||
ed</dd> | ring playing if needed.</dd> | |||
</dl> | </dl> | |||
<t>The following data in the <tt>SimpleBlock</tt> correspond to the lacing data | <!-- [rfced] Please clarify "The following data" in these similar | |||
and frames usage as described in each respective lacing mode.</t> | sentences. Is the intended meaning "The remaining data", or something | |||
else? Would a pointer to Section 10.3 be helpful? | ||||
Original: | ||||
The following data in the Block correspond to the lacing data and | ||||
frames usage as described in each respective lacing mode. | ||||
... | ||||
The following data in the SimpleBlock correspond to the lacing data | ||||
and frames usage as described in each respective lacing mode. | ||||
Perhaps: | ||||
The remaining data in the Block corresponds to the lacing data and | ||||
frames usage as described in each respective lacing mode (see Section 10.3). | ||||
... | ||||
The remaining data in the SimpleBlock corresponds to the lacing data | ||||
and frames usage as described in each respective lacing mode (see Section 10. | ||||
3). | ||||
--> | ||||
<t>The following data in the <tt>SimpleBlock</tt> corresponds to the lacing data | ||||
and frames usage as described in each respective lacing mode.</t> | ||||
</section> | </section> | |||
<section anchor="block-lacing"><name>Block Lacing</name> | <section anchor="block-lacing"><name>Block Lacing</name> | |||
<t>Lacing is a mechanism to save space when storing data. It is typically used f or small blocks | <t>Lacing is a mechanism to save space when storing data. It is typically used f or small blocks | |||
of data (referred to as frames in Matroska). It packs multiple frames into a sin gle <tt>Block</tt> or <tt>SimpleBlock</tt>.</t> | of data (referred to as frames in Matroska). It packs multiple frames into a sin gle <tt>Block</tt> or <tt>SimpleBlock</tt>.</t> | |||
<t>Lacing <bcp14>MUST NOT</bcp14> be used to store a single frame in a <tt>Block </tt> or <tt>SimpleBlock</tt>.</t> | <t>Lacing <bcp14>MUST NOT</bcp14> be used to store a single frame in a <tt>Block </tt> or <tt>SimpleBlock</tt>.</t> | |||
<t>There are 3 types of lacing:</t> | <t>There are three types of lacing:</t> | |||
<ol spacing="compact"> | <ul> | |||
<li>Xiph, inspired by what is found in the Ogg container <xref target="RFC3533"> | <li>Xiph, which is inspired by what is found in the Ogg container <xref target=" | |||
</xref></li> | RFC3533"></xref></li> | |||
<li>EBML, which is the same with sizes coded differently</li> | <li>EBML, which is the same with sizes coded differently</li> | |||
<li>fixed-size, where the size is not coded</li> | <li>Fixed-size, where the size is not coded</li> | |||
</ol> | </ul> | |||
<t>When lacing is not used, i.e. to store a single frame, the lacing bits 5 and | <!-- [rfced] We have two questions about the sentences below. | |||
6 of the <tt>Block</tt> or <tt>SimpleBlock</tt> <bcp14>MUST</bcp14> be set to ze | ||||
ro.</t> | a) Please confirm that "bits 5 and 6" and "bits 5-6" are correct in the text | |||
<t>For example, a user wants to store 3 frames of the same track. The first fram | below. Or should this be "bits 6-7" per Figures 11-14? Or possibly just "The | |||
e is 800 octets long, | LACING bits"? | |||
the second is 500 octets long and the third is 1000 octets long. As these data a | ||||
re small, | b) The sentences below have "0b00", "0b01", "0b11", and "0b10", but Sections | |||
10.1 and 10.2 have "00b", "01b", "11b", and "10b" for the LACING bits. Please | ||||
review and let us know if any updates are needed. | ||||
Original: | ||||
When lacing is not used, i.e. to store a single frame, the lacing | ||||
bits 5 and 6 of the Block or SimpleBlock MUST be set to zero. | ||||
The bits 5-6 of the Block Header flags are set to 0b00. | ||||
The bits 5-6 of the Block Header flags are set to 0b01. | ||||
The bits 5-6 of the Block Header flags are set to 0b11. | ||||
The bits 5-6 of the Block Header flags are set to 0b10. | ||||
Perhaps: | ||||
When lacing is not used, i.e. to store a single frame, the lacing | ||||
bits 6 and 7 of the Block or SimpleBlock MUST be set to zero. | ||||
Bits 6-7 of the Block Header flags are set to 00b. | ||||
Bits 6-7 of the Block Header flags are set to 01b. | ||||
Bits 6-7 of the Block Header flags are set to 11b. | ||||
Bits 6-7 of the Block Header flags are set to 10b. | ||||
Or: | ||||
When lacing is not used, i.e. to store a single frame, the lacing | ||||
bits (bits 6 and 7) of the Block or SimpleBlock MUST be set to zero. | ||||
The LACING bits of the Block Header flags are set to 00b. | ||||
The LACING bits of the Block Header flags are set to 01b. | ||||
The LACING bits of the Block Header flags are set to 11b. | ||||
The LACING bits of the Block Header flags are set to 10b. | ||||
--> | ||||
<t>When lacing is not used, i.e., to store a single frame, lacing bits 5 and 6 o | ||||
f the <tt>Block</tt> or <tt>SimpleBlock</tt> <bcp14>MUST</bcp14> be set to 0.</t | ||||
> | ||||
<t>For example, a user wants to store three frames of the same track. The first | ||||
frame is 800 octets long, | ||||
the second is 500 octets long, and the third is 1000 octets long. | ||||
<!-- [rfced] We updated "these data" to "frames". Please let us know any | ||||
objections. | ||||
Original: | ||||
As these data are small, they can be stored in a lace to save space. | ||||
Current: | ||||
Because these frames are small, they can be stored in a lace to save space. | ||||
--> | ||||
Because these frames are small, | ||||
they can be stored in a lace to save space.</t> | they can be stored in a lace to save space.</t> | |||
<t>It is possible not to use lacing at all and just store a single frame without | <t>It is possible to not use lacing at all and just store a single frame without | |||
any extra data. | any extra data. | |||
When the FlagLacing -- <xref target="flaglacing-element"></xref> -- is set to &q | When the FlagLacing (<xref target="flaglacing-element"></xref>) is set to 0, all | |||
uot;0" all blocks of that track <bcp14>MUST NOT</bcp14> use lacing.</t> | blocks of that track <bcp14>MUST NOT</bcp14> use lacing.</t> | |||
<section anchor="no-lacing"><name>No lacing</name> | <section anchor="no-lacing"><name>No Lacing</name> | |||
<t>When no lacing is used, the number of frames in the lace is ommitted and only | <t>When no lacing is used, the number of frames in the lace is ommitted, and onl | |||
one frame can be stored in the Block. | y one frame can be stored in the Block. | |||
The bits 5-6 of the Block Header flags are set to <tt>0b00</tt>.</t> | Bits 5 and 6 of the Block Header flags are set to <tt>0b00</tt>.</t> | |||
<t>The Block for an 800 octets frame is as follows:</t> | <t>The Block for an 800-octet frame is as follows:</t> | |||
<table anchor="blockNoLacing"><name>No lacing</name> | <table anchor="blockNoLacing"><name>No Lacing</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">Block Octets</th> | <th align="left">Block Octet</th> | |||
<th align="left">Value</th> | <th align="left">Value</th> | |||
<th align="left">Description</th> | <th align="left">Description</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left">4-803</td> | <td align="left">4-803</td> | |||
<td align="left"><frame></td> | <td align="left"><frame></td> | |||
<td align="left">Single frame data</td> | <td align="left">Single frame data</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>When a Block contains a single frame, it <bcp14>MUST</bcp14> use this | </table> | |||
No lacing mode.</t> | ||||
<t>When a Block contains a single frame, it <bcp14>MUST</bcp14> use this "no lac | ||||
ing" mode.</t> | ||||
</section> | </section> | |||
<section anchor="xiph-lacing"><name>Xiph lacing</name> | <section anchor="xiph-lacing"><name>Xiph Lacing</name> | |||
<t>The Xiph lacing uses the same coding of size as found in the Ogg container <x ref target="RFC3533"></xref>. | <t>The Xiph lacing uses the same coding of size as found in the Ogg container <x ref target="RFC3533"></xref>. | |||
The bits 5-6 of the Block Header flags are set to <tt>0b01</tt>.</t> | Bits 5 and 6 of the Block Header flags are set to <tt>0b01</tt>.</t> | |||
<t>The Block data with laced frames is stored as follows:</t> | <t>The Block data with laced frames is stored as follows:</t> | |||
<ul spacing="compact"> | <ul> | |||
<li>Lacing Head on 1 Octet: Number of frames in the lace minus 1.</li> | <!-- [rfced] Will readers understand the following? Note that this text | |||
appears in three locations in the document. | ||||
Original: | ||||
* Lacing Head on 1 Octet: Number of frames in the lace minus 1. | ||||
--> | ||||
<li>Lacing Head on 1 octet: Number of frames in the lace minus 1.</li> | ||||
<li>Lacing size of each frame except the last one.</li> | <li>Lacing size of each frame except the last one.</li> | |||
<li>Binary data of each frame consecutively.</li> | <li>Binary data of each frame consecutively.</li> | |||
</ul> | </ul> | |||
<t>The lacing size is split into 255 values, stored as unsigned octets -- for ex ample, 500 is coded 255;245 or [0xFF 0xF5]. | <t>The lacing size is split into 255 values, stored as unsigned octets -- for ex ample, 500 is coded 255;245 or [0xFF 0xF5]. | |||
A frame with a size multiple of 255 is coded with a 0 at the end of the size -- for example, 765 is coded 255;255;255;0 or [0xFF 0xFF 0xFF 0x00].</t> | A frame with a size multiple of 255 is coded with a 0 at the end of the size -- for example, 765 is coded 255;255;255;0 or [0xFF 0xFF 0xFF 0x00].</t> | |||
<t>The size of the last frame is deduced from the size remaining in the Block af ter the other frames.</t> | <t>The size of the last frame is deduced from the size remaining in the Block af ter the other frames.</t> | |||
<t>Because large sizes result in large coding of the sizes, it is <bcp14>RECOMME NDED</bcp14> to use Xiph lacing only with small frames.</t> | <t>Because large sizes result in large coding of the sizes, it is <bcp14>RECOMME NDED</bcp14> to use Xiph lacing only with small frames.</t> | |||
<t>In our example, the 800, 500 and 1000 frames are stored with Xiph lacing in a | <t>In our example, the 800-, 500-, and 1000-octet frames are stored with Xiph la | |||
Block as follows:</t> | cing in a Block as follows:</t> | |||
<table anchor="blockXiphLacing"><name>Xiph lacing example</name> | <table anchor="blockXiphLacing"><name>Xiph Lacing Example</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">Block Octet</th> | <th align="left">Block Octets</th> | |||
<th align="left">Value</th> | <th align="left">Value</th> | |||
<th align="left">Description</th> | <th align="left">Description</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left">4</td> | <td align="left">4</td> | |||
<td align="left">0x02</td> | <td align="left">0x02</td> | |||
<td align="left">Number of frames minus 1</td> | <td align="left">Number of frames minus 1</td> | |||
skipping to change at line 5605 ¶ | skipping to change at line 6205 ¶ | |||
<td align="left"></td> | <td align="left"></td> | |||
<td align="left">Second frame data</td> | <td align="left">Second frame data</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left">1311-2310</td> | <td align="left">1311-2310</td> | |||
<td align="left"></td> | <td align="left"></td> | |||
<td align="left">Third frame data</td> | <td align="left">Third frame data</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>The Block is 2311 octets large and the last frame starts at 1311, so we can deduce the size of the last frame is 2311 - 1311 = 1000.</t> | </table><t>The Block is 2311 octets, and the last frame starts at 1311, so we ca n deduce that the size of the last frame is 2311 - 1311 = 1000.</t> | |||
</section> | </section> | |||
<section anchor="ebml-lacing"><name>EBML lacing</name> | <section anchor="ebml-lacing"><name>EBML Lacing</name> | |||
<t>The EBML lacing encodes the frame size with an EBML-like encoding <xref targe t="RFC8794"></xref>. | <t>The EBML lacing encodes the frame size with an EBML-like encoding <xref targe t="RFC8794"></xref>. | |||
The bits 5-6 of the Block Header flags are set to <tt>0b11</tt>.</t> | Bits 5 and 6 of the Block Header flags are set to <tt>0b11</tt>.</t> | |||
<t>The Block data with laced frames is stored as follows:</t> | <t>The Block data with laced frames is stored as follows:</t> | |||
<ul spacing="compact"> | <ul> | |||
<li>Lacing Head on 1 Octet: Number of frames in the lace minus 1.</li> | <li>Lacing Head on 1 Octet: Number of frames in the lace minus 1.</li> | |||
<li>Lacing size of each frame except the last one.</li> | <li>Lacing size of each frame except the last one.</li> | |||
<li>Binary data of each frame consecutively.</li> | <li>Binary data of each frame consecutively.</li> | |||
</ul> | </ul> | |||
<t>The first frame size is encoded as an EBML Variable-Size Integer value, also known as VINT in <xref target="RFC8794"></xref>. | <t>The first frame size is encoded as an EBML VINT value. | |||
The remaining frame sizes are encoded as signed values using the difference betw een the frame size and the previous frame size. | The remaining frame sizes are encoded as signed values using the difference betw een the frame size and the previous frame size. | |||
These signed values are encoded as VINT, with a mapping from signed to unsigned numbers. | These signed values are encoded as VINT, with a mapping from signed to unsigned numbers. | |||
Decoding the unsigned number stored in the VINT to a signed number is done by su btracting 2<sup>((7*n)-1)</sup>-1, where <tt>n</tt> is the octet size of the VIN T.</t> | Decoding the unsigned number stored in the VINT to a signed number is done by su btracting 2<sup>((7*n)-1)</sup>-1, where <tt>n</tt> is the octet size of the VIN T.</t> | |||
<table anchor="ebmlLacingBits"><name>EBML Lacing signed VINT bits usage</name> | <table anchor="ebmlLacingBits"><name>EBML Lacing Signed VINT Bits Usage</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">Bit Representation of signed VINT</th> | <th align="left">Bit Representation of Signed VINT</th> | |||
<th align="left">Possible Value Range</th> | <th align="left">Possible Value Range</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left">1xxx xxxx</td> | <td align="left">1xxx xxxx</td> | |||
<td align="left">2^7 values from -(2<sup>6</sup>-1) to 2<sup>6</sup></td> | <td align="left">2^7 values from -(2<sup>6</sup>-1) to 2<sup>6</sup></td> | |||
</tr> | </tr> | |||
skipping to change at line 5656 ¶ | skipping to change at line 6257 ¶ | |||
<tr> | <tr> | |||
<td align="left">0001 xxxx xxxx xxxx xxxx xxxx xxxx xxxx</td> | <td align="left">0001 xxxx xxxx xxxx xxxx xxxx xxxx xxxx</td> | |||
<td align="left">2^28 values from -(2<sup>27</sup>-1) to 2<sup>27</sup></td> | <td align="left">2^28 values from -(2<sup>27</sup>-1) to 2<sup>27</sup></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left">0000 1xxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx</td> | <td align="left">0000 1xxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx</td> | |||
<td align="left">2^35 values from -(2<sup>34</sup>-1) to 2<sup>34</sup></td> | <td align="left">2^35 values from -(2<sup>34</sup>-1) to 2<sup>34</sup></td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>In our example, the 800, 500 and 1000 frames are stored with EBML lac | </table><t>In our example, the 800-, 500- and 1000-octet frames are stored with | |||
ing in a Block as follows:</t> | EBML lacing in a Block as follows:</t> | |||
<table anchor="blockEbmlLacing"><name>EBML lacing example</name> | <table anchor="blockEbmlLacing"><name>EBML Lacing Example</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">Block Octets</th> | <th align="left">Block Octets</th> | |||
<th align="left">Value</th> | <th align="left">Value</th> | |||
<th align="left">Description</th> | <th align="left">Description</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
skipping to change at line 5703 ¶ | skipping to change at line 6304 ¶ | |||
<td align="left"><frame2></td> | <td align="left"><frame2></td> | |||
<td align="left">Second frame data</td> | <td align="left">Second frame data</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left">1308-2307</td> | <td align="left">1308-2307</td> | |||
<td align="left"><frame3></td> | <td align="left"><frame3></td> | |||
<td align="left">Third frame data</td> | <td align="left">Third frame data</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>The Block is 2308 octets large and the last frame starts at 1308, so we can deduce the size of the last frame is 2308 - 1308 = 1000.</t> | </table><t>The Block is 2308 octets, and the last frame starts at 1308, so we ca n deduce that the size of the last frame is 2308 - 1308 = 1000.</t> | |||
</section> | </section> | |||
<section anchor="fixed-size-lacing"><name>Fixed-size lacing</name> | <section anchor="fixed-size-lacing"><name>Fixed-size Lacing</name> | |||
<t>The Fixed-size lacing doesn't store the frame size, only the number of frames | <t>Fixed-size lacing doesn't store the frame size; rather, it only stores the nu | |||
in the lace. | mber of frames in the lace. | |||
Each frame <bcp14>MUST</bcp14> have the same size. The frame size of each frame is deduced from the total size of the Block. | Each frame <bcp14>MUST</bcp14> have the same size. The frame size of each frame is deduced from the total size of the Block. | |||
The bits 5-6 of the Block Header flags are set to <tt>0b10</tt>.</t> | Bits 5 and 6 of the Block Header flags are set to <tt>0b10</tt>.</t> | |||
<t>The Block data with laced frames is stored as follows:</t> | <t>The Block data with laced frames is stored as follows:</t> | |||
<ul spacing="compact"> | <ul> | |||
<li>Lacing Head on 1 Octet: Number of frames in the lace minus 1.</li> | <li>Lacing Head on 1 Octet: Number of frames in the lace minus 1.</li> | |||
<li>Binary data of each frame consecutively.</li> | <li>Binary data of each frame consecutively.</li> | |||
</ul> | </ul> | |||
<t>For example, for 3 frames of 800 octets each:</t> | <t>For example, for three frames that are 800 octets each:</t> | |||
<table anchor="blockFixedSizeLacing"><name>Fixed-size lacing example</name> | <table anchor="blockFixedSizeLacing"><name>Fixed-Size Lacing Example</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">Block Octets</th> | <th align="left">Block Octets</th> | |||
<th align="left">Value</th> | <th align="left">Value</th> | |||
<th align="left">Description</th> | <th align="left">Description</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
skipping to change at line 5751 ¶ | skipping to change at line 6352 ¶ | |||
<td align="left"><frame2></td> | <td align="left"><frame2></td> | |||
<td align="left">Second frame data</td> | <td align="left">Second frame data</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left">1605-2404</td> | <td align="left">1605-2404</td> | |||
<td align="left"><frame3></td> | <td align="left"><frame3></td> | |||
<td align="left">Third frame data</td> | <td align="left">Third frame data</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>This gives a Block of 2405 octets. When reading the Block we find tha t there are 3 frames (Octet 4). | </table><t>This gives a Block of 2405 octets. When reading the Block, we find th at there are three frames (Octet 4). | |||
The data start at Octet 5, so the size of each frame is (2405 - 5) / 3 = 800.</t > | The data start at Octet 5, so the size of each frame is (2405 - 5) / 3 = 800.</t > | |||
</section> | </section> | |||
<section anchor="laced-frames-timestamp"><name>Laced Frames Timestamp</name> | <section anchor="laced-frames-timestamp"><name>Laced Frames Timestamp</name> | |||
<t>A Block only contains a single timestamp value. But when lacing is used, it c ontains more than one frame. | <t>A Block only contains a single timestamp value. But when lacing is used, it c ontains more than one frame. | |||
Each frame originally has its own timestamp, or Presentation Timestamp (PTS). Th at timestamp applies to | Each frame originally has its own timestamp, or Presentation Timestamp (PTS). Th at timestamp applies to | |||
the first frame in the lace.</t> | the first frame in the lace.</t> | |||
<t>In the lace, each frame after the first one has an underdetermined timestamp. | <t>In the lace, each frame after the first one has an underdetermined timestamp. | |||
But each of these frames <bcp14>MUST</bcp14> be contiguous -- i.e. the decoded d ata <bcp14>MUST NOT</bcp14> contain any gap | However, each of these frames <bcp14>MUST</bcp14> be contiguous -- i.e., the dec oded data <bcp14>MUST NOT</bcp14> contain any gap | |||
between them. If there is a gap in the stream, the frames around the gap <bcp14> MUST NOT</bcp14> be in the same Block.</t> | between them. If there is a gap in the stream, the frames around the gap <bcp14> MUST NOT</bcp14> be in the same Block.</t> | |||
<t>Lacing is only useful for small contiguous data to save space. This is usuall y the case for audio tracks | <t>Lacing is only useful for small contiguous data to save space. This is usuall y the case for audio tracks | |||
and not the case for video -- which use a lot of data -- or subtitle tracks -- w | and not the case for video (which use a lot of data) or subtitle tracks (which h | |||
hich have long gaps. | ave long gaps). | |||
For audio, there is usually a fixed output sampling frequency for the whole trac | For audio, there is usually a fixed output sampling frequency for the whole trac | |||
k. | k, | |||
So the decoder should be able to recover the timestamp of each sample, knowing e | so the decoder should be able to recover the timestamp of each sample, knowing e | |||
ach | ach | |||
output sample is contiguous with a fixed frequency. | output sample is contiguous with a fixed frequency. | |||
For subtitles this is usually not the case so lacing <bcp14>SHOULD NOT</bcp14> b e used.</t> | For subtitles, this is usually not the case, so lacing <bcp14>SHOULD NOT</bcp14> be used.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="random-access-points"><name>Random Access Points</name> | <section anchor="random-access-points"><name>Random Access Points</name> | |||
<t>Random Access Points (RAP) are positions where the parser can seek to and sta | ||||
rt playback without decoding | <t>Random Access Points (RAPs) are positions where the parser can seek to and | |||
of what was before. In Matroska <tt>BlockGroups</tt> and <tt>SimpleBlocks</tt> c | start playback without decoding what was before. In Matroska, | |||
an be RAPs. | <tt>BlockGroups</tt> and <tt>SimpleBlocks</tt> can be RAPs. | |||
To seek to these elements it is still necessary to seek to the <tt>Cluster</tt> | ||||
containing them, | <!-- [rfced] Is RAP read as "rap" or "R-A-P"? We ask for guidance in order to | |||
read the Cluster Timestamp | choose the appropriate indefinite article for it to follow (i.e., a or | |||
an). We see both "an RAP" and "a RAP" in the document.--> | ||||
To seek to these elements, it is still necessary to seek to the <tt>Cluster</tt> | ||||
containing them, | ||||
read the Cluster Timestamp, | ||||
and start playback from the <tt>BlockGroup</tt> or <tt>SimpleBlock</tt> that is a RAP.</t> | and start playback from the <tt>BlockGroup</tt> or <tt>SimpleBlock</tt> that is a RAP.</t> | |||
<t>Because a Matroska File is usually composed of multiple tracks playing at the same time | <t>Because a Matroska File is usually composed of multiple tracks playing at the same time | |||
taken in account. Usually all audio and subtitle <tt>BlockGroup</tt> or <tt>Simp | -- video, audio, and subtitles -- to seek properly to a RAP, each selected track | |||
leBlock</tt> are RAP. | must be | |||
taken in account. Usually, all audio and subtitle <tt>BlockGroups</tt> or <tt>Si | ||||
mpleBlocks</tt> are RAPs. | ||||
They are independent of each other and can be played randomly.</t> | They are independent of each other and can be played randomly.</t> | |||
<t>Video tracks on the other hand often use references to previous and future fr | <t>On the other hand, video tracks often use references to previous and future f | |||
ames for better | rames for better | |||
coding efficiency. Frames with such reference <bcp14>MUST</bcp14> either contain | coding efficiency. Frames with such references <bcp14>MUST</bcp14> either contai | |||
one or more | n one or more | |||
<tt>ReferenceBlock</tt> Elements in their <tt>BlockGroup</tt> or <bcp14>MUST</bc p14> be marked | <tt>ReferenceBlock</tt> Elements in their <tt>BlockGroup</tt> or <bcp14>MUST</bc p14> be marked | |||
as non-keyframe in a <tt>SimpleBlock</tt>; see <xref target="simpleblock-structu re"></xref>.</t> | as non-keyframe in a <tt>SimpleBlock</tt>; see <xref target="simpleblock-structu re"></xref>.</t> | |||
<ul spacing="compact"> | <!-- [rfced] In Section 10.4, would you like to change the text introducing | |||
<li>BlockGroup with a frame that references another frame, with the EBML tree sh | the XML examples to be figure titles (would appear under the XML and also | |||
own as XML:</li> | include a figure number)? Or do you prefer the current? | |||
</ul> | ||||
Current: | ||||
BlockGroup with a frame that references another frame, with the | ||||
EBML tree shown as XML: | ||||
Perhaps (below XML example): | ||||
Figure 15: Blockgroup with a Frame That References Another Frame, | ||||
with the EBML Tree Shown as XML | ||||
--> | ||||
<t>BlockGroup with a frame that references another frame, with the EBML tree sho | ||||
wn as XML:</t> | ||||
<sourcecode type="xml"><Cluster> | <sourcecode type="xml"><Cluster> | |||
<Timestamp>123456</Timestamp> | <Timestamp>123456</Timestamp> | |||
<BlockGroup> | <BlockGroup> | |||
<!-- References a Block 40 Track Ticks before this one --> | <!-- References a Block 40 Track Ticks before this one --> | |||
<ReferenceBlock>-40</ReferenceBlock> | <ReferenceBlock>-40</ReferenceBlock> | |||
<Block/> | <Block/> | |||
</BlockGroup> | </BlockGroup> | |||
... | ... | |||
</Cluster> | </Cluster> | |||
</sourcecode> | </sourcecode> | |||
<ul spacing="compact"> | <t>SimpleBlock with a frame that references another frame, with the EBML tree sh | |||
<li>SimpleBlock with a frame that references another frame, with the EBML tree s | own as XML:</t> | |||
hown as XML:</li> | ||||
</ul> | ||||
<sourcecode type="xml"><Cluster> | <sourcecode type="xml"><Cluster> | |||
<Timestamp>123456</Timestamp> | <Timestamp>123456</Timestamp> | |||
<SimpleBlock/> (octet 3 bit 0 not set) | <SimpleBlock/> (octet 3 bit 0 not set) | |||
... | ... | |||
</Cluster> | </Cluster> | |||
</sourcecode> | </sourcecode> | |||
<t>Frames that are RAP -- i.e. they don't depend on other frames -- <bcp14>MUST< /bcp14> set the keyframe | <t>Frames that are RAPs (i.e., frames that don't depend on other frames) <bcp14> MUST</bcp14> set the keyframe | |||
flag if they are in a <tt>SimpleBlock</tt> or their parent <tt>BlockGroup</tt> < bcp14>MUST NOT</bcp14> contain | flag if they are in a <tt>SimpleBlock</tt> or their parent <tt>BlockGroup</tt> < bcp14>MUST NOT</bcp14> contain | |||
a <tt>ReferenceBlock</tt>.</t> | a <tt>ReferenceBlock</tt>.</t> | |||
<ul spacing="compact"> | <t>BlockGroup with a frame that references no other frame, with the EBML tree sh | |||
<li>BlockGroup with a frame that references no other frame, with the EBML tree s | own as XML:</t> | |||
hown as XML:</li> | ||||
</ul> | ||||
<sourcecode type="xml"><Cluster> | <sourcecode type="xml"><Cluster> | |||
<Timestamp>123456</Timestamp> | <Timestamp>123456</Timestamp> | |||
<BlockGroup> | <BlockGroup> | |||
<!-- No ReferenceBlock allowed in this BlockGroup --> | <!-- No ReferenceBlock allowed in this BlockGroup --> | |||
<Block/> | <Block/> | |||
</BlockGroup> | </BlockGroup> | |||
... | ... | |||
</Cluster> | </Cluster> | |||
</sourcecode> | </sourcecode> | |||
<ul spacing="compact"> | <t>SimpleBlock with a frame that references no other frame, with the EBML tree s | |||
<li>SimpleBlock with a frame that references no other frame, with the EBML tree | hown as XML:</t> | |||
shown as XML:</li> | ||||
</ul> | ||||
<sourcecode type="xml"><Cluster> | <sourcecode type="xml"><Cluster> | |||
<Timestamp>123456</Timestamp> | <Timestamp>123456</Timestamp> | |||
<SimpleBlock/> (octet 3 bit 0 set) | <SimpleBlock/> (octet 3 bit 0 set) | |||
... | ... | |||
</Cluster> | </Cluster> | |||
</sourcecode> | </sourcecode> | |||
<t>There may be cases where the use of <tt>BlockGroup</tt> is necessary, as the frame may need a | <t>There may be cases where the use of <tt>BlockGroup</tt> is necessary, as the frame may need a | |||
<tt>BlockDuration</tt>, <tt>BlockAdditions</tt>, <tt>CodecState</tt> or a <tt>Di | <tt>BlockDuration</tt>, <tt>BlockAdditions</tt>, <tt>CodecState</tt>, or <tt>Dis | |||
scardPadding</tt> element. | cardPadding</tt> element. | |||
For thoses cases a <tt>SimpleBlock</tt> <bcp14>MUST NOT</bcp14> be used, | For thoses cases, a <tt>SimpleBlock</tt> <bcp14>MUST NOT</bcp14> be used; | |||
the reference information <bcp14>SHOULD</bcp14> be recovered for non-RAP frames. </t> | the reference information <bcp14>SHOULD</bcp14> be recovered for non-RAP frames. </t> | |||
<ul spacing="compact"> | <t>SimpleBlock with a frame that references another frame, with the EBML tree sh | |||
<li>SimpleBlock with a frame that references another frame, with the EBML tree s | own as XML:</t> | |||
hown as XML:</li> | ||||
</ul> | ||||
<sourcecode type="xml"><Cluster> | <sourcecode type="xml"><Cluster> | |||
<Timestamp>123456</Timestamp> | <Timestamp>123456</Timestamp> | |||
<SimpleBlock/> (octet 3 bit 0 not set) | <SimpleBlock/> (octet 3 bit 0 not set) | |||
... | ... | |||
</Cluster> | </Cluster> | |||
</sourcecode> | </sourcecode> | |||
<ul spacing="compact"> | <!-- [rfced] We updated the end tag as follows in two blocks of XML in | |||
<li>Same frame that references another frame put inside a BlockGroup to add <tt> | Section 10.4. Please review. | |||
BlockDuration</tt>, with the EBML tree shown as XML:</li> | ||||
</ul> | Original: | |||
<BlockDuration>20<BlockDuration> | ||||
Perhaps: | ||||
<BlockDuration>20</BlockDuration> | ||||
--> | ||||
<t>Same frame that references another frame put inside a BlockGroup to add <tt>B | ||||
lockDuration</tt>, with the EBML tree shown as XML:</t> | ||||
<sourcecode type="xml"><Cluster> | <sourcecode type="xml"><Cluster> | |||
<Timestamp>123456</Timestamp> | <Timestamp>123456</Timestamp> | |||
<BlockGroup> | <BlockGroup> | |||
<!-- ReferenceBlock value recovered based on the codec --> | <!-- ReferenceBlock value recovered based on the codec --> | |||
<ReferenceBlock>-40</ReferenceBlock> | <ReferenceBlock>-40</ReferenceBlock> | |||
<BlockDuration>20<BlockDuration> | <BlockDuration>20</BlockDuration> | |||
<Block/> | <Block/> | |||
</BlockGroup> | </BlockGroup> | |||
... | ... | |||
</Cluster> | </Cluster> | |||
</sourcecode> | </sourcecode> | |||
<t>When a frame in a <tt>BlockGroup</tt> is not a RAP, the <tt>BlockGroup</tt> < bcp14>MUST</bcp14> contain at least a <tt>ReferenceBlock</tt>. | <t>When a frame in a <tt>BlockGroup</tt> is not a RAP, the <tt>BlockGroup</tt> < bcp14>MUST</bcp14> contain at least a <tt>ReferenceBlock</tt>. | |||
The <tt>ReferenceBlock</tt>s <bcp14>MUST</bcp14> be used in one of the following ways:</t> | The <tt>ReferenceBlock</tt>s <bcp14>MUST</bcp14> be used in one of the following ways:</t> | |||
<ul spacing="compact"> | <ul> | |||
<li>each reference frame listed as a <tt>ReferenceBlock</tt>,</li> | <li>each reference frame listed as a <tt>ReferenceBlock</tt>,</li> | |||
<li>some referenced frame listed as a <tt>ReferenceBlock</tt>, even if the times | <li>some referenced frames listed as a <tt>ReferenceBlock</tt>, even if the time | |||
tamp value is accurate,</li> | stamp value is accurate, or</li> | |||
<li>or one <tt>ReferenceBlock</tt> with the timestamp value "0" corres | <li>one <tt>ReferenceBlock</tt> with the timestamp value "0" corresponding to a | |||
ponding to a self or unknown reference.</li> | self or unknown reference.</li> | |||
</ul> | </ul> | |||
<t>The lack of <tt>ReferenceBlock</tt> would mean such a frame is a RAP and seek | <t>The lack of <tt>ReferenceBlock</tt> would mean such a frame is a RAP, and see | |||
ing on that | king on that | |||
frame that actually depends on other frames may create bogus output or even cras | frame that actually depends on other frames may create a bogus output or even cr | |||
h.</t> | ash.</t> | |||
<ul spacing="compact"> | <t>Same frame that references another frame put inside a BlockGroup, but the ref | |||
<li>Same frame that references another frame put inside a BlockGroup but the ref | erence could not be recovered, with the EBML tree shown as XML:</t> | |||
erence could not be recovered, with the EBML tree shown as XML:</li> | ||||
</ul> | ||||
<sourcecode type="xml"><Cluster> | <sourcecode type="xml"><Cluster> | |||
<Timestamp>123456</Timestamp> | <Timestamp>123456</Timestamp> | |||
<BlockGroup> | <BlockGroup> | |||
<!-- ReferenceBlock value not recovered from the codec --> | <!-- ReferenceBlock value not recovered from the codec --> | |||
<ReferenceBlock>0</ReferenceBlock> | <ReferenceBlock>0</ReferenceBlock> | |||
<BlockDuration>20<BlockDuration> | <BlockDuration>20</BlockDuration> | |||
<Block/> | <Block/> | |||
</BlockGroup> | </BlockGroup> | |||
... | ... | |||
</Cluster> | </Cluster> | |||
</sourcecode> | </sourcecode> | |||
<ul spacing="compact"> | <t>BlockGroup with a frame that references two other frames, with the EBML tree | |||
<li>BlockGroup with a frame that references two other frames, with the EBML tree | shown as XML:</t> | |||
shown as XML:</li> | ||||
</ul> | ||||
<sourcecode type="xml"><Cluster> | <sourcecode type="xml"><Cluster> | |||
<Timestamp>123456</Timestamp> | <Timestamp>123456</Timestamp> | |||
<BlockGroup> | <BlockGroup> | |||
<!-- References a Block 80 Track Ticks before this one --> | <!-- References a Block 80 Track Ticks before this one --> | |||
<ReferenceBlock>-80</ReferenceBlock> | <ReferenceBlock>-80</ReferenceBlock> | |||
<!-- References a Block 40 Track Ticks after this one --> | <!-- References a Block 40 Track Ticks after this one --> | |||
<ReferenceBlock>40</ReferenceBlock> | <ReferenceBlock>40</ReferenceBlock> | |||
<Block/> | <Block/> | |||
</BlockGroup> | </BlockGroup> | |||
... | ... | |||
</Cluster> | </Cluster> | |||
</sourcecode> | </sourcecode> | |||
<t>Intra-only video frames, such as the ones found in AV1 or VP9, can be decoded without any other | <t>Intra-only video frames, such as the ones found in AV1 or VP9, can be decoded without any other | |||
frame, but they don't reset the codec state. So seeking to these frames is not p ossible | frame, but they don't reset the codec state. Thus, seeking to these frames is no t possible, | |||
as the next frames may need frames that are not known from this seeking point. | as the next frames may need frames that are not known from this seeking point. | |||
Such intra-only frames <bcp14>MUST NOT</bcp14> be considered as keyframes so the keyframe flag | Such intra-only frames <bcp14>MUST NOT</bcp14> be considered as keyframes, so th e keyframe flag | |||
<bcp14>MUST NOT</bcp14> be set in the <tt>SimpleBlock</tt> or a <tt>ReferenceBlo ck</tt> <bcp14>MUST</bcp14> be used | <bcp14>MUST NOT</bcp14> be set in the <tt>SimpleBlock</tt> or a <tt>ReferenceBlo ck</tt> <bcp14>MUST</bcp14> be used | |||
to signify the frame is not a RAP. The timestamp value of the <tt>ReferenceBlock </tt> <bcp14>MUST</bcp14> | to signify the frame is not a RAP. The timestamp value of the <tt>ReferenceBlock </tt> <bcp14>MUST</bcp14> | |||
be "0", meaning it's referencing itself.</t> | be "0", meaning it's referencing itself.</t> | |||
<ul spacing="compact"> | <t>Intra-only frame not an RAP, with the EBML tree shown as XML:</t> | |||
<li>Intra-only frame not an RAP, with the EBML tree shown as XML:</li> | ||||
</ul> | ||||
<sourcecode type="xml"><Cluster> | <sourcecode type="xml"><Cluster> | |||
<Timestamp>123456</Timestamp> | <Timestamp>123456</Timestamp> | |||
<BlockGroup> | <BlockGroup> | |||
<!-- References itself to mark it should not be used as RAP --> | <!-- References itself to mark it should not be used as RAP --> | |||
<ReferenceBlock>0</ReferenceBlock> | <ReferenceBlock>0</ReferenceBlock> | |||
<Block/> | <Block/> | |||
</BlockGroup> | </BlockGroup> | |||
... | ... | |||
</Cluster> | </Cluster> | |||
</sourcecode> | </sourcecode> | |||
<t>Because a video <tt>SimpleBlock</tt> has less references information than a v ideo <tt>BlockGroup</tt>, | <t>Because a video <tt>SimpleBlock</tt> has less information on references than a video <tt>BlockGroup</tt>, | |||
it is possible to remux a video track using <tt>BlockGroup</tt> into a <tt>Simpl eBlock</tt>, | it is possible to remux a video track using <tt>BlockGroup</tt> into a <tt>Simpl eBlock</tt>, | |||
as long as it doesn't use any other <tt>BlockGroup</tt> features than <tt>Refere nceBlock</tt>.</t> | as long as it doesn't use any other <tt>BlockGroup</tt> features than <tt>Refere nceBlock</tt>.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="timestamps"><name>Timestamps</name> | <section anchor="timestamps"><name>Timestamps</name> | |||
<t>Historically timestamps in Matroska were mistakenly called timecodes. The <tt >Timestamp Element</tt> | <t>Historically, timestamps in Matroska were mistakenly called timecodes. The <t t>Timestamp Element</tt> | |||
was called Timecode, the <tt>TimestampScale Element</tt> was called TimecodeScal e, the | was called Timecode, the <tt>TimestampScale Element</tt> was called TimecodeScal e, the | |||
<tt>TrackTimestampScale Element</tt> was called TrackTimecodeScale and the | <tt>TrackTimestampScale Element</tt> was called TrackTimecodeScale, and the | |||
<tt>ReferenceTimestamp Element</tt> was called ReferenceTimeCode.</t> | <tt>ReferenceTimestamp Element</tt> was called ReferenceTimeCode.</t> | |||
<section anchor="timestamp-ticks"><name>Timestamp Ticks</name> | <section anchor="timestamp-ticks"><name>Timestamp Ticks</name> | |||
<t>All timestamp values in Matroska are expressed in multiples of a tick. | <t>All timestamp values in Matroska are expressed in multiples of a tick. | |||
They are usually stored as integers. | They are usually stored as integers. | |||
There are three types of ticks possible:</t> | ||||
There are three types of ticks possible: Matroska Ticks, Segment Ticks, and Trac | ||||
k Ticks.</t> | ||||
<section anchor="matroska-ticks"><name>Matroska Ticks</name> | <section anchor="matroska-ticks"><name>Matroska Ticks</name> | |||
<!-- [rfced] Will readers know what "For such elements" refers to in this | ||||
first sentence of Section 11.1.1?? | ||||
Original: | ||||
For such elements, the timestamp value is stored directly in | ||||
nanoseconds. | ||||
--> | ||||
<t>For such elements, the timestamp value is stored directly in nanoseconds.</t> | <t>For such elements, the timestamp value is stored directly in nanoseconds.</t> | |||
<t>The elements storing values in Matroska Ticks/nanoseconds are:</t> | <t>The elements storing values in Matroska Ticks/nanoseconds are:</t> | |||
<ul spacing="compact"> | <ul> | |||
<li><tt>TrackEntry\DefaultDuration</tt>; defined in <xref target="defaultduratio n-element"></xref></li> | <li><tt>TrackEntry\DefaultDuration</tt>; defined in <xref target="defaultduratio n-element"></xref></li> | |||
<li><tt>TrackEntry\DefaultDecodedFieldDuration</tt>; defined in <xref target="de faultdecodedfieldduration-element"></xref></li> | <li><tt>TrackEntry\DefaultDecodedFieldDuration</tt>; defined in <xref target="de faultdecodedfieldduration-element"></xref></li> | |||
<li><tt>TrackEntry\SeekPreRoll</tt>; defined in <xref target="seekpreroll-elemen t"></xref></li> | <li><tt>TrackEntry\SeekPreRoll</tt>; defined in <xref target="seekpreroll-elemen t"></xref></li> | |||
<li><tt>TrackEntry\CodecDelay</tt>; defined in <xref target="codecdelay-element" ></xref></li> | <li><tt>TrackEntry\CodecDelay</tt>; defined in <xref target="codecdelay-element" ></xref></li> | |||
<li><tt>BlockGroup\DiscardPadding</tt>; defined in <xref target="discardpadding- element"></xref></li> | <li><tt>BlockGroup\DiscardPadding</tt>; defined in <xref target="discardpadding- element"></xref></li> | |||
<li><tt>ChapterAtom\ChapterTimeStart</tt>; defined in <xref target="chaptertimes tart-element"></xref></li> | <li><tt>ChapterAtom\ChapterTimeStart</tt>; defined in <xref target="chaptertimes tart-element"></xref></li> | |||
<li><tt>ChapterAtom\ChapterTimeEnd</tt>; defined in <xref target="chaptertimeend -element"></xref></li> | <li><tt>ChapterAtom\ChapterTimeEnd</tt>; defined in <xref target="chaptertimeend -element"></xref></li> | |||
<li><tt>CuePoint\CueTime</tt>; defined in <xref target="cuetime-element"></xref> </li> | <li><tt>CuePoint\CueTime</tt>; defined in <xref target="cuetime-element"></xref> </li> | |||
<li><tt>CueReference\CueRefTime</tt>; defined in <xref target="cuetime-element"> </xref></li> | <li><tt>CueReference\CueRefTime</tt>; defined in <xref target="cuetime-element"> </xref></li> | |||
</ul> | </ul> | |||
</section> | </section> | |||
<section anchor="segment-ticks"><name>Segment Ticks</name> | <section anchor="segment-ticks"><name>Segment Ticks</name> | |||
<t>Elements in Segment Ticks involve the use of the <tt>TimestampScale Element</ tt> of the Segment to get the timestamp | <t>Elements in Segment Ticks involve the use of the <tt>TimestampScale Element</ tt> of the Segment to get the timestamp | |||
in nanoseconds of the element, with the following formula:</t> | in nanoseconds of the element, with the following formula:</t> | |||
<artwork>timestamp in nanosecond = element value * TimestampScale | <artwork>timestamp in nanosecond = element value * TimestampScale | |||
</artwork> | </artwork> | |||
<t>This allows storing smaller integer values in the elements.</t> | <t>This allows for storage of smaller integer values in the elements.</t> | |||
<t>When using the default value of <tt>TimestampScale</tt> of "1,000,000&qu | <t>When using the default value of "1,000,000" for <tt>TimestampScale</tt>, one | |||
ot;, one Segment Tick represents one millisecond.</t> | Segment Tick represents one millisecond.</t> | |||
<t>The elements storing values in Segment Ticks are:</t> | <t>The elements storing values in Segment Ticks are:</t> | |||
<ul spacing="compact"> | <ul> | |||
<li><tt>Cluster\Timestamp</tt>; defined in <xref target="timestamp-element"></xr ef></li> | <li><tt>Cluster\Timestamp</tt>; defined in <xref target="timestamp-element"></xr ef></li> | |||
<li><tt>Info\Duration</tt> is stored as a floating-point but the same formula ap plies; defined in <xref target="duration-element"></xref></li> | <li><tt>Info\Duration</tt> is stored as a floating-point, but the same formula a pplies; defined in <xref target="duration-element"></xref></li> | |||
<li><tt>CuePoint\CueTrackPositions\CueDuration</tt>; defined in <xref target="cu eduration-element"></xref></li> | <li><tt>CuePoint\CueTrackPositions\CueDuration</tt>; defined in <xref target="cu eduration-element"></xref></li> | |||
</ul> | </ul> | |||
</section> | </section> | |||
<section anchor="track-ticks"><name>Track Ticks</name> | <section anchor="track-ticks"><name>Track Ticks</name> | |||
<t>Elements in Track Ticks involve the use of the <tt>TimestampScale Element</tt > of the Segment and the <tt>TrackTimestampScale Element</tt> of the Track | <t>Elements in Track Ticks involve the use of the <tt>TimestampScale Element</tt > of the Segment and the <tt>TrackTimestampScale Element</tt> of the Track | |||
to get the timestamp in nanoseconds of the element, with the following formula:< /t> | to get the timestamp in nanoseconds of the element, with the following formula:< /t> | |||
<artwork>timestamp in nanoseconds = | <artwork>timestamp in nanoseconds = | |||
element value * TrackTimestampScale * TimestampScale | element value * TrackTimestampScale * TimestampScale | |||
</artwork> | </artwork> | |||
<t>This allows storing smaller integer values in the elements. | <t>This allows for storage of smaller integer values in the elements. | |||
The resulting floating-point values of the timestamps are still expressed in nan oseconds.</t> | The resulting floating-point values of the timestamps are still expressed in nan oseconds.</t> | |||
<t>When using the default values for <tt>TimestampScale</tt> and <tt>TrackTimest ampScale</tt> of "1,000,000" and of "1.0" respectively, one Track Tick represents one millisecond.</t> | <t>When using the default values of "1,000,000" for <tt>TimestampScale</tt> and "1.0" for <tt>TrackTimestampScale</tt>, one Track Tick represents one millisecon d.</t> | |||
<t>The elements storing values in Track Ticks are:</t> | <t>The elements storing values in Track Ticks are:</t> | |||
<ul spacing="compact"> | <ul> | |||
<li><tt>Cluster\BlockGroup\Block</tt> and <tt>Cluster\SimpleBlock</tt> timestamp s; detailed in <xref target="block-timestamps"></xref></li> | <li><tt>Cluster\BlockGroup\Block</tt> and <tt>Cluster\SimpleBlock</tt> timestamp s; detailed in <xref target="block-timestamps"></xref></li> | |||
<li><tt>Cluster\BlockGroup\BlockDuration</tt>; defined in <xref target="blockdur ation-element"></xref></li> | <li><tt>Cluster\BlockGroup\BlockDuration</tt>; defined in <xref target="blockdur ation-element"></xref></li> | |||
<li><tt>Cluster\BlockGroup\ReferenceBlock</tt>; defined in <xref target="referen ceblock-element"></xref></li> | <li><tt>Cluster\BlockGroup\ReferenceBlock</tt>; defined in <xref target="referen ceblock-element"></xref></li> | |||
</ul> | </ul> | |||
<t>When the <tt>TrackTimestampScale</tt> is interpreted as "1.0", Trac k Ticks are equivalent to Segment Ticks | <t>When the <tt>TrackTimestampScale</tt> is interpreted as "1.0", Track Ticks ar e equivalent to Segment Ticks | |||
and give an integer value in nanoseconds. This is the most common case as <tt>Tr ackTimestampScale</tt> is usually omitted.</t> | and give an integer value in nanoseconds. This is the most common case as <tt>Tr ackTimestampScale</tt> is usually omitted.</t> | |||
<t>A value of <tt>TrackTimestampScale</tt> other than "1.0" <bcp14>MAY </bcp14> be used | <t>A value of <tt>TrackTimestampScale</tt> other than "1.0" <bcp14>MAY</bcp14> b e used | |||
to scale the timestamps more in tune with each Track sampling frequency. | to scale the timestamps more in tune with each Track sampling frequency. | |||
For historical reasons, a lot of Matroska readers don't take the <tt>TrackTimest | For historical reasons, a lot of Matroska Readers don't take the <tt>TrackTimest | |||
ampScale</tt> value in account. | ampScale</tt> value into account. Thus, using a value other than "1.0" might not | |||
So using a value other than "1.0" might not work in many places.</t> | work in many places.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="block-timestamps"><name>Block Timestamps</name> | <section anchor="block-timestamps"><name>Block Timestamps</name> | |||
<t>A <tt>Block Element</tt> and <tt>SimpleBlock Element</tt> timestamp is the ti me when the decoded data of the first | <t>A <tt>Block Element</tt> and <tt>SimpleBlock Element</tt> timestamp is the ti me when the decoded data of the first | |||
frame in the Block/SimpleBlock <bcp14>MUST</bcp14> be presented, if the track of that Block/SimpleBlock is selected for playback. | frame in the Block/SimpleBlock <bcp14>MUST</bcp14> be presented if the track of that Block/SimpleBlock is selected for playback. | |||
This is also known as the Presentation Timestamp (PTS).</t> | This is also known as the Presentation Timestamp (PTS).</t> | |||
<t>The <tt>Block Element</tt> and <tt>SimpleBlock Element</tt> store their times tamps as signed integers, relative | <t>The <tt>Block Element</tt> and <tt>SimpleBlock Element</tt> store their times tamps as signed integers, relative | |||
to the <tt>Cluster\Timestamp</tt> value of the <tt>Cluster</tt> they are stored in. | to the <tt>Cluster\Timestamp</tt> value of the <tt>Cluster</tt> they are stored in. | |||
To get the timestamp of a <tt>Block</tt> or <tt>SimpleBlock</tt> in nanoseconds | To get the timestamp of a <tt>Block</tt> or <tt>SimpleBlock</tt> in nanoseconds, | |||
you have to use the following formula:</t> | the following formula is used:</t> | |||
<artwork>( Cluster\Timestamp + ( block timestamp * TrackTimestampScale ) ) * | <artwork>( Cluster\Timestamp + ( block timestamp * TrackTimestampScale ) ) * | |||
TimestampScale | TimestampScale | |||
</artwork> | </artwork> | |||
<t>The <tt>Block Element</tt> and <tt>SimpleBlock Element</tt> store their times | <t>The <tt>Block Element</tt> and <tt>SimpleBlock Element</tt> store their times | |||
tamps as 16bit signed integers, | tamps as 16-bit signed integers, | |||
allowing a range from "-32768" to "+32767" Track Ticks. | allowing a range from "-32768" to "+32767" Track Ticks. | |||
Although these values can be negative, when added to the <tt>Cluster\Timestamp</ tt>, the resulting frame timestamp <bcp14>SHOULD NOT</bcp14> be negative.</t> | Although these values can be negative, when added to the <tt>Cluster\Timestamp</ tt>, the resulting frame timestamp <bcp14>SHOULD NOT</bcp14> be negative.</t> | |||
<t>When a <tt>CodecDelay Element</tt> is set, its value <bcp14>MUST</bcp14> be s ubstracted from each Block timestamp of that track. | <t>When a <tt>CodecDelay Element</tt> is set, its value <bcp14>MUST</bcp14> be s ubstracted from each Block timestamp of that track. | |||
To get the timestamp in nanoseconds of the first frame in a <tt>Block</tt> or <t t>SimpleBlock</tt>, the formula becomes:</t> | To get the timestamp in nanoseconds of the first frame in a <tt>Block</tt> or <t t>SimpleBlock</tt>, the formula becomes:</t> | |||
<artwork>( ( Cluster\Timestamp + ( block timestamp * TrackTimestampScale ) ) * | <artwork>( ( Cluster\Timestamp + ( block timestamp * TrackTimestampScale ) ) * | |||
TimestampScale ) - CodecDelay | TimestampScale ) - CodecDelay | |||
</artwork> | </artwork> | |||
<t>The resulting frame timestamp <bcp14>SHOULD NOT</bcp14> be negative.</t> | <t>The resulting frame timestamp <bcp14>SHOULD NOT</bcp14> be negative.</t> | |||
<t>During playback, when a frame has a negative timestamp, the content <bcp14>MU ST</bcp14> be decoded by the decoder but not played to the user.</t> | <t>During playback, when a frame has a negative timestamp, the content <bcp14>MU ST</bcp14> be decoded by the decoder but not played to the user.</t> | |||
</section> | </section> | |||
<section anchor="timestampscale-rounding"><name>TimestampScale Rounding</name> | <section anchor="timestampscale-rounding"><name>TimestampScale Rounding</name> | |||
<t>The default Track Tick duration is one millisecond.</t> | <t>The default Track Tick duration is one millisecond.</t> | |||
<t>The <tt>TimestampScale</tt> is a floating-point value, which is usually 1.0. But when it's not, the multiplied | <t>The <tt>TimestampScale</tt> is a floating-point value that is usually "1.0". But when it's not, the multiplied | |||
Block Timestamp is a floating-point value in nanoseconds. | Block Timestamp is a floating-point value in nanoseconds. | |||
The <tt>Matroska Reader</tt> <bcp14>SHOULD</bcp14> use the nearest rounding valu e in nanosecond to get | The <tt>Matroska Reader</tt> <bcp14>SHOULD</bcp14> use the nearest rounding valu e in nanoseconds to get | |||
the proper nanosecond timestamp of a Block. This allows some clever <tt>Timestam pScale</tt> values | the proper nanosecond timestamp of a Block. This allows some clever <tt>Timestam pScale</tt> values | |||
to have more refined timestamp precision per frame.</t> | to have a more refined timestamp precision per frame.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="language-codes"><name>Language Codes</name> | <section anchor="language-codes"><name>Language Codes</name> | |||
<t>Matroska from version 1 through 3 uses language codes that can be either the | ||||
3 letters | <t>Matroska versions 1 through 3 use language codes that can be either the three | |||
bibliographic ISO-639-2 form <xref target="ISO639-2"></xref> (like "fre&quo | -letter | |||
t; for French), | bibliographic ISO 639-2 form <xref target="ISO639-2"></xref> (like "fre" for Fre | |||
or such a language code followed by a dash and a country code for specialities i | nch) | |||
n languages (like "fre-ca" for Canadian French). | or such a language code followed by a dash and a country code for specialities i | |||
The <tt>ISO 639-2 Language Elements</tt> are "Language Element", " | n languages (like "fre-ca" for Canadian French). | |||
;TagLanguage Element", and "ChapLanguage Element".</t> | The <tt>ISO 639-2 Language Elements</tt> are "Language Element", "TagLanguage El | |||
<t>Starting in Matroska version 4, either <xref target="ISO639-2"></xref> or <xr | ement", and "ChapLanguage Element".</t> | |||
ef target="BCP47"></xref> <bcp14>MAY</bcp14> be used, | <t>Starting in Matroska version 4, either <xref target="ISO639-2"></xref> or <xr | |||
although <tt>BCP 47</tt> is <bcp14>RECOMMENDED</bcp14>. The <tt>BCP 47 Language | ef target="RFC5646"></xref> <bcp14>MAY</bcp14> be used, | |||
Elements</tt> are "LanguageBCP47 Element", | although <tt>BCP 47</tt> is <bcp14>RECOMMENDED</bcp14>. The <tt>BCP 47 Language | |||
"TagLanguageBCP47 Element", and "ChapLanguageBCP47 Element". | Elements</tt> are "LanguageBCP47 Element", | |||
If a <tt>BCP 47 Language Element</tt> and an <tt>ISO 639-2 Language Element</tt | "TagLanguageBCP47 Element", and "ChapLanguageBCP47 Element". If a <tt>BCP 47 Lan | |||
> | guage Element</tt> and an <tt>ISO 639-2 Language Element</tt> | |||
are used within the same <tt>Parent Element</tt>, then the <tt>ISO 639-2 Languag e Element</tt> <bcp14>MUST</bcp14> be ignored and precedence given to the <tt>BC P 47 Language Element</tt>.</t> | are used within the same <tt>Parent Element</tt>, then the <tt>ISO 639-2 Languag e Element</tt> <bcp14>MUST</bcp14> be ignored and precedence given to the <tt>BC P 47 Language Element</tt>.</t> | |||
</section> | </section> | |||
<section anchor="country-codes"><name>Country Codes</name> | <section anchor="country-codes"><name>Country Codes</name> | |||
<t>Country codes are the <xref target="BCP47"></xref> two-letter region subtag, without the UK exception.</t> | <t>Country codes are the <xref target="RFC5646"></xref> two-letter region subtag s, without the UK exception.</t> | |||
</section> | </section> | |||
<section anchor="encryption"><name>Encryption</name> | <section anchor="encryption"><name>Encryption</name> | |||
<!-- [rfced] How may we update "to provide authorization" to create parallel | ||||
structure for the list in this sentence? The other items in the list are | ||||
nouns (i.e., confidentiality, integrity, authenticity). | ||||
Original: | ||||
This Matroska specification provides no interoperable solution for | ||||
securing the data container with any assurances of confidentiality, | ||||
integrity, authenticity, or to provide authorization. | ||||
Perhaps: | ||||
This Matroska specification provides no interoperable solution for | ||||
securing the data container with any assurances of confidentiality, | ||||
integrity, authenticity, or authorization. | ||||
--> | ||||
<t>This Matroska specification provides no interoperable solution for securing t he | <t>This Matroska specification provides no interoperable solution for securing t he | |||
data container with any assurances of confidentiality, integrity, authenticity, | data container with any assurances of confidentiality, integrity, authenticity, | |||
or to provide authorization. The <tt>ContentEncryption Element</tt> (<xref targe t="contentencryption-element"></xref>) | or to provide authorization. The <tt>ContentEncryption Element</tt> (<xref targe t="contentencryption-element"></xref>) | |||
and associated sub-fields (<xref target="contentencalgo-element"></xref> to <xre f target="aessettingsciphermode-element"></xref>) are defined | and associated sub-fields (<xref target="contentencalgo-element"></xref> to <xre f target="aessettingsciphermode-element"></xref>) are defined | |||
only for the benefit of implementers to construct their own proprietary solution | only for the benefit of implementers to construct their own proprietary solution | |||
or as the basis for further standardization activities. How to use these | or as the basis for further standardization activities. How to use these | |||
fields to secure a Matroska data container is out of scope, as are any related | fields to secure a Matroska data container is out of scope, as are any related | |||
issues such as key management and distribution.</t> | issues such as key management and distribution.</t> | |||
<t>A <tt>Matroska Reader</tt> who encounters containers that use the fields defi ned in this | <t>A <tt>Matroska Reader</tt> who encounters containers that use the fields defi ned in this | |||
section <bcp14>MUST</bcp14> rely on out-of-scope guidance to decode the associat ed content.</t> | section <bcp14>MUST</bcp14> rely on out-of-scope guidance to decode the associat ed content.</t> | |||
skipping to change at line 6083 ¶ | skipping to change at line 6721 ¶ | |||
encrypted streams without decrypting them. The streams could potentially be copi ed, | encrypted streams without decrypting them. The streams could potentially be copi ed, | |||
deleted, cut, appended, or any number of other possible editing techniques witho ut | deleted, cut, appended, or any number of other possible editing techniques witho ut | |||
decryption. The data can be used without having to expose it or go through the d ecrypting process.</t> | decryption. The data can be used without having to expose it or go through the d ecrypting process.</t> | |||
<t>Encryption can also be layered within Matroska. This means that two completel y different | <t>Encryption can also be layered within Matroska. This means that two completel y different | |||
types of encryption can be used, requiring two separate keys to be able to decry pt a stream.</t> | types of encryption can be used, requiring two separate keys to be able to decry pt a stream.</t> | |||
<t>Encryption information is stored in the <tt>ContentEncodings Element</tt> und er the <tt>ContentEncryption Element</tt>.</t> | <t>Encryption information is stored in the <tt>ContentEncodings Element</tt> und er the <tt>ContentEncryption Element</tt>.</t> | |||
<t>For encryption systems sharing public/private keys, the creation of the keys and the exchange of keys | <t>For encryption systems sharing public/private keys, the creation of the keys and the exchange of keys | |||
are not covered by this document. They have to be handled by the system using Ma troska.</t> | are not covered by this document. They have to be handled by the system using Ma troska.</t> | |||
<t>The algorithms described in <xref target="ContentEncAlgoValues"></xref> suppo rt | <t>The algorithms described in <xref target="ContentEncAlgoValues"></xref> suppo rt | |||
different modes of operations and key sizes. The specification of these | different modes of operations and key sizes. The specification of these | |||
parameters is required for a complete solution, but is out of scope of this | parameters is required for a complete solution but is out of scope of this | |||
document and left to the proprietary implementations using them or subsequent | document and left to the proprietary implementations using them or subsequent | |||
profiles of this document.</t> | profiles of this document.</t> | |||
<t>The <tt>ContentEncodingScope Element</tt> gives an idea of which part of the | <t>The <tt>ContentEncodingScope Element</tt> gives an idea of which part of the | |||
track are encrypted. | track is encrypted, but each <tt>ContentEncAlgo Element</tt> and its sub-element | |||
But each <tt>ContentEncAlgo Element</tt> and its sub elements like <tt>AESSettin | s (like <tt>AESSettingsCipherMode</tt>) | |||
gsCipherMode</tt> really | define exactly how the encrypted track should be interpreted.</t> | |||
define how the encrypted should be exactly interpreted.</t> | ||||
<t>An example of an extension that builds upon these security-related fields in this specification is <xref target="WebM-Enc"></xref>. | <t>An example of an extension that builds upon these security-related fields in this specification is <xref target="WebM-Enc"></xref>. | |||
It uses AES-CTR, <tt>ContentEncAlgo</tt> = 5 (<xref target="contentencalgo-eleme nt"></xref>) and <tt>AESSettingsCipherMode</tt> = 1 (<xref target="aessettingsci phermode-element"></xref>).</t> | It uses AES-CTR, <tt>ContentEncAlgo</tt> = 5 (<xref target="contentencalgo-eleme nt"></xref>), and <tt>AESSettingsCipherMode</tt> = 1 (<xref target="aessettingsc iphermode-element"></xref>).</t> | |||
<t>A <tt>Matroska Writer</tt> <bcp14>MUST NOT</bcp14> use insecure cryptographic algorithms to create new | <t>A <tt>Matroska Writer</tt> <bcp14>MUST NOT</bcp14> use insecure cryptographic algorithms to create new | |||
archives or streams, but a <tt>Matroska Reader</tt> <bcp14>MAY</bcp14> support t hese algorithms to read | archives or streams, but a <tt>Matroska Reader</tt> <bcp14>MAY</bcp14> support t hese algorithms to read | |||
previously made archives or stream.</t> | previously made archives or streams.</t> | |||
</section> | </section> | |||
<section anchor="image-presentation"><name>Image Presentation</name> | <section anchor="image-presentation"><name>Image Presentation</name> | |||
<section anchor="cropping"><name>Cropping</name> | <section anchor="cropping"><name>Cropping</name> | |||
<t>The <tt>PixelCrop Elements</tt> (<tt>PixelCropTop</tt>, <tt>PixelCropBottom</ tt>, <tt>PixelCropRight</tt>, and <tt>PixelCropLeft</tt>) | <t>The <tt>PixelCrop Elements</tt> (<tt>PixelCropTop</tt>, <tt>PixelCropBottom</ tt>, <tt>PixelCropRight</tt>, and <tt>PixelCropLeft</tt>) | |||
indicate when, and by how much, encoded videos frames <bcp14>SHOULD</bcp14> be c | indicate when, and by how much, encoded video frames <bcp14>SHOULD</bcp14> be cr | |||
ropped for display. | opped for display. | |||
These Elements allow edges of the frame that are not intended for display, such | These Elements allow edges of the frame that are not intended for display (such | |||
as the | as the | |||
sprockets of a full-frame film scan or the VANC area of a digitized analog video | sprockets of a full-frame film scan or the VANC area of a digitized analog video | |||
tape, | tape) to be stored but hidden. <tt>PixelCropTop</tt> and <tt>PixelCropBottom</t | |||
to be stored but hidden. <tt>PixelCropTop</tt> and <tt>PixelCropBottom</tt> stor | t> store an integer of how many | |||
e an integer of how many | rows of pixels <bcp14>SHOULD</bcp14> be cropped from the top and bottom of the i | |||
rows of pixels <bcp14>SHOULD</bcp14> be cropped from the top and bottom of the i | mage, respectively. | |||
mage (respectively). | ||||
<tt>PixelCropLeft</tt> and <tt>PixelCropRight</tt> store an integer of how many columns of pixels | <tt>PixelCropLeft</tt> and <tt>PixelCropRight</tt> store an integer of how many columns of pixels | |||
<bcp14>SHOULD</bcp14> be cropped from the left and right of the image (respecti vely).</t> | <bcp14>SHOULD</bcp14> be cropped from the left and right of the image, respecti vely.</t> | |||
<t>For example, | <t>For example, | |||
a pillar-boxed video that stores a 1440x1080 visual image within the center of a padded | a pillar-boxed video that stores a 1440x1080 visual image within the center of a padded | |||
1920x1080 encoded image may set both <tt>PixelCropLeft</tt> and <tt>PixelCropRi | 1920x1080 encoded image may set both <tt>PixelCropLeft</tt> and <tt>PixelCropRi | |||
ght</tt> to "240", | ght</tt> to "240", | |||
so that a <tt>Matroska Player</tt> should crop off 240 columns of pixels from t | so a <tt>Matroska Player</tt> should crop off 240 columns of pixels from the le | |||
he left and | ft and | |||
right of the encoded image to present the image with the pillar-boxes hidden.</ t> | right of the encoded image to present the image with the pillar-boxes hidden.</ t> | |||
<t>Cropping has to be performed before resizing and the display dimensions given by | <t>Cropping has to be performed before resizing and the display dimensions given by | |||
<tt>DisplayWidth</tt>, <tt>DisplayHeight</tt> and <tt>DisplayUnit</tt> apply to the already cropped image.</t> | <tt>DisplayWidth</tt>, <tt>DisplayHeight</tt>, and <tt>DisplayUnit</tt> apply t o the already-cropped image.</t> | |||
</section> | </section> | |||
<section anchor="rotation"><name>Rotation</name> | <section anchor="rotation"><name>Rotation</name> | |||
<t>The ProjectionPoseRoll Element (see <xref target="projectionposeroll-element" ></xref>) can be used to indicate | <t>The ProjectionPoseRoll Element (<xref target="projectionposeroll-element"></x ref>) can be used to indicate | |||
that the image from the associated video track <bcp14>SHOULD</bcp14> be rotated for presentation. | that the image from the associated video track <bcp14>SHOULD</bcp14> be rotated for presentation. | |||
For instance, the following representation of the Projection Element <xref targe t="projection-element"></xref>) | For instance, the following example of the Projection Element (<xref target="pr ojection-element"></xref>) | |||
and the ProjectionPoseRoll Element represents a video track where the image <bcp 14>SHOULD</bcp14> be | and the ProjectionPoseRoll Element represents a video track where the image <bcp 14>SHOULD</bcp14> be | |||
presented with a 90-degree counter-clockwise rotation, with the EBML tree shown | presented with a 90-degree counter-clockwise rotation, with the EBML tree shown | |||
as XML :</t> | as XML:</t> | |||
<figure><name>Rotation example. | <figure><name>Rotation Example | |||
</name> | </name> | |||
<sourcecode type="xml"><Projection> | <sourcecode type="xml"><Projection> | |||
<ProjectionPoseRoll>90</ProjectionPoseRoll> | <ProjectionPoseRoll>90</ProjectionPoseRoll> | |||
</Projection> | </Projection> | |||
</sourcecode> | </sourcecode> | |||
</figure> | </figure> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="segment-position"><name>Segment Position</name> | <section anchor="segment-position"><name>Segment Position</name> | |||
skipping to change at line 6133 ¶ | skipping to change at line 6769 ¶ | |||
</name> | </name> | |||
<sourcecode type="xml"><Projection> | <sourcecode type="xml"><Projection> | |||
<ProjectionPoseRoll>90</ProjectionPoseRoll> | <ProjectionPoseRoll>90</ProjectionPoseRoll> | |||
</Projection> | </Projection> | |||
</sourcecode> | </sourcecode> | |||
</figure> | </figure> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="segment-position"><name>Segment Position</name> | <section anchor="segment-position"><name>Segment Position</name> | |||
<t>The <tt>Segment Position</tt> of an <tt>Element</tt> refers to the position o f the first octet of the | <t>The <tt>Segment Position</tt> of an <tt>Element</tt> refers to the position o f the first octet of the | |||
<tt>Element ID</tt> of that <tt>Element</tt>, measured in octets, from the begin ning of the <tt>Element Data</tt> | <tt>Element ID</tt> of that <tt>Element</tt>, measured in octets, from the begin ning of the <tt>Element Data</tt> | |||
section of the containing <tt>Segment Element</tt>. In other words, the <tt>Segm ent Position</tt> of an | section of the containing <tt>Segment Element</tt>. In other words, the <tt>Segm ent Position</tt> of an | |||
<tt>Element</tt> is the distance in octets from the beginning of its containing <tt>Segment Element</tt> | <tt>Element</tt> is the distance in octets from the beginning of its containing <tt>Segment Element</tt> | |||
minus the size of the <tt>Element ID</tt> and <tt>Element Data Size</tt> of that <tt>Segment Element</tt>. | minus the size of the <tt>Element ID</tt> and <tt>Element Data Size</tt> of that <tt>Segment Element</tt>. | |||
The <tt>Segment Position</tt> of the first <tt>Child Element</tt> of the <tt>Seg ment Element</tt> is 0. | The <tt>Segment Position</tt> of the first <tt>Child Element</tt> of the <tt>Seg ment Element</tt> is 0. | |||
An <tt>Element</tt> which is not stored within a <tt>Segment Element</tt>, such as the <tt>Elements</tt> of | An <tt>Element</tt> that is not stored within a <tt>Segment Element</tt>, such a s the <tt>Elements</tt> of | |||
the <tt>EBML Header</tt>, do not have a <tt>Segment Position</tt>.</t> | the <tt>EBML Header</tt>, do not have a <tt>Segment Position</tt>.</t> | |||
<section anchor="segment-position-exception"><name>Segment Position Exception</n ame> | <section anchor="segment-position-exception"><name>Segment Position Exception</n ame> | |||
<t><tt>Elements</tt> that are defined to store a <tt>Segment Position</tt> <bcp1 4>MAY</bcp14> define reserved values to | <t><tt>Elements</tt> that are defined to store a <tt>Segment Position</tt> <bcp1 4>MAY</bcp14> define reserved values to | |||
indicate a special meaning.</t> | indicate a special meaning.</t> | |||
</section> | </section> | |||
<section anchor="example-of-segment-position"><name>Example of Segment Position< /name> | <section anchor="example-of-segment-position"><name>Example of Segment Position< /name> | |||
<t>This table presents an example of <tt>Segment Position</tt> by showing a hexa decimal representation | <t>This table presents an example of <tt>Segment Position</tt> by showing a hexa decimal representation | |||
of a very small Matroska file with labels to show the offsets in octets. The fil e contains | of a very small Matroska file with labels to show the offsets in octets. The fil e contains | |||
a <tt>Segment Element</tt> with an <tt>Element ID</tt> of "0x18538067" and a <tt>MuxingApp Element</tt> with an <tt>Element ID</tt> of "0x4D80&qu ot;.</t> | a <tt>Segment Element</tt> with an <tt>Element ID</tt> of "0x18538067" and a <tt >MuxingApp Element</tt> with an <tt>Element ID</tt> of "0x4D80".</t> | |||
<artwork> 0 1 2 | <artwork> | |||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 | 0 1 2 | |||
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 | |||
0 |1A|45|DF|A3|8B|42|82|88|6D|61|74|72|6F|73|6B|61| | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | |||
^ EBML Header | 0 |1A|45|DF|A3|8B|42|82|88|6D|61|74|72|6F|73|6B|61| | |||
0 | |18|53|80|67| | ^ EBML Header | |||
^ Segment ID | 0 | |18|53|80|67| | |||
20 |93| | ^ Segment ID | |||
^ Segment Data Size | 20 |93| | |||
20 | |15|49|A9|66|8E|4D|80|84|69|65|74|66|57|41|84|69|65|74|66| | ^ Segment Data Size | |||
^ Start of Segment data | 20 | |15|49|A9|66|8E|4D|80|84|69|65|74|66|57|41|84|69|65|74|66| | |||
20 | |4D|80|84|69|65|74|66|57|41|84|69|65|74|66| | ^ Start of Segment data | |||
^ MuxingApp start | 20 | |4D|80|84|69|65|74|66|57|41|84|69|65|74|66| | |||
^ MuxingApp start | ||||
</artwork> | </artwork> | |||
<t>In the above example, the <tt>Element ID</tt> of the <tt>Segment Element</tt> is stored at offset 16, | <t>In the above example, the <tt>Element ID</tt> of the <tt>Segment Element</tt> is stored at offset 16, | |||
the <tt>Element Data Size</tt> of the <tt>Segment Element</tt> is stored at offs et 20, and the | the <tt>Element Data Size</tt> of the <tt>Segment Element</tt> is stored at offs et 20, and the | |||
<tt>Element Data</tt> of the <tt>Segment Element</tt> is stored at offset 21.</t > | <tt>Element Data</tt> of the <tt>Segment Element</tt> is stored at offset 21.</t > | |||
<t>The <tt>MuxingApp Element</tt> is stored at offset 26. Since the <tt>Segment Position</tt> of | <t>The <tt>MuxingApp Element</tt> is stored at offset 26. Since the <tt>Segment Position</tt> of | |||
an <tt>Element</tt> is calculated by subtracting the position of the <tt>Element Data</tt> of | an <tt>Element</tt> is calculated by subtracting the position of the <tt>Element Data</tt> of | |||
the containing <tt>Segment Element</tt> from the position of that <tt>Element</t t>, the <tt>Segment Position</tt> | the containing <tt>Segment Element</tt> from the position of that <tt>Element</t t>, the <tt>Segment Position</tt> | |||
of <tt>MuxingApp Element</tt> in the above example is '26 - 21' or '5'.</t> | of the <tt>MuxingApp Element</tt> in the above example is "26 - 21" or "5".</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="linked-segments"><name>Linked Segments</name> | <section anchor="linked-segments"><name>Linked Segments</name> | |||
<t>Matroska provides several methods to link two or more <tt>Segment Elements</t t> together to create | <t>Matroska provides several methods to link two or more <tt>Segment Elements</t t> together to create | |||
a <tt>Linked Segment</tt>. A <tt>Linked Segment</tt> is a set of multiple <tt>Se gments</tt> linked together into | a <tt>Linked Segment</tt>. A <tt>Linked Segment</tt> is a set of multiple <tt>Se gments</tt> linked together into | |||
a single presentation by using Hard Linking or Medium Linking.</t> | a single presentation by using Hard Linking or Medium Linking.</t> | |||
<t>All <tt>Segments</tt> within a <tt>Linked Segment</tt> <bcp14>MUST</bcp14> ha ve a <tt>SegmentUUID</tt>.</t> | <t>All <tt>Segments</tt> within a <tt>Linked Segment</tt> <bcp14>MUST</bcp14> ha ve a <tt>SegmentUUID</tt>.</t> | |||
<t>All <tt>Segments</tt> within a <tt>Linked Segment</tt> <bcp14>SHOULD</bcp14> be stored within the same directory | <t>All <tt>Segments</tt> within a <tt>Linked Segment</tt> <bcp14>SHOULD</bcp14> be stored within the same directory | |||
or be accessible quickly based on their <tt>SegmentUUID</tt> | or be quickly accessible based on their <tt>SegmentUUID</tt> | |||
in order to have seamless transition between segments.</t> | in order to have a seamless transition between segments.</t> | |||
<t>All <tt>Segments</tt> within a <tt>Linked Segment</tt> <bcp14>MAY</bcp14> set a <tt>SegmentFamily</tt> with a common value to make | <t>All <tt>Segments</tt> within a <tt>Linked Segment</tt> <bcp14>MAY</bcp14> set a <tt>SegmentFamily</tt> with a common value to make | |||
it easier for a <tt>Matroska Player</tt> to know which <tt>Segments</tt> are mea nt to be played together.</t> | it easier for a <tt>Matroska Player</tt> to know which <tt>Segments</tt> are mea nt to be played together.</t> | |||
<t>The <tt>SegmentFilename</tt>, <tt>PrevFilename</tt> and <tt>NextFilename</tt> | <t>The <tt>SegmentFilename</tt>, <tt>PrevFilename</tt>, and <tt>NextFilename</tt | |||
elements <bcp14>MAY</bcp14> also give hints on | > elements <bcp14>MAY</bcp14> also give hints on | |||
the original filenames that were used when the Segment links were created, in ca | the original filenames that were used when the Segment links were created, in ca | |||
se some <tt>SegmentUUID</tt> are damaged.</t> | se some <tt>SegmentUUIDs</tt> are damaged.</t> | |||
<section anchor="hard-linking"><name>Hard Linking</name> | <section anchor="hard-linking"><name>Hard Linking</name> | |||
<t>Hard Linking, also called splitting, is the process of creating a <tt>Linked Segment</tt> | <t>Hard Linking, also called "splitting", is the process of creating a <tt>Linke d Segment</tt> | |||
by linking multiple <tt>Segment Elements</tt> using the <tt>NextUUID</tt> and <t t>PrevUUID</tt> Elements.</t> | by linking multiple <tt>Segment Elements</tt> using the <tt>NextUUID</tt> and <t t>PrevUUID</tt> Elements.</t> | |||
<t>All <tt>Segments</tt> within a <tt>Hard Linked Segment</tt> <bcp14>MUST</bcp1 4> use the same <tt>Tracks</tt> list and <tt>TimestampScale</tt>.</t> | <t>All <tt>Segments</tt> within a <tt>Hard Linked Segment</tt> <bcp14>MUST</bcp1 4> use the same <tt>Tracks</tt> list and <tt>TimestampScale</tt>.</t> | |||
<t>Within a <tt>Linked Segment</tt>, the timestamps of <tt>Block</tt> and <tt>Si mpleBlock</tt> <bcp14>MUST</bcp14> follow consecutively | <t>Within a <tt>Linked Segment</tt>, the timestamps of <tt>Block</tt> and <tt>Si mpleBlock</tt> <bcp14>MUST</bcp14> consecutively follow | |||
the timestamps of <tt>Block</tt> and <tt>SimpleBlock</tt> from the previous <tt> Segment</tt> in linking order.</t> | the timestamps of <tt>Block</tt> and <tt>SimpleBlock</tt> from the previous <tt> Segment</tt> in linking order.</t> | |||
<t>With Hard Linking, the chapters of any <tt>Segment</tt> within the <tt>Linked Segment</tt> <bcp14>MUST</bcp14> only reference the current <tt>Segment</tt>. | <t>With Hard Linking, the chapters of any <tt>Segment</tt> within the <tt>Linked Segment</tt> <bcp14>MUST</bcp14> only reference the current <tt>Segment</tt>. | |||
The <tt>NextUUID</tt> and <tt>PrevUUID</tt> reference the respective <tt>Segment UUID</tt> values of the next and previous <tt>Segments</tt>.</t> | The <tt>NextUUID</tt> and <tt>PrevUUID</tt> reference the respective <tt>Segment UUID</tt> values of the next and previous <tt>Segments</tt>.</t> | |||
<t>The first <tt>Segment</tt> of a <tt>Linked Segment</tt> <bcp14>MUST NOT</bcp1 4> have a <tt>PrevUUID Element</tt>. | <t>The first <tt>Segment</tt> of a <tt>Linked Segment</tt> <bcp14>MUST NOT</bcp1 4> have a <tt>PrevUUID Element</tt>. | |||
The last <tt>Segment</tt> of a <tt>Linked Segment</tt> <bcp14>MUST NOT</bcp14> h ave a <tt>NextUUID Element</tt>.</t> | The last <tt>Segment</tt> of a <tt>Linked Segment</tt> <bcp14>MUST NOT</bcp14> h ave a <tt>NextUUID Element</tt>.</t> | |||
<t>For each node of the chain of <tt>Segments</tt> of a <tt>Linked Segment</tt> | ||||
at least one <tt>Segment</tt> <bcp14>MUST</bcp14> reference the other <tt>Segmen | <t>For each node of the chain of <tt>Segments</tt> of a <tt>Linked Segment</tt>, | |||
t</tt> within the chain.</t> | at least one <tt>Segment</tt> <bcp14>MUST</bcp14> reference the other <tt>Segme | |||
<t>In a chain of <tt>Segments</tt> of a <tt>Linked Segment</tt> the <tt>NextUUID | nt</tt> within the chain.</t> | |||
</tt> always takes precedence over the <tt>PrevUUID</tt>. | <t>In a chain of <tt>Segments</tt> of a <tt>Linked Segment</tt>, the <tt>NextUUI | |||
So if SegmentA has a <tt>NextUUID</tt> to SegmentB and SegmentB has a <tt>PrevUU | D</tt> always takes precedence over the <tt>PrevUUID</tt>. | |||
ID</tt> to SegmentC, | Thus, if SegmentA has a <tt>NextUUID</tt> to SegmentB and SegmentB has a <tt>Pre | |||
the link to use is <tt>NextUUID</tt> between SegmentA and SegmentB, SegmentC is | vUUID</tt> to SegmentC, | |||
not part of the Linked Segment.</t> | the link to use is <tt>NextUUID</tt> between SegmentA and SegmentB, and SegmentC | |||
<t>If SegmentB has a <tt>PrevUUID</tt> to SegmentA but SegmentA has no <tt>NextU | is not part of the Linked Segment.</t> | |||
UID</tt>, then the Matroska Player | <t>If SegmentB has a <tt>PrevUUID</tt> to SegmentA, but SegmentA has no <tt>Next | |||
UUID</tt>, then the Matroska Player | ||||
<bcp14>MAY</bcp14> consider these two Segments linked as SegmentA followed by Se gmentB.</t> | <bcp14>MAY</bcp14> consider these two Segments linked as SegmentA followed by Se gmentB.</t> | |||
<t>As an example, three <tt>Segments</tt> can be Hard Linked as a <tt>Linked Seg ment</tt> through | <t>As an example, three <tt>Segments</tt> can be Hard Linked as a <tt>Linked Seg ment</tt> through | |||
cross-referencing each other with <tt>SegmentUUID</tt>, <tt>PrevUUID</tt>, and < tt>NextUUID</tt>, as in this table:</t> | cross-referencing each other with <tt>SegmentUUID</tt>, <tt>PrevUUID</tt>, and < tt>NextUUID</tt> as shown in this table:</t> | |||
<table anchor="hardLinkingUIDs"><name>Usual Hard Linking UIDs</name> | <table anchor="hardLinkingUIDs"><name>Usual Hard Linking UIDs</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">file name</th> | <th align="left">file name</th> | |||
<th align="left"><tt>SegmentUUID</tt></th> | <th align="left"><tt>SegmentUUID</tt></th> | |||
<th align="left"><tt>PrevUUID</tt></th> | <th align="left"><tt>PrevUUID</tt></th> | |||
<th align="left"><tt>NextUUID</tt></th> | <th align="left"><tt>NextUUID</tt></th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
skipping to change at line 6239 ¶ | skipping to change at line 6878 ¶ | |||
<td align="left">6c92285fa6d3e827 b198d120ea3ac674</td> | <td align="left">6c92285fa6d3e827 b198d120ea3ac674</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>end.mkv</tt></td> | <td align="left"><tt>end.mkv</tt></td> | |||
<td align="left">6c92285fa6d3e827 b198d120ea3ac674</td> | <td align="left">6c92285fa6d3e827 b198d120ea3ac674</td> | |||
<td align="left">a77b3598941cb803 eac0fcdafe44fac9</td> | <td align="left">a77b3598941cb803 eac0fcdafe44fac9</td> | |||
<td align="left">Invalid</td> | <td align="left">Invalid</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>An other example where only the <tt>NextUUID</tt> Element is used:</t > | </table><t>An example where only the <tt>NextUUID</tt> Element is used:</t> | |||
<table anchor="hardLinkingWoPrevUUID"><name>Hard Linking without PrevUUID</name> | <table anchor="hardLinkingWoPrevUUID"><name>Hard Linking without PrevUUID</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">file name</th> | <th align="left">file name</th> | |||
<th align="left"><tt>SegmentUUID</tt></th> | <th align="left"><tt>SegmentUUID</tt></th> | |||
<th align="left"><tt>PrevUUID</tt></th> | <th align="left"><tt>PrevUUID</tt></th> | |||
<th align="left"><tt>NextUUID</tt></th> | <th align="left"><tt>NextUUID</tt></th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
skipping to change at line 6305 ¶ | skipping to change at line 6944 ¶ | |||
<td align="left">n/a</td> | <td align="left">n/a</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>end.mkv</tt></td> | <td align="left"><tt>end.mkv</tt></td> | |||
<td align="left">6c92285fa6d3e827 b198d120ea3ac674</td> | <td align="left">6c92285fa6d3e827 b198d120ea3ac674</td> | |||
<td align="left">a77b3598941cb803 eac0fcdafe44fac9</td> | <td align="left">a77b3598941cb803 eac0fcdafe44fac9</td> | |||
<td align="left">Invalid</td> | <td align="left">Invalid</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>In this example only the <tt>middle.mkv</tt> is using the <tt>PrevUUI | </table><t>An example where only the <tt>middle.mkv</tt> is using the <tt>PrevUU | |||
D</tt> and <tt>NextUUID</tt> Elements:</t> | ID</tt> and <tt>NextUUID</tt> Elements:</t> | |||
<table anchor="hardLinkingMixedUIDs"><name>Hard Linking with mixed UID links</na | <table anchor="hardLinkingMixedUIDs"><name>Hard Linking with Mixed UID Links</na | |||
me> | me> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">file name</th> | <th align="left">file name</th> | |||
<th align="left"><tt>SegmentUUID</tt></th> | <th align="left"><tt>SegmentUUID</tt></th> | |||
<th align="left"><tt>PrevUUID</tt></th> | <th align="left"><tt>PrevUUID</tt></th> | |||
<th align="left"><tt>NextUUID</tt></th> | <th align="left"><tt>NextUUID</tt></th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
skipping to change at line 6348 ¶ | skipping to change at line 6987 ¶ | |||
</table></section> | </table></section> | |||
<section anchor="medium-linking"><name>Medium Linking</name> | <section anchor="medium-linking"><name>Medium Linking</name> | |||
<t>Medium Linking creates relationships between <tt>Segments</tt> using Ordered Chapters (<xref target="editionflagordered"></xref>) and the | <t>Medium Linking creates relationships between <tt>Segments</tt> using Ordered Chapters (<xref target="editionflagordered"></xref>) and the | |||
<tt>ChapterSegmentUUID Element</tt>. A <tt>Chapter Edition</tt> with Ordered Cha pters <bcp14>MAY</bcp14> contain | <tt>ChapterSegmentUUID Element</tt>. A <tt>Chapter Edition</tt> with Ordered Cha pters <bcp14>MAY</bcp14> contain | |||
Chapter elements that reference timestamp ranges from other <tt>Segments</tt>. T he <tt>Segment</tt> | Chapter elements that reference timestamp ranges from other <tt>Segments</tt>. T he <tt>Segment</tt> | |||
referenced by the Ordered Chapter via the <tt>ChapterSegmentUUID Element</tt> <b cp14>SHOULD</bcp14> be played as | referenced by the Ordered Chapter via the <tt>ChapterSegmentUUID Element</tt> <b cp14>SHOULD</bcp14> be played as | |||
part of a Linked Segment.</t> | part of a Linked Segment.</t> | |||
<t>The timestamps of Segment content referenced by Ordered Chapters | <t>The timestamps of Segment content referenced by Ordered Chapters | |||
<bcp14>MUST</bcp14> be adjusted according to the cumulative duration of the prev ious Ordered Chapters.</t> | <bcp14>MUST</bcp14> be adjusted according to the cumulative duration of the prev ious Ordered Chapters.</t> | |||
<t>As an example a file named <tt>intro.mkv</tt> could have a <tt>SegmentUUID</t t> of "0xb16a58609fc7e60653a60c984fc11ead". | <t>As an example, a file named <tt>intro.mkv</tt> could have a <tt>SegmentUUID</ tt> of "0xb16a58609fc7e60653a60c984fc11ead". | |||
Another file called <tt>program.mkv</tt> could use a Chapter Edition that contai ns two Ordered Chapters. | Another file called <tt>program.mkv</tt> could use a Chapter Edition that contai ns two Ordered Chapters. | |||
The first chapter references the <tt>Segment</tt> of <tt>intro.mkv</tt> with the use of a <tt>ChapterSegmentUUID</tt>, | The first chapter references the <tt>Segment</tt> of <tt>intro.mkv</tt> with the use of a <tt>ChapterSegmentUUID</tt>, | |||
<tt>ChapterSegmentEditionUID</tt>, <tt>ChapterTimeStart</tt>, and optionally a < tt>ChapterTimeEnd</tt> element. | <tt>ChapterSegmentEditionUID</tt>, <tt>ChapterTimeStart</tt>, and an optional <t t>ChapterTimeEnd</tt> element. | |||
The second chapter references content within the <tt>Segment</tt> of <tt>program .mkv</tt>. A <tt>Matroska Player</tt> | The second chapter references content within the <tt>Segment</tt> of <tt>program .mkv</tt>. A <tt>Matroska Player</tt> | |||
<bcp14>SHOULD</bcp14> recognize the <tt>Linked Segment</tt> created by the use o f <tt>ChapterSegmentUUID</tt> in an enabled | <bcp14>SHOULD</bcp14> recognize the <tt>Linked Segment</tt> created by the use o f <tt>ChapterSegmentUUID</tt> in an enabled | |||
<tt>Edition</tt> and present the reference content of the two <tt>Segments</tt> as a single presentation.</t> | <tt>Edition</tt> and present the reference content of the two <tt>Segments</tt> as a single presentation.</t> | |||
<t>The <tt>ChapterSegmentUUID</tt> represents the Segment that holds the content to play in place of the <tt>Linked Chapter</tt>. | <t>The <tt>ChapterSegmentUUID</tt> represents the Segment that holds the content to play in place of the <tt>Linked Chapter</tt>. | |||
The <tt>ChapterSegmentUUID</tt> <bcp14>MUST NOT</bcp14> be the <tt>SegmentUUID</ tt> of its own <tt>Segment</tt>.</t> | The <tt>ChapterSegmentUUID</tt> <bcp14>MUST NOT</bcp14> be the <tt>SegmentUUID</ tt> of its own <tt>Segment</tt>.</t> | |||
<t>There are 2 ways to use a chapter link:</t> | ||||
<t>There are two ways to use a chapter link:</t> | ||||
<ul> | <ul> | |||
<li><t>Linked-Duration linking,</t> | <li><t>Linked-Duration linking</t> | |||
</li> | </li> | |||
<li><t>Linked-Edition linking</t> | <li><t>Linked-Edition linking</t> | |||
</li> | </li> | |||
</ul> | </ul> | |||
<section anchor="linked-duration"><name>Linked-Duration</name> | <section anchor="linked-duration"><name>Linked-Duration</name> | |||
<t>A <tt>Matroska Player</tt> <bcp14>MUST</bcp14> play the content of the linked Segment | <t>A <tt>Matroska Player</tt> <bcp14>MUST</bcp14> play the content of the linked Segment | |||
from the <tt>ChapterTimeStart</tt> until <tt>ChapterTimeEnd</tt> timestamp in pl ace of the <tt>Linked Chapter</tt>.</t> | from the <tt>ChapterTimeStart</tt> until the <tt>ChapterTimeEnd</tt> timestamp i n place of the <tt>Linked Chapter</tt>.</t> | |||
<t><tt>ChapterTimeStart</tt> and <tt>ChapterTimeEnd</tt> represent timestamps in the Linked Segment matching the value of <tt>ChapterSegmentUUID</tt>. | <t><tt>ChapterTimeStart</tt> and <tt>ChapterTimeEnd</tt> represent timestamps in the Linked Segment matching the value of <tt>ChapterSegmentUUID</tt>. | |||
Their values <bcp14>MUST</bcp14> be in the range of the linked Segment duration. </t> | Their values <bcp14>MUST</bcp14> be in the range of the linked Segment duration. </t> | |||
<t>The <tt>ChapterTimeEnd</tt> value <bcp14>MUST</bcp14> be set when using linke d-duration chapter linking. | <t>The <tt>ChapterTimeEnd</tt> value <bcp14>MUST</bcp14> be set when using Linke d-Duration chapter linking. | |||
<tt>ChapterSegmentEditionUID</tt> <bcp14>MUST NOT</bcp14> be set.</t> | <tt>ChapterSegmentEditionUID</tt> <bcp14>MUST NOT</bcp14> be set.</t> | |||
</section> | </section> | |||
<section anchor="linked-edition"><name>Linked-Edition</name> | <section anchor="linked-edition"><name>Linked-Edition</name> | |||
<t>A <tt>Matroska Player</tt> <bcp14>MUST</bcp14> play the whole linked <tt>Edit ion</tt> of the linked Segment in place of the <tt>Linked Chapter</tt>.</t> | <t>A <tt>Matroska Player</tt> <bcp14>MUST</bcp14> play the whole Linked <tt>Edit ion</tt> of the linked Segment in place of the <tt>Linked Chapter</tt>.</t> | |||
<t><tt>ChapterSegmentEditionUID</tt> represents a valid Edition from the Linked Segment matching the value of <tt>ChapterSegmentUUID</tt>.</t> | <t><tt>ChapterSegmentEditionUID</tt> represents a valid Edition from the Linked Segment matching the value of <tt>ChapterSegmentUUID</tt>.</t> | |||
<t>When using linked-edition chapter linking. <tt>ChapterTimeEnd</tt> is <bcp14> OPTIONAL</bcp14>.</t> | <t>When using Linked-Edition chapter linking, <tt>ChapterTimeEnd</tt> is <bcp14> OPTIONAL</bcp14>.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="track-flags"><name>Track Flags</name> | <section anchor="track-flags"><name>Track Flags</name> | |||
<section anchor="default-flag"><name>Default flag</name> | <!-- [rfced] In Sections 18 and 19, would it be helpful for the names of the | |||
<t>The "default track" flag is a hint for a <tt>Matroska Player</tt> i | flags to align more closely with those in Sections 5.1.4.1.4 to | |||
ndicating that a given track | 5.1.4.1.11? Or is the current okay? We are specifically asking about the | |||
following flags (the others match). | ||||
Original (in Sections 18 and 19): | ||||
hearing-impaired flag | ||||
visual-impaired flag | ||||
descriptions flag | ||||
Current: | ||||
Hearing-Impaired flag | ||||
Visual-Impaired flag | ||||
Descriptions flag | ||||
Perhaps: | ||||
HearingImpaired flag | ||||
VisualImpaired flag | ||||
TextDescriptions flag | ||||
Note that we see both "default track flag" and "Default flag" in the text. We | ||||
updated to "Default flag" for consistency. | ||||
--> | ||||
<section anchor="default-flag"><name>Default Flag</name> | ||||
<t>The Default flag is a hint for a <tt>Matroska Player</tt> indicating that a g | ||||
iven track | ||||
<bcp14>SHOULD</bcp14> be eligible to be automatically selected as the default tr ack for a given | <bcp14>SHOULD</bcp14> be eligible to be automatically selected as the default tr ack for a given | |||
language. If no tracks in a given language have the default track flag set, then all tracks | language. If no tracks in a given language have the Default flag set, then all t racks | |||
in that language are eligible for automatic selection. This can be used to indic ate that | in that language are eligible for automatic selection. This can be used to indic ate that | |||
a track provides "regular service" suitable for users with default set tings, as opposed to | a track provides "regular service" that is suitable for users with default setti ngs, as opposed to | |||
specialized services, such as commentary, hearing-impaired captions, or descript ive audio.</t> | specialized services, such as commentary, hearing-impaired captions, or descript ive audio.</t> | |||
<t>The <tt>Matroska Player</tt> <bcp14>MAY</bcp14> override the "default tr ack" flag for any reason, including | <t>The <tt>Matroska Player</tt> <bcp14>MAY</bcp14> override the Default flag for any reason, including | |||
user preferences to prefer tracks providing accessibility services.</t> | user preferences to prefer tracks providing accessibility services.</t> | |||
</section> | </section> | |||
<section anchor="forced-flag"><name>Forced flag</name> | <section anchor="forced-flag"><name>Forced Flag</name> | |||
<t>The "forced" flag tells the <tt>Matroska Player</tt> that it <bcp14 | <t>The Forced flag tells the <tt>Matroska Player</tt> that it <bcp14>SHOULD</bcp | |||
>SHOULD</bcp14> display this subtitle track, | 14> display this subtitle track, | |||
even if user preferences usually would not call for any subtitles to be displaye d alongside | even if user preferences usually would not call for any subtitles to be displaye d alongside | |||
the current selected audio track. This can be used to indicate that a track cont | the audio track that is currently selected. This can be used to indicate that a | |||
ains translations | track contains translations | |||
of onscreen text, or of dialogue spoken in a different language than the track's | of on-screen text or dialogue spoken in a different language than the track's pr | |||
primary one.</t> | imary language.</t> | |||
</section> | </section> | |||
<section anchor="hearing-impaired-flag"><name>Hearing-impaired flag</name> | <section anchor="hearing-impaired-flag"><name>Hearing-Impaired Flag</name> | |||
<t>The "hearing impaired" flag tells the <tt>Matroska Player</tt> that | <t>The Hearing-Impaired flag tells the <tt>Matroska Player</tt> that it <bcp14>S | |||
it <bcp14>SHOULD</bcp14> prefer this track | HOULD</bcp14> prefer this track | |||
when selecting a default track for a hearing-impaired user, and that it <bcp14>M | when selecting a default track for a hearing-impaired user and that it <bcp14>MA | |||
AY</bcp14> prefer to select | Y</bcp14> prefer to select | |||
a different track when selecting a default track for a non-hearing-impaired user | a different track when selecting a default track for a user that is not hearing- | |||
.</t> | impaired.</t> | |||
</section> | </section> | |||
<section anchor="visual-impaired-flag"><name>Visual-impaired flag</name> | <section anchor="visually-impaired-flag"><name>Visual-Impaired Flag</name> | |||
<t>The "visual impaired" flag tells the <tt>Matroska Player</tt> that | <t>The Visual-Impaired flag tells the <tt>Matroska Player</tt> that it <bcp14>SH | |||
it <bcp14>SHOULD</bcp14> prefer this track | OULD</bcp14> prefer this track | |||
when selecting a default track for a visually-impaired user, and that it <bcp14> | when selecting a default track for a visually impaired user and that it <bcp14>M | |||
MAY</bcp14> prefer to select | AY</bcp14> prefer to select | |||
a different track when selecting a default track for a non-visually-impaired use | a different track when selecting a default track for a user that is not visually | |||
r.</t> | impaired.</t> | |||
</section> | </section> | |||
<section anchor="descriptions-flag"><name>Descriptions flag</name> | <section anchor="descriptions-flag"><name>Descriptions Flag</name> | |||
<t>The "descriptions" flag tells the <tt>Matroska Player</tt> that thi | <t>The Descriptions flag tells the <tt>Matroska Player</tt> that this track | |||
s track is suitable to play via | is suitable to play via a text-to-speech system for a visually impaired user | |||
a text-to-speech system for a visually-impaired user, and that it <bcp14>SHOULD | and that it <bcp14>SHOULD NOT</bcp14> automatically select this track when | |||
NOT</bcp14> automatically | selecting a default track for a user that is not visually impaired.</t> | |||
select this track when selecting a default track for a non-visually-impaired use | ||||
r.</t> | ||||
</section> | </section> | |||
<section anchor="original-flag"><name>Original flag</name> | <section anchor="original-flag"><name>Original Flag</name> | |||
<t>The "original" flag tells the <tt>Matroska Player</tt> that this tr | <t>The Original flag tells the <tt>Matroska Player</tt> that this track is in th | |||
ack is in the original language, | e original language | |||
and that it <bcp14>SHOULD</bcp14> prefer it if configured to prefer original-lan | and that it <bcp14>SHOULD</bcp14> prefer the original language if configured to | |||
guage tracks of this | prefer original-language tracks of this | |||
track's type.</t> | track's type.</t> | |||
</section> | </section> | |||
<section anchor="commentary-flag"><name>Commentary flag</name> | <section anchor="commentary-flag"><name>Commentary Flag</name> | |||
<t>The "commentary" flag tells the <tt>Matroska Player</tt> that this | <t>The Commentary flag tells the <tt>Matroska Player</tt> that this track contai | |||
track contains commentary on | ns commentary on | |||
the content.</t> | the content.</t> | |||
</section> | </section> | |||
<section anchor="track-operation"><name>Track Operation</name> | <section anchor="track-operation"><name>Track Operation</name> | |||
<t><tt>TrackOperation</tt> allows combining multiple tracks to make a virtual on | <t><tt>TrackOperation</tt> allows for the combination of multiple tracks to make | |||
e. It uses | a virtual one. It uses | |||
two separate system to combine tracks. One to create a 3D "composition" | two separate system to combine tracks. One to create a 3D "composition" (left/ri | |||
; (left/right/background planes) | ght/background planes) | |||
and one to simplify join two tracks together to make a single track.</t> | and one to simplify join two tracks together to make a single track.</t> | |||
<t>A track created with <tt>TrackOperation</tt> is a proper track with a UID and all its flags. | <t>A track created with <tt>TrackOperation</tt> is a proper track with a UID and all its flags. | |||
However, the codec ID is meaningless because each "sub" track needs to | However, the codec ID is meaningless because each "sub" track needs to be decode | |||
be decoded by its | d by its | |||
own decoder before the "operation" is applied. The <tt>Cues Elements</ | own decoder before the "operation" is applied. The <tt>Cues Elements</tt> corres | |||
tt> corresponding to such | ponding to such | |||
a virtual track <bcp14>SHOULD</bcp14> be the union of the <tt>Cues Elements</tt> for each of the tracks it's composed of (when the <tt>Cues</tt> are defined per track).</t> | a virtual track <bcp14>SHOULD</bcp14> be the union of the <tt>Cues Elements</tt> for each of the tracks it's composed of (when the <tt>Cues</tt> are defined per track).</t> | |||
<t>In the case of <tt>TrackJoinBlocks</tt>, the <tt>Block Elements</tt> (from <t t>BlockGroup</tt> and <tt>SimpleBlock</tt>) | <t>In the case of <tt>TrackJoinBlocks</tt>, the <tt>Block Elements</tt> (from <t t>BlockGroup</tt> and <tt>SimpleBlock</tt>) | |||
of all the tracks <bcp14>SHOULD</bcp14> be used as if they were defined for this new virtual <tt>Track</tt>. | of all the tracks <bcp14>SHOULD</bcp14> be used as if they were defined for this new virtual <tt>Track</tt>. | |||
When two <tt>Block Elements</tt> have overlapping start or end timestamps, it's up to the underlying | When two <tt>Block Elements</tt> have overlapping start or end timestamps, it's up to the underlying | |||
system to either drop some of these frames or render them the way they overlap. | system to either drop some of these frames or render them the way they overlap. | |||
This situation <bcp14>SHOULD</bcp14> be avoided when creating such tracks as you can never be sure | This situation <bcp14>SHOULD</bcp14> be avoided when creating such tracks, as yo u can never be sure | |||
of the end result on different platforms.</t> | of the end result on different platforms.</t> | |||
</section> | </section> | |||
<section anchor="overlay-track"><name>Overlay Track</name> | <section anchor="overlay-track"><name>Overlay Track</name> | |||
<!-- [rfced] The noun ("tracks") is plural, but the pronoun ("it's") is | ||||
singular. Which of the following options is the best way to fix this | ||||
agreement issue? | ||||
Original: | ||||
Overlay tracks SHOULD be rendered in the same channel as the track | ||||
it's linked to. | ||||
Perhaps (both plural): | ||||
Overlay tracks SHOULD be rendered in the same channel as the track | ||||
they are linked to. | ||||
Or (both singular): | ||||
An overlay track SHOULD be rendered in the same channel as the track | ||||
it's linked to. | ||||
--> | ||||
<t>Overlay tracks <bcp14>SHOULD</bcp14> be rendered in the same channel as the t rack it's linked to. | <t>Overlay tracks <bcp14>SHOULD</bcp14> be rendered in the same channel as the t rack it's linked to. | |||
When content is found in such a track, it <bcp14>SHOULD</bcp14> be played on the rendering channel | When content is found in such a track, it <bcp14>SHOULD</bcp14> be played on the rendering channel | |||
instead of the original track.</t> | instead of the original track.</t> | |||
</section> | </section> | |||
<section anchor="multi-planar-and-3d-videos"><name>Multi-planar and 3D videos</n ame> | <section anchor="multi-planar-and-3d-videos"><name>Multi-planar and 3D Videos</n ame> | |||
<t>There are two different ways to compress 3D videos: have each eye track in a separate track | <t>There are two different ways to compress 3D videos: have each eye track in a separate track | |||
and have one track have both eyes combined inside (which is more efficient, comp ression-wise). | and have one track have both eyes combined inside (which is more efficient compr ession-wise). | |||
Matroska supports both ways.</t> | Matroska supports both ways.</t> | |||
<t>For the single track variant, there is the <tt>StereoMode Element</tt>, which defines how planes are | <t>For the single-track variant, there is the <tt>StereoMode Element</tt>, which defines how planes are | |||
assembled in the track (mono or left-right combined). Odd values of StereoMode m eans the left | assembled in the track (mono or left-right combined). Odd values of StereoMode m eans the left | |||
plane comes first for more convenient reading. The pixel count of the track (<tt >PixelWidth</tt>/<tt>PixelHeight</tt>) | plane comes first for more convenient reading. The pixel count of the track (<tt >PixelWidth</tt>/<tt>PixelHeight</tt>) | |||
is the raw amount of pixels, for example 3840x1080 for full HD side by side, and | is the raw number of pixels (for example, 3840x1080 for full HD side by side), a | |||
the <tt>DisplayWidth</tt>/<tt>DisplayHeight</tt> | nd the <tt>DisplayWidth</tt>/<tt>DisplayHeight</tt> | |||
in pixels is the amount of pixels for one plane (1920x1080 for that full HD stre | in pixels is the number of pixels for one plane (1920x1080 for that full HD stre | |||
am). | am). | |||
<!-- [rfced] Would it be helpful to update "Old stereo 3D" to "Old stereo 3D | ||||
movies" or something similar? | ||||
Original: | ||||
Old stereo 3D were displayed using anaglyph (cyan and red colors separated). | ||||
Perhaps: | ||||
Old stereo 3D movies were displayed using anaglyph (cyan and red colors separate | ||||
d). | ||||
--> | ||||
Old stereo 3D were displayed using anaglyph (cyan and red colors separated). | Old stereo 3D were displayed using anaglyph (cyan and red colors separated). | |||
For compatibility with such movies, there is a value of the StereoMode that corr esponds to AnaGlyph.</t> | For compatibility with such movies, there is a value of the StereoMode that corr esponds to AnaGlyph.</t> | |||
<t>There is also a "packed" mode (values 13 and 14) which consists of | <t>There is also a "packed" mode (values 13 and 14) that consists of packing two | |||
packing two frames together | frames together | |||
in a <tt>Block</tt> using lacing. The first frame is the left eye and the other | in a <tt>Block</tt> that uses lacing. The first frame is the left eye and the ot | |||
frame is the right eye | her frame is the right eye | |||
(or vice versa). The frames <bcp14>SHOULD</bcp14> be decoded in that order and a re possibly dependent | (or vice versa). The frames <bcp14>SHOULD</bcp14> be decoded in that order and a re possibly dependent | |||
on each other (P and B frames).</t> | on each other (P and B frames).</t> | |||
<t>For separate tracks, Matroska needs to define exactly which track does what. | <t>For separate tracks, Matroska needs to define exactly which track does what. | |||
<tt>TrackOperation</tt> with <tt>TrackCombinePlanes</tt> do that. For more detai ls look at | <tt>TrackOperation</tt> with <tt>TrackCombinePlanes</tt> does that. For more det ails, see | |||
<xref target="track-operation"></xref> on how TrackOperation works.</t> | <xref target="track-operation"></xref> on how TrackOperation works.</t> | |||
<t>The 3D support is still in infancy and may evolve to support more features.</ t> | <t>The 3D support is still in infancy and may evolve to support more features.</ t> | |||
<t>The StereoMode used to be part of Matroska v2 but it didn't meet the requirem ent | <t>The StereoMode used to be part of Matroska v2, but it didn't meet the require ment | |||
for multiple tracks. There was also a bug in libmatroska prior to 0.9.0 that wou ld save/read | for multiple tracks. There was also a bug in libmatroska prior to 0.9.0 that wou ld save/read | |||
it as <tt>0x53B9</tt> instead of <tt>0x53B8</tt>; see OldStereoMode (<xref targe t="oldstereomode-element"></xref>). <tt>Matroska Readers</tt> <bcp14>MAY</bcp14> support these legacy files by checking | it as <tt>0x53B9</tt> instead of <tt>0x53B8</tt>; see OldStereoMode (<xref targe t="oldstereomode-element"></xref>). <tt>Matroska Readers</tt> <bcp14>MAY</bcp14> support these legacy files by checking | |||
Matroska v2 or <tt>0x53B9</tt>. | Matroska v2 or <tt>0x53B9</tt>. | |||
The older values of StereoMode were 0: mono, 1: right eye, 2: left eye, 3: both eyes, the only values that can be found in OldStereoMode. | The older values of StereoMode were 0 (mono), 1 (right eye), 2 (left eye), and 3 (both eyes); these are the only values that can be found in OldStereoMode. | |||
They are not compatible with the StereoMode values found in Matroska v3 and abov e.</t> | They are not compatible with the StereoMode values found in Matroska v3 and abov e.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="default-track-selection"><name>Default track selection</name> | <section anchor="default-track-selection"><name>Default Track Selection</name> | |||
<t>This section provides some example sets of Tracks and hypothetical user setti ngs, along with | <t>This section provides some example sets of Tracks and hypothetical user setti ngs, along with | |||
indications of which ones a similarly-configured <tt>Matroska Player</tt> <bcp14 >SHOULD</bcp14> automatically | indications of which ones a similarly configured <tt>Matroska Player</tt> <bcp14 >SHOULD</bcp14> automatically | |||
select for playback by default in such a situation. A player <bcp14>MAY</bcp14> provide additional settings | select for playback by default in such a situation. A player <bcp14>MAY</bcp14> provide additional settings | |||
with more detailed controls for more nuanced scenarios. These examples are provi ded as guidelines | with more detailed controls for more nuanced scenarios. These examples are provi ded as guidelines | |||
to illustrate the intended usages of the various supported Track flags, and thei r expected behaviors.</t> | to illustrate the intended usages of the various supported Track flags and their expected behaviors.</t> | |||
<t>Track names are shown in English for illustrative purposes; actual files may have titles | <t>Track names are shown in English for illustrative purposes; actual files may have titles | |||
in the language of each track, or provide titles in multiple languages.</t> | in the language of each track or provide titles in multiple languages.</t> | |||
<section anchor="audio-selection"><name>Audio Selection</name> | <section anchor="audio-selection"><name>Audio Selection</name> | |||
<t>Example track set:</t> | <t>Example track set:</t> | |||
<table anchor="audioTrackSelection"><name>Audio Tracks for default selection</na me> | <table anchor="audioTrackSelection"><name>Audio Tracks for Default Selection</na me> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th>No.</th> | <th>No.</th> | |||
<th>Type</th> | <th>Type</th> | |||
<th>Lang</th> | <th>Lang</th> | |||
<th>Layout</th> | <th>Layout</th> | |||
<th>Original</th> | <th>Original</th> | |||
<th>Default</th> | <th>Default</th> | |||
<th>Other flags</th> | <th>Other Flags</th> | |||
<th>Name</th> | <th>Name</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td>1</td> | <td>1</td> | |||
<td>Video</td> | <td>Video</td> | |||
<td>und</td> | <td>und</td> | |||
<td>N/A</td> | <td>N/A</td> | |||
skipping to change at line 6548 ¶ | skipping to change at line 7240 ¶ | |||
<td></td> | <td></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>4</td> | <td>4</td> | |||
<td>Audio</td> | <td>Audio</td> | |||
<td>eng</td> | <td>eng</td> | |||
<td>2.0</td> | <td>2.0</td> | |||
<td>1</td> | <td>1</td> | |||
<td>0</td> | <td>0</td> | |||
<td>Visual-impaired</td> | <td>Visual-Impaired</td> | |||
<td>Descriptive audio</td> | <td>Descriptive audio</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>5</td> | <td>5</td> | |||
<td>Audio</td> | <td>Audio</td> | |||
<td>esp</td> | <td>esp</td> | |||
<td>5.1</td> | <td>5.1</td> | |||
<td>0</td> | <td>0</td> | |||
<td>1</td> | <td>1</td> | |||
skipping to change at line 6570 ¶ | skipping to change at line 7262 ¶ | |||
<td></td> | <td></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>6</td> | <td>6</td> | |||
<td>Audio</td> | <td>Audio</td> | |||
<td>esp</td> | <td>esp</td> | |||
<td>2.0</td> | <td>2.0</td> | |||
<td>0</td> | <td>0</td> | |||
<td>0</td> | <td>0</td> | |||
<td>Visual-impaired</td> | <td>Visual-Impaired</td> | |||
<td>Descriptive audio</td> | <td>Descriptive audio</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>7</td> | <td>7</td> | |||
<td>Audio</td> | <td>Audio</td> | |||
<td>eng</td> | <td>eng</td> | |||
<td>2.0</td> | <td>2.0</td> | |||
<td>1</td> | <td>1</td> | |||
<td>0</td> | <td>0</td> | |||
skipping to change at line 6596 ¶ | skipping to change at line 7288 ¶ | |||
<td>8</td> | <td>8</td> | |||
<td>Audio</td> | <td>Audio</td> | |||
<td>eng</td> | <td>eng</td> | |||
<td>2.0</td> | <td>2.0</td> | |||
<td>1</td> | <td>1</td> | |||
<td>0</td> | <td>0</td> | |||
<td>None</td> | <td>None</td> | |||
<td>Karaoke</td> | <td>Karaoke</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>Here we have a file with 7 audio tracks, of which 5 are in English an d 2 are in Spanish.</t> | </table><t>The table above shows a file with seven audio tracks -- five in Engli sh and two in Spanish.</t> | |||
<t>The English tracks all have the Original flag, indicating that English is the original content language.</t> | <t>The English tracks all have the Original flag, indicating that English is the original content language.</t> | |||
<t>Generally the player will first consider the track languages: if the player h | <t>Generally, the player will first consider the track languages. If the player | |||
as an option to prefer | has an option to prefer | |||
original-language audio and the user has enabled it, then it should prefer one o | original-language audio and the user has enabled it, then it should prefer one o | |||
f the Original-flagged tracks. | f the tracks with the Original flag. | |||
<!-- [rfced] Please review "If configured to specifically prefer" here. What | ||||
is configured? | ||||
Original: | ||||
If configured to specifically prefer audio tracks in English or | ||||
Spanish, the player should select one of the tracks in the corresponding | ||||
language. | ||||
Perhaps: | ||||
If the user has configured to specifically prefer audio | ||||
tracks in English or Spanish, the player should select one of the tracks in | ||||
the corresponding language. | ||||
--> | ||||
If configured to specifically prefer audio tracks in English or Spanish, the pla yer should select one of | If configured to specifically prefer audio tracks in English or Spanish, the pla yer should select one of | |||
the tracks in the corresponding language. The player may also wish to prefer an | the tracks in the corresponding language. The player may also wish to prefer a t | |||
Original-flagged track | rack with the Original flag | |||
if no tracks matching any of the user's explicitly-preferred languages are avail | if no tracks matching any of the user's explicitly preferred languages are avail | |||
able.</t> | able.</t> | |||
<t>Two of the tracks have the Visual-impaired flag. If the player has been confi | <t>Two of the tracks have the Visual-Impaired flag. If the player has been confi | |||
gured to prefer such tracks, | gured to prefer such tracks, | |||
it should select one; otherwise, it should avoid them if possible.</t> | it should select one; otherwise, it should avoid them if possible.</t> | |||
<t>If selecting an English track, when other settings have left multiple possibl e options, | <t>If selecting an English track, when other settings have left multiple possibl e options, | |||
it may be useful to exclude the tracks that lack the Default flag: here, one pro | it may be useful to exclude the tracks that lack the Default flag. Here, one pro | |||
vides descriptive service for | vides descriptive service for | |||
the visually impaired (which has its own flag and may be automatically selected | the visually impaired (which has its own flag and may be automatically selected | |||
by user configuration, | by user configuration | |||
but is unsuitable for users with default-configured players), one is a commentar y track | but is unsuitable for users with default-configured players), one is a commentar y track | |||
(which has its own flag, which the player may or may not have specialized handli | (which has its own flag and the player may or may not have specialized handling | |||
ng for), | for), | |||
and the last contains karaoke versions of the music that plays during the film, | and the last contains karaoke versions of the music that plays during the film ( | |||
which is an unusual | which is an unusual | |||
specialized audio service that Matroska has no built-in support for indicating, so it's indicated | specialized audio service that Matroska has no built-in support for indicating, so it's indicated | |||
in the track name instead. By not setting the Default flag on these specialized tracks, the file's author | in the track name instead). By not setting the Default flag on these specialized tracks, the file's author | |||
hints that they should not be automatically selected by a default-configured pla yer.</t> | hints that they should not be automatically selected by a default-configured pla yer.</t> | |||
<t>Having narrowed its choices down, our example player now may have to select b etween tracks 2 and 3. | <t>Having narrowed its choices down, the example player now may have to select b etween tracks 2 and 3. | |||
The only difference between these tracks is their channel layouts: 2 is 5.1 surr ound, while 3 is stereo. | The only difference between these tracks is their channel layouts: 2 is 5.1 surr ound, while 3 is stereo. | |||
If the player is aware that the output device is a pair of headphones or stereo speakers, it may wish | If the player is aware that the output device is a pair of headphones or stereo speakers, it may wish | |||
to prefer the stereo mix automatically. On the other hand, if it knows that the device is a surround system, | to prefer the stereo mix automatically. On the other hand, if it knows that the device is a surround system, | |||
it may wish to prefer the surround mix.</t> | it may wish to prefer the surround mix.</t> | |||
<t>If the player finishes analyzing all of the available audio tracks and finds that multiple seems equally | <t>If the player finishes analyzing all of the available audio tracks and finds that more than one seem equally | |||
and maximally preferable, it <bcp14>SHOULD</bcp14> default to the first of the g roup.</t> | and maximally preferable, it <bcp14>SHOULD</bcp14> default to the first of the g roup.</t> | |||
</section> | </section> | |||
<section anchor="subtitle-selection"><name>Subtitle selection</name> | <section anchor="subtitle-selection"><name>Subtitle Selection</name> | |||
<t>Example track set:</t> | <t>Example track set:</t> | |||
<table anchor="subtitleTrackSelection"><name>Subtitle Tracks for default selecti on</name> | <table anchor="subtitleTrackSelection"><name>Subtitle Tracks for Default Selecti on</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th>No.</th> | <th>No.</th> | |||
<th>Type</th> | <th>Type</th> | |||
<th>Lang</th> | <th>Lang</th> | |||
<th>Original</th> | <th>Original</th> | |||
<th>Default</th> | <th>Default</th> | |||
<th>Forced</th> | <th>Forced</th> | |||
<th>Other flags</th> | <th>Other flags</th> | |||
<th>Name</th> | <th>Name</th> | |||
skipping to change at line 6691 ¶ | skipping to change at line 7396 ¶ | |||
<td></td> | <td></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>5</td> | <td>5</td> | |||
<td>Subtitles</td> | <td>Subtitles</td> | |||
<td>fra</td> | <td>fra</td> | |||
<td>1</td> | <td>1</td> | |||
<td>0</td> | <td>0</td> | |||
<td>0</td> | <td>0</td> | |||
<td>Hearing-impaired</td> | <td>Hearing-Impaired</td> | |||
<td>Captions for the hearing-impaired</td> | <td>Captions for the hearing-impaired</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>6</td> | <td>6</td> | |||
<td>Subtitles</td> | <td>Subtitles</td> | |||
<td>por</td> | <td>por</td> | |||
<td>0</td> | <td>0</td> | |||
<td>1</td> | <td>1</td> | |||
<td>0</td> | <td>0</td> | |||
skipping to change at line 6724 ¶ | skipping to change at line 7429 ¶ | |||
<td>Signs</td> | <td>Signs</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>8</td> | <td>8</td> | |||
<td>Subtitles</td> | <td>Subtitles</td> | |||
<td>por</td> | <td>por</td> | |||
<td>0</td> | <td>0</td> | |||
<td>0</td> | <td>0</td> | |||
<td>0</td> | <td>0</td> | |||
<td>Hearing-impaired</td> | <td>Hearing-Impaired</td> | |||
<td>SDH</td> | <td>SDH</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>Here we have 2 audio tracks and 5 subtitle tracks. As we can see, Fre | </table><t>The table above shows two audio tracks and five subtitle tracks. As w | |||
nch is the original language.</t> | e can see, French is the original language.</t> | |||
<t>We'll start by discussing the case where the user prefers French (or Original | <t>We'll start by discussing the case where the user prefers French (or original | |||
-language) | -language) | |||
audio (or has explicitly selected the French audio track), and also prefers Fren | audio (or has explicitly selected the French audio track) and also prefers Frenc | |||
ch subtitles.</t> | h subtitles.</t> | |||
<t>In this case, if the player isn't configured to display captions when the aud io matches their | <t>In this case, if the player isn't configured to display captions when the aud io matches their | |||
preferred subtitle languages, the player doesn't need to select a subtitle track at all.</t> | preferred subtitle languages, the player doesn't need to select a subtitle track at all.</t> | |||
<t>If the user <em>has</em> indicated that they want captions to be displayed, t he selection simply | <t>If the user <em>has</em> indicated that they want captions to be displayed, t he selection simply | |||
comes down to whether Hearing-impaired subtitles are preferred.</t> | comes down to whether hearing-impaired subtitles are preferred.</t> | |||
<t>The situation for a user who prefers Portuguese subtitles starts out somewhat analogous. | <t>The situation for a user who prefers Portuguese subtitles starts out somewhat analogous. | |||
If they select the original French audio (either by explicit audio language pref erence, | If they select the original French audio (either by explicit audio language pref erence, | |||
preference for Original-language tracks, or by explicitly selecting that track), then the | preference for original-language tracks, or explicitly selecting that track), th en the | |||
selection once again comes down to the hearing-impaired preference.</t> | selection once again comes down to the hearing-impaired preference.</t> | |||
<t>However, the case where the Portuguese audio track is selected has an importa nt catch: | <t>However, the case where the Portuguese audio track is selected has an importa nt catch: | |||
a Forced track in Portuguese is present. This may contain translations of onscre | a Forced track in Portuguese is present. This may contain translations of on-scr | |||
en text | een text | |||
from the video track, or of portions of the audio that are not translated (music | from the video track or of portions of the audio that are not translated (music, | |||
, for instance). | for instance). | |||
This means that even if the user's preferences wouldn't normally call for captio ns here, | This means that even if the user's preferences wouldn't normally call for captio ns here, | |||
the Forced track should be selected nonetheless, rather than selecting no track at all. | the Forced track should be selected nonetheless, rather than selecting no track at all. | |||
On the other hand, if the user's preferences <em>do</em> call for captions, the non-Forced tracks | On the other hand, if the user's preferences <em>do</em> call for captions, the non-Forced tracks | |||
should be preferred, as the Forced track will not contain captioning for the dia logue.</t> | should be preferred, as the Forced track will not contain captioning for the dia logue.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="chapters"><name>Chapters</name> | <section anchor="chapters"><name>Chapters</name> | |||
<t>The Matroska Chapters system can have multiple <tt>Editions</tt> and each <tt | <t>The Matroska Chapters system can have multiple <tt>Editions</tt>, and each <t | |||
>Edition</tt> can consist of | t>Edition</tt> can consist of | |||
<tt>Simple Chapters</tt> where a chapter start time is used as marker in the tim | <tt>Simple Chapters</tt> where a chapter start time is used as a marker in the t | |||
eline only. An | imeline only. An | |||
<tt>Edition</tt> can be more complex with <tt>Ordered Chapters</tt> where a chap | <tt>Edition</tt> can be more complex with <tt>Ordered Chapters</tt> where a chap | |||
ter end time stamp is additionally | ter end timestamp is additionally | |||
used or much more complex with <tt>Linked Chapters</tt>. The Matroska Chapters s ystem can also have a menu | used or much more complex with <tt>Linked Chapters</tt>. The Matroska Chapters s ystem can also have a menu | |||
structure, borrowed from the DVD menu system <xref target="DVD-Video"></xref>, o r have its own built-in Matroska menu structure.</t> | structure borrowed from the DVD-menu system <xref target="DVD-Video"></xref> or have its own built-in Matroska menu structure.</t> | |||
<section anchor="editionentry"><name>EditionEntry</name> | <section anchor="editionentry"><name>EditionEntry</name> | |||
<t>The <tt>EditionEntry</tt> is also called an <tt>Edition</tt>. | <t>The <tt>EditionEntry</tt> is also called an <tt>Edition</tt>. | |||
An <tt>Edition</tt> contains a set of <tt>Edition</tt> flags and <bcp14>MUST</bc p14> contain at least one <tt>ChapterAtom Element</tt>. | An <tt>Edition</tt> contains a set of <tt>Edition</tt> flags and <bcp14>MUST</bc p14> contain at least one <tt>ChapterAtom Element</tt>. | |||
Chapters are always inside an <tt>Edition</tt> (or a Chapter itself part of an < tt>Edition</tt>). | Chapters are always inside an <tt>Edition</tt> (or a Chapter itself is part of a n <tt>Edition</tt>). | |||
Multiple Editions are allowed. Some of these Editions <bcp14>MAY</bcp14> be orde red and others not.</t> | Multiple Editions are allowed. Some of these Editions <bcp14>MAY</bcp14> be orde red and others not.</t> | |||
<section anchor="editionflagdefault"><name>EditionFlagDefault</name> | <section anchor="editionflagdefault"><name>EditionFlagDefault</name> | |||
<t>Only one <tt>Edition</tt> <bcp14>SHOULD</bcp14> have an <tt>EditionFlagDefaul t</tt> flag set to <tt>true</tt>.</t> | <t>Only one <tt>Edition</tt> <bcp14>SHOULD</bcp14> have an <tt>EditionFlagDefaul t</tt> flag set to <tt>true</tt>.</t> | |||
</section> | </section> | |||
<section anchor="default-edition"><name>Default Edition</name> | <section anchor="default-edition"><name>Default Edition</name> | |||
<t>The <tt>Default Edition</tt> is the <tt>Edition</tt> that a <tt>Matroska Play er</tt> <bcp14>SHOULD</bcp14> use for playback by default.</t> | <t>The <tt>Default Edition</tt> is the <tt>Edition</tt> that a <tt>Matroska Play er</tt> <bcp14>SHOULD</bcp14> use for playback by default.</t> | |||
<t>The first <tt>Edition</tt> with the <tt>EditionFlagDefault</tt> flag set to < tt>true</tt> is the <tt>Default Edition</tt>.</t> | <t>The first <tt>Edition</tt> with the <tt>EditionFlagDefault</tt> flag set to < tt>true</tt> is the <tt>Default Edition</tt>.</t> | |||
<t>When all <tt>EditionFlagDefault</tt> flags are set to <tt>false</tt>, then th e first <tt>Edition</tt> | <t>When all <tt>EditionFlagDefault</tt> flags are set to <tt>false</tt>, then th e first <tt>Edition</tt> | |||
is the <tt>Default Edition</tt>.</t> | is the <tt>Default Edition</tt>.</t> | |||
<table anchor="defaultEditionAllDefault"><name>Default edition, all default</nam e> | <table anchor="defaultEditionAllDefault"><name>Default Edition, All Default</nam e> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">Edition</th> | <th align="left">Edition</th> | |||
<th align="left">FlagDefault</th> | <th align="left">FlagDefault</th> | |||
<th align="left">Default Edition</th> | <th align="left">Default Edition</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
skipping to change at line 6799 ¶ | skipping to change at line 7504 ¶ | |||
<td align="left">true</td> | <td align="left">true</td> | |||
<td align="left"></td> | <td align="left"></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left">Edition 3</td> | <td align="left">Edition 3</td> | |||
<td align="left">true</td> | <td align="left">true</td> | |||
<td align="left"></td> | <td align="left"></td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><table anchor="defaultEditionNoDefault"><name>Default edition, no defaul t</name> | </table><table anchor="defaultEditionNoDefault"><name>Default Edition, No Defaul t</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">Edition</th> | <th align="left">Edition</th> | |||
<th align="left">FlagDefault</th> | <th align="left">FlagDefault</th> | |||
<th align="left">Default Edition</th> | <th align="left">Default Edition</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
skipping to change at line 6827 ¶ | skipping to change at line 7532 ¶ | |||
<td align="left">false</td> | <td align="left">false</td> | |||
<td align="left"></td> | <td align="left"></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left">Edition 3</td> | <td align="left">Edition 3</td> | |||
<td align="left">false</td> | <td align="left">false</td> | |||
<td align="left"></td> | <td align="left"></td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><table anchor="defaultEditionWithDefault"><name>Default edition, with de fault</name> | </table><table anchor="defaultEditionWithDefault"><name>Default Edition, With De fault</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">Edition</th> | <th align="left">Edition</th> | |||
<th align="left">FlagDefault</th> | <th align="left">FlagDefault</th> | |||
<th align="left">Default Edition</th> | <th align="left">Default Edition</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
skipping to change at line 6858 ¶ | skipping to change at line 7563 ¶ | |||
<tr> | <tr> | |||
<td align="left">Edition 3</td> | <td align="left">Edition 3</td> | |||
<td align="left">false</td> | <td align="left">false</td> | |||
<td align="left"></td> | <td align="left"></td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table></section> | |||
<section anchor="editionflagordered"><name>EditionFlagOrdered</name> | <section anchor="editionflagordered"><name>EditionFlagOrdered</name> | |||
<t>The <tt>EditionFlagOrdered Flag</tt> is a significant feature as it enables a | <t>The <tt>EditionFlagOrdered</tt> flag is a significant feature, as it enables | |||
n <tt>Edition</tt> | an <tt>Edition</tt> | |||
of <tt>Ordered Chapters</tt> which defines and arranges a virtual timeline rathe | of <tt>Ordered Chapters</tt> that defines and arranges a virtual timeline rather | |||
r than simply | than simply | |||
labeling points within the timeline. For example, with <tt>Editions</tt> of <tt> | labeling points within the timeline. For example, with <tt>Editions</tt> of <tt> | |||
Ordered Chapters</tt> | Ordered Chapters</tt>, | |||
a single <tt>Matroska file</tt> can present multiple edits of a film without dup licating content. | a single <tt>Matroska file</tt> can present multiple edits of a film without dup licating content. | |||
Alternatively, if a videotape is digitized in full, one <tt>Ordered Edition</tt> could present | Alternatively, if a videotape is digitized in full, one <tt>Ordered Edition</tt> could present | |||
the full content (including colorbars, countdown, slate, a feature presentation, and | the full content (including colorbars, countdown, slate, a feature presentation, and | |||
black frames), while another <tt>Edition</tt> of <tt>Ordered Chapters</tt> can u se <tt>Chapters</tt> that only | black frames), while another <tt>Edition</tt> of <tt>Ordered Chapters</tt> can u se <tt>Chapters</tt> that only | |||
mark the intended presentation with the colorbars and other ancillary visual inf ormation | mark the intended presentation with the colorbars and other ancillary visual inf ormation | |||
excluded. If an <tt>Edition</tt> of <tt>Ordered Chapters</tt> is enabled, then t he <tt>Matroska Player</tt> <bcp14>MUST</bcp14> | excluded. If an <tt>Edition</tt> of <tt>Ordered Chapters</tt> is enabled, then t he <tt>Matroska Player</tt> <bcp14>MUST</bcp14> | |||
play those Chapters in their stored order from the timestamp marked in the | play those Chapters in their stored order from the timestamp marked in the | |||
<tt>ChapterTimeStart Element</tt> to the timestamp marked in to <tt>ChapterTimeE nd Element</tt>.</t> | <tt>ChapterTimeStart Element</tt> to the timestamp marked in to <tt>ChapterTimeE nd Element</tt>.</t> | |||
<t>If the <tt>EditionFlagOrdered Flag</tt> evaluates to "0", <tt>Simpl | <t>If the <tt>EditionFlagOrdered</tt> flag evaluates to "0", <tt>Simple Chapters | |||
e Chapters</tt> are used and | </tt> are used and | |||
only the <tt>ChapterTimeStart</tt> of a <tt>Chapter</tt> is used as chapter mark | only the <tt>ChapterTimeStart</tt> of a <tt>Chapter</tt> is used as a chapter ma | |||
to jump to the | rk to jump to the | |||
predefined point in the timeline. With <tt>Simple Chapters</tt>, a <tt>Matroska Player</tt> <bcp14>MUST</bcp14> | predefined point in the timeline. With <tt>Simple Chapters</tt>, a <tt>Matroska Player</tt> <bcp14>MUST</bcp14> | |||
ignore certain <tt>Chapter Elements</tt>. In that case these elements are inform ational only.</t> | ignore certain <tt>Chapter Elements</tt>. In that case, these elements are infor mational only.</t> | |||
<t>The following list shows the different Chapter elements only found in <tt>Ord ered Chapters</tt>.</t> | <t>The following list shows the different Chapter elements only found in <tt>Ord ered Chapters</tt>.</t> | |||
<table anchor="orderedOnly"><name>elements only found in ordered chapters</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">Ordered Chapter elements</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left">ChapterAtom/ChapterSegmentUUID</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">ChapterAtom/ChapterSegmentEditionUID</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">ChapterAtom/ChapterTrack</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">ChapterAtom/ChapProcess</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">Info/ChapterTranslate</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">TrackEntry/TrackTranslate</td> | ||||
</tr> | ||||
</tbody> | ||||
</table><t>Furthermore, there are other EBML <tt>Elements</tt> which could be us | ||||
ed if the <tt>EditionFlagOrdered</tt> | ||||
evaluates to "1".</t> | ||||
<section anchor="ordered-edition-and-matroska-segment-linking"><name>Ordered-Edi | ||||
tion and Matroska Segment-Linking</name> | ||||
<ul> | <ul> | |||
<li><t>Hard Linking: <tt>Ordered-Chapters</tt> supersedes the <tt>Hard Linking</ | <li>ChapterAtom/ChapterSegmentUUID</li> | |||
tt>.</t> | <li>ChapterAtom/ChapterSegmentEditionUID</li> | |||
</li> | <li>ChapterAtom/ChapterTrack</li> | |||
<li><t>Medium Linking: <tt>Ordered Chapters</tt> are used in a normal way and ca | <li>ChapterAtom/ChapProcess</li> | |||
n be combined | <li>Info/ChapterTranslate</li> | |||
with the <tt>ChapterSegmentUUID</tt> element which establishes a link to another | <li>TrackEntry/TrackTranslate</li> | |||
Segment.</t> | ||||
</li> | ||||
</ul> | </ul> | |||
<t>See <xref target="linked-segments"></xref> on the Linked Segments for more in | <t>Furthermore, there are other EBML <tt>Elements</tt> that could be used if the | |||
formation | <tt>EditionFlagOrdered</tt> | |||
evaluates to "1".</t> | ||||
<section anchor="ordered-edition-and-matroska-segment-linking"><name>Ordered-Edi | ||||
tion and Matroska Segment Linking</name> | ||||
<dl> | ||||
<dt>Hard Linking:</dt><dd><tt>Ordered Chapters</tt> supersede the <tt>Hard Linki | ||||
ng</tt>.</dd> | ||||
<dt>Medium Linking:</dt><dd><tt>Ordered Chapters</tt> are used in a normal way a | ||||
nd can be combined | ||||
with the <tt>ChapterSegmentUUID</tt> element, which establishes a link to anothe | ||||
r Segment.</dd> | ||||
</dl> | ||||
<t>See <xref target="linked-segments"></xref> on Linked Segments for more inform | ||||
ation | ||||
about <tt>Hard Linking</tt> and <tt>Medium Linking</tt>.</t> | about <tt>Hard Linking</tt> and <tt>Medium Linking</tt>.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="chapteratom"><name>ChapterAtom</name> | <section anchor="chapteratom"><name>ChapterAtom</name> | |||
<t>The <tt>ChapterAtom</tt> is also called a <tt>Chapter</tt>.</t> | <t>The <tt>ChapterAtom</tt> is also called a <tt>Chapter</tt>.</t> | |||
<section anchor="chaptertimestart"><name>ChapterTimeStart</name> | <section anchor="chaptertimestart"><name>ChapterTimeStart</name> | |||
<t>The timestamp of the start of <tt>Chapter</tt> with nanosecond accuracy, not | <t><tt>ChapterTimeStart</tt> is the timestamp of the start of <tt>Chapter</tt> w | |||
scaled by TimestampScale. | ith nanosecond accuracy and is not scaled by TimestampScale. | |||
For <tt>Simple Chapters</tt> this is the position of the chapter markers in the | For <tt>Simple Chapters</tt>, this is the position of the chapter markers in the | |||
timeline.</t> | timeline.</t> | |||
</section> | </section> | |||
<section anchor="chaptertimeend"><name>ChapterTimeEnd</name> | <section anchor="chaptertimeend"><name>ChapterTimeEnd</name> | |||
<t>The timestamp of the end of <tt>Chapter</tt> with nanosecond accuracy, not sc aled by TimestampScale. | <t><tt>ChapterTimeEnd</tt> is the timestamp of the end of <tt>Chapter</tt> with nanosecond accuracy and is not scaled by TimestampScale. | |||
The timestamp defined by the <tt>ChapterTimeEnd</tt> is not part of the <tt>Chap ter</tt>. | The timestamp defined by the <tt>ChapterTimeEnd</tt> is not part of the <tt>Chap ter</tt>. | |||
A <tt>Matroska Player</tt> calculates the duration of this <tt>Chapter</tt> usin g the difference between the | A <tt>Matroska Player</tt> calculates the duration of this <tt>Chapter</tt> usin g the difference between the | |||
<tt>ChapterTimeEnd</tt> and <tt>ChapterTimeStart</tt>. | <tt>ChapterTimeEnd</tt> and <tt>ChapterTimeStart</tt>. | |||
The end timestamp <bcp14>MUST</bcp14> be greater than or equal to the start time stamp.</t> | The end timestamp <bcp14>MUST</bcp14> be greater than or equal to the start time stamp.</t> | |||
<t>When the <tt>ChapterTimeEnd</tt> timestamp is equal to the <tt>ChapterTimeSta rt</tt> timestamp, | <t>When the <tt>ChapterTimeEnd</tt> timestamp is equal to the <tt>ChapterTimeSta rt</tt> timestamp, | |||
the timestamps is included in the <tt>Chapter</tt>. It can be useful to put mark ers in | the timestamp is included in the <tt>Chapter</tt>. It can be useful to put marke rs in | |||
a file or add chapter commands with ordered chapter commands without having to p lay anything; | a file or add chapter commands with ordered chapter commands without having to p lay anything; | |||
see <xref target="chapprocess-element"></xref>.</t> | see <xref target="chapprocess-element"></xref>.</t> | |||
<table anchor="ChapterTimeEndUsage"><name>ChapterTimeEnd usage possibilities</na | <table anchor="ChapterTimeEndUsage"><name>ChapterTimeEnd Usage | |||
me> | Possibilities</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">Chapter</th> | <th align="left">Chapter</th> | |||
<th align="left">Start timestamp</th> | <th align="left">Start timestamp</th> | |||
<th align="left">End timestamp</th> | <th align="left">End timestamp</th> | |||
<th align="left">Duration</th> | <th align="left">Duration</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
skipping to change at line 6985 ¶ | skipping to change at line 7666 ¶ | |||
<td align="left">Chapter 4</td> | <td align="left">Chapter 4</td> | |||
<td align="left">9000000000</td> | <td align="left">9000000000</td> | |||
<td align="left">8000000000</td> | <td align="left">8000000000</td> | |||
<td align="left">Invalid (-1000000000)</td> | <td align="left">Invalid (-1000000000)</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table></section> | |||
<section anchor="nested-chapters"><name>Nested Chapters</name> | <section anchor="nested-chapters"><name>Nested Chapters</name> | |||
<t>A <tt>ChapterAtom</tt> element can contain other <tt>ChapterAtom</tt> element s. | <t>A <tt>ChapterAtom</tt> element can contain other <tt>ChapterAtom</tt> element s. | |||
That element is a <tt>Parent Chapter</tt> and the <tt>ChapterAtom</tt> elements it contains are <tt>Nested Chapters</tt>.</t> | That element is a <tt>Parent Chapter</tt>, and the <tt>ChapterAtom</tt> elements it contains are <tt>Nested Chapters</tt>.</t> | |||
<t>Nested Chapters can be useful to tag small parts of a Segment that already ha ve tags or | <t>Nested Chapters can be useful to tag small parts of a Segment that already ha ve tags or | |||
add Chapter Codec commands on smaller parts of a Segment that already have Chapt er Codec commands.</t> | add Chapter Codec commands on smaller parts of a Segment that already have Chapt er Codec commands.</t> | |||
<t>The <tt>ChapterTimeStart</tt> of a <tt>Nested Chapter</tt> <bcp14>MUST</bcp14 > be greater than or equal to the <tt>ChapterTimeStart</tt> its <tt>Parent Chapt er</tt>.</t> | <t>The <tt>ChapterTimeStart</tt> of a <tt>Nested Chapter</tt> <bcp14>MUST</bcp14 > be greater than or equal to the <tt>ChapterTimeStart</tt> of its <tt>Parent Ch apter</tt>.</t> | |||
<t>If the <tt>Parent Chapter</tt> of a <tt>Nested Chapter</tt> has a <tt>Chapter TimeEnd</tt>, the <tt>ChapterTimeStart</tt> of that <tt>Nested Chapter</tt> | <t>If the <tt>Parent Chapter</tt> of a <tt>Nested Chapter</tt> has a <tt>Chapter TimeEnd</tt>, the <tt>ChapterTimeStart</tt> of that <tt>Nested Chapter</tt> | |||
<bcp14>MUST</bcp14> be smaller than or equal to the <tt>ChapterTimeEnd</tt> of t he <tt>Parent Chapter</tt>.</t> | <bcp14>MUST</bcp14> be smaller than or equal to the <tt>ChapterTimeEnd</tt> of t he <tt>Parent Chapter</tt>.</t> | |||
</section> | </section> | |||
<section anchor="nested-chapters-in-ordered-chapters"><name>Nested Chapters in O rdered Chapters</name> | <section anchor="nested-chapters-in-ordered-chapters"><name>Nested Chapters in O rdered Chapters</name> | |||
<t>The <tt>ChapterTimeEnd</tt> of the lowest level of <tt>Nested Chapters</tt> < bcp14>MUST</bcp14> be set for Ordered Chapters.</t> | <t>The <tt>ChapterTimeEnd</tt> of the lowest level of <tt>Nested Chapters</tt> < bcp14>MUST</bcp14> be set for Ordered Chapters.</t> | |||
<t>When used with Ordered Chapters, the <tt>ChapterTimeEnd</tt> value of a <tt>P arent Chapter</tt> is useless for playback | <t>When used with Ordered Chapters, the <tt>ChapterTimeEnd</tt> value of a <tt>P arent Chapter</tt> is useless for playback, | |||
as the proper playback sections are described in its <tt>Nested Chapters</tt>. | as the proper playback sections are described in its <tt>Nested Chapters</tt>. | |||
The <tt>ChapterTimeEnd</tt> <bcp14>SHOULD NOT</bcp14> be set in <tt>Parent Chapt ers</tt> and <bcp14>MUST</bcp14> be ignored for playback.</t> | The <tt>ChapterTimeEnd</tt> <bcp14>SHOULD NOT</bcp14> be set in <tt>Parent Chapt ers</tt> and <bcp14>MUST</bcp14> be ignored for playback.</t> | |||
</section> | </section> | |||
<section anchor="chapterflaghidden"><name>ChapterFlagHidden</name> | <section anchor="chapterflaghidden"><name>ChapterFlagHidden</name> | |||
<!-- [rfced] Please review "Chapter ChapterFlagHidden flag" and "Parent | ||||
Chapter ChapterFlagHidden flag". Will these be clear for readers? Would | ||||
updating to use a possessive be helpful? | ||||
Original: | ||||
Each Chapter ChapterFlagHidden flag works independently of parent | ||||
chapters. A Nested Chapter with a ChapterFlagHidden that evaluates | ||||
to "0" remains visible in the user interface even if the Parent | ||||
Chapter ChapterFlagHidden flag is set to "1". | ||||
Perhaps: | ||||
Each Chapter's ChapterFlagHidden flag works independently of Parent | ||||
Chapters. A Nested Chapter with a ChapterFlagHidden flag that evaluates to | ||||
"0" remains visible in the user interface even if the Parent Chapter's | ||||
ChapterFlagHidden flag is set to "1". | ||||
--> | ||||
<t>Each Chapter | <t>Each Chapter | |||
<tt>ChapterFlagHidden</tt> flag works independently of parent chapters. | <tt>ChapterFlagHidden</tt> flag works independently of Parent Chapters. | |||
A <tt>Nested Chapter</tt> with a <tt>ChapterFlagHidden</tt> that evaluates to &q | A <tt>Nested Chapter</tt> with a <tt>ChapterFlagHidden</tt> flag that evaluates | |||
uot;0" remains visible in the user interface even if the | to "0" remains visible in the user interface even if the | |||
<tt>Parent Chapter</tt> <tt>ChapterFlagHidden</tt> flag is set to "1". | <tt>Parent Chapter</tt> <tt>ChapterFlagHidden</tt> flag is set to "1".</t> | |||
</t> | <table anchor="ChapterFlagHiddenNested"><name>ChapterFlagHidden Nested Visibilit | |||
<table anchor="ChapterFlagHiddenNested"><name>ChapterFlagHidden nested visibilit | y</name> | |||
y</name> | ||||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">Chapter + Nested Chapter</th> | <th align="left">Chapter + Nested Chapter</th> | |||
<th align="left">ChapterFlagHidden</th> | <th align="left">ChapterFlagHidden</th> | |||
<th align="left">visible</th> | <th align="left">visible</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
skipping to change at line 7054 ¶ | skipping to change at line 7751 ¶ | |||
<tr> | <tr> | |||
<td align="left">Nested Chapter 2.2</td> | <td align="left">Nested Chapter 2.2</td> | |||
<td align="left">1</td> | <td align="left">1</td> | |||
<td align="left">no</td> | <td align="left">no</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table></section> | |||
</section> | </section> | |||
<section anchor="menu-features"><name>Menu features</name> | <section anchor="menu-features"><name>Menu Features</name> | |||
<t>The menu features are handled like a <tt>chapter codec</tt>. That means each codec has a type, | <t>The menu features are handled like a <tt>chapter codec</tt>. That means each codec has a type, | |||
some private data and some data in the chapters.</t> | some private data, and some data in the chapters.</t> | |||
<t>The type of the menu system is defined by the <tt>ChapProcessCodecID</tt> par | <t>The type of the menu system is defined by the <tt>ChapProcessCodecID</tt> par | |||
ameter. For now, | ameter. | |||
only 2 values are supported : 0 matroska script, 1 menu borrowed from the DVD <x | ||||
ref target="DVD-Video"></xref>. | <!-- [rfced] Will readers understand the use of "idem" here? Would it be | |||
The private data depend on the type of menu system (stored in <tt>ChapProcessPri | helpful to update as follows (or something similar)? | |||
vate</tt>), | ||||
idem for the data in the chapters (stored in <tt>ChapProcessData</tt>).</t> | Original: | |||
<t>The menu system, as well as Chapter Codecs in general, can do actions on the | The private data depend on | |||
<tt>Matroska Player</tt> | the type of menu system (stored in ChapProcessPrivate), idem for the | |||
like jumping to another Chapter or Edition, selecting different tracks and possi | data in the chapters (stored in ChapProcessData). | |||
bly more. | ||||
The scope of all the possibilities of Chapter Codecs is not covered in this docu | Perhaps: | |||
ment as it | The private data depend on | |||
the type of menu system (stored in ChapProcessPrivate), which is the same for | ||||
the | ||||
data in the chapters (stored in ChapProcessData). | ||||
Or: | ||||
The private data depend on | ||||
the type of menu system (stored in ChapProcessPrivate); the same is true for | ||||
the | ||||
data in the chapters (stored in ChapProcessData). | ||||
--> | ||||
For now, only two values are supported: 0 (Matroska Script) and 1 (menu borrowed | ||||
from the DVD <xref target="DVD-Video"></xref>). | ||||
The private data depend on the type of menu system (stored in <tt>ChapProcessPri | ||||
vate</tt>), idem for the data in the chapters (stored in <tt>ChapProcessData</tt | ||||
>).</t> | ||||
<t>The menu system, as well as Chapter Codecs in general, can perform actions on | ||||
the <tt>Matroska Player</tt>, such as jumping to another Chapter or Edition, se | ||||
lecting different tracks, and possibly more. | ||||
The scope of all the possibilities of Chapter Codecs is not covered in this docu | ||||
ment, as it | ||||
depends on the Chapter Codec features and its integration in a <tt>Matroska Play er</tt>.</t> | depends on the Chapter Codec features and its integration in a <tt>Matroska Play er</tt>.</t> | |||
</section> | </section> | |||
<section anchor="physical-types"><name>Physical Types</name> | <section anchor="physical-types"><name>Physical Types</name> | |||
<t>Each level can have different meanings for audio and video. The <tt>ORIGINAL_ MEDIA_TYPE</tt> tag <xref target="MatroskaTags"></xref> can be used to | <t>Each level can have different meanings for audio and video. The <tt>ORIGINAL_ MEDIA_TYPE</tt> tag <xref target="I-D.ietf-cellar-tags"></xref> can be used to | |||
specify a string for ChapterPhysicalEquiv = 60. Here is the list of possible lev els for both audio and video:</t> | specify a string for ChapterPhysicalEquiv = 60. Here is the list of possible lev els for both audio and video:</t> | |||
<table anchor="ChapterPhysicalEquivMeaning"><name>ChapterPhysicalEquiv meaning p er track type</name> | <table anchor="ChapterPhysicalEquivMeaning"><name>ChapterPhysicalEquiv Meaning p er Track Type</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="left">Value</th> | <th align="left">Value</th> | |||
<th align="left">Audio</th> | <th align="left">Audio</th> | |||
<th align="left">Video</th> | <th align="left">Video</th> | |||
<th align="left">Comment</th> | <th align="left">Comment</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="left">70</td> | <td align="left">70</td> | |||
<td align="left">SET / PACKAGE</td> | <td align="left">SET / PACKAGE</td> | |||
<td align="left">SET / PACKAGE</td> | <td align="left">SET / PACKAGE</td> | |||
<td align="left">the collection of different media</td> | <td align="left">the collection of different media</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left">60</td> | <td align="left">60</td> | |||
<td align="left">CD / 12" / 10" / 7" / TAPE / MINIDISC / DAT</td> | <td align="left">CD / 12" / 10" / 7" / TAPE / MINIDISC / DAT</td> | |||
<td align="left">DVD / VHS / LASERDISC</td> | <td align="left">DVD / VHS / LASERDISC</td> | |||
<td align="left">the physical medium like a CD or a DVD</td> | <td align="left">the physical medium like a CD or a DVD</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left">50</td> | <td align="left">50</td> | |||
<td align="left">SIDE</td> | <td align="left">SIDE</td> | |||
<td align="left">SIDE</td> | <td align="left">SIDE</td> | |||
<td align="left">when the original medium (LP/DVD) has different sides</td> | <td align="left">when the original medium (LP/DVD) has different sides</td> | |||
</tr> | </tr> | |||
skipping to change at line 7134 ¶ | skipping to change at line 7849 ¶ | |||
<td align="left">10</td> | <td align="left">10</td> | |||
<td align="left">INDEX</td> | <td align="left">INDEX</td> | |||
<td align="left">-</td> | <td align="left">-</td> | |||
<td align="left">the first logical level of the side/medium</td> | <td align="left">the first logical level of the side/medium</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table></section> | |||
<section anchor="chapter-examples"><name>Chapter Examples</name> | <section anchor="chapter-examples"><name>Chapter Examples</name> | |||
<section anchor="example-1-basic-chaptering"><name>Example 1 : basic chaptering< | <section anchor="example-1-basic-chaptering"><name>Example 1: Basic Chaptering</ | |||
/name> | name> | |||
<t>In this example a movie is split in different chapters. It could also just be | <t>In this example, a movie is split in different chapters. It could also just b | |||
an | e an | |||
audio file (album) on which each track corresponds to a chapter.</t> | audio file (album) in which each track corresponds to a chapter.</t> | |||
<ul spacing="compact"> | <ul spacing="compact"> | |||
<li>00000 ms - 05000 ms : Intro</li> | <li>00000 ms - 05000 ms: Intro</li> | |||
<li>05000 ms - 25000 ms : Before the crime</li> | <li>05000 ms - 25000 ms: Before the crime</li> | |||
<li>25000 ms - 27500 ms : The crime</li> | <li>25000 ms - 27500 ms: The crime</li> | |||
<li>27500 ms - 38000 ms : The killer arrested</li> | <li>27500 ms - 38000 ms: The killer arrested</li> | |||
<li>38000 ms - 43000 ms : Credits</li> | <li>38000 ms - 43000 ms: Credits</li> | |||
</ul> | </ul> | |||
<t>This would translate in the following matroska form, with the EBML tree shown | ||||
as XML :</t> | <!-- [rfced] How may we clarify this sentence? Note that this sentence appears | |||
<figure><name>Basic Chapters Example. | twice in the document. | |||
Original: | ||||
This would translate in the following matroska form, with the EBML | ||||
tree shown as XML : | ||||
Perhaps: | ||||
This translates to Matroska form, with the EBML tree shown as follows in XML: | ||||
--> | ||||
<!-- [rfced] We see "The killer arrested" in the bulleted list below but not | ||||
in the XML following this list. The XML has "After the crime" (in both | ||||
English and French). Please review and let us know if any updates are | ||||
needed. | ||||
Current: | ||||
* 00000 ms - 05000 ms: Intro | ||||
* 05000 ms - 25000 ms: Before the crime | ||||
* 25000 ms - 27500 ms: The crime | ||||
* 27500 ms - 38000 ms: The killer arrested | ||||
* 38000 ms - 43000 ms: Credits | ||||
--> | ||||
<t>This would translate in the following Matroska form, with the EBML tree shown | ||||
as XML:</t> | ||||
<figure><name>Basic Chapters Example | ||||
</name> | </name> | |||
<sourcecode type="xml"><Chapters> | <sourcecode type="xml"><Chapters> | |||
<EditionEntry> | <EditionEntry> | |||
<EditionUID>16603393396715046047</EditionUID> | <EditionUID>16603393396715046047</EditionUID> | |||
<ChapterAtom> | <ChapterAtom> | |||
<ChapterUID>1193046</ChapterUID> | <ChapterUID>1193046</ChapterUID> | |||
<ChapterTimeStart>0</ChapterTimeStart> | <ChapterTimeStart>0</ChapterTimeStart> | |||
<ChapterTimeEnd>5000000000</ChapterTimeEnd> | <ChapterTimeEnd>5000000000</ChapterTimeEnd> | |||
<ChapterDisplay> | <ChapterDisplay> | |||
<ChapString>Intro</ChapString> | <ChapString>Intro</ChapString> | |||
skipping to change at line 7213 ¶ | skipping to change at line 7953 ¶ | |||
<ChapString>Generique</ChapString> | <ChapString>Generique</ChapString> | |||
<ChapLanguage>fra</ChapLanguage> | <ChapLanguage>fra</ChapLanguage> | |||
</ChapterDisplay> | </ChapterDisplay> | |||
</ChapterAtom> | </ChapterAtom> | |||
</EditionEntry> | </EditionEntry> | |||
</Chapters> | </Chapters> | |||
</sourcecode> | </sourcecode> | |||
</figure> | </figure> | |||
</section> | </section> | |||
<section anchor="example-2-nested-chapters"><name>Example 2 : nested chapters</n | <section anchor="example-2-nested-chapters"><name>Example 2: Nested Chapters</na | |||
ame> | me> | |||
<t>In this example an (existing) album is split into different chapters, and one | <t>In this example, an (existing) album is split into different chapters, and on | |||
e | ||||
of them contains another splitting.</t> | of them contains another splitting.</t> | |||
<section anchor="the-micronauts-bleep-to-bleep"><name>The Micronauts "Bleep To Bleep"</name> | <section anchor="the-micronauts-bleep-to-bleep"><name>The Micronauts "Bleep To B leep"</name> | |||
<ul spacing="compact"> | <ul spacing="compact"> | |||
<li><t>00:00 - 12:28 : Baby Wants To Bleep/Rock</t> | <li><t>00:00 - 12:28: Baby wants to Bleep/Rock</t> | |||
<ul spacing="compact"> | <ul spacing="compact"> | |||
<li>00:00 - 04:38 : Baby wants to bleep (pt.1)</li> | <li>00:00 - 04:38: Baby wants to bleep (pt.1)</li> | |||
<li>04:38 - 07:12 : Baby wants to rock</li> | <li>04:38 - 07:12: Baby wants to rock</li> | |||
<li>07:12 - 10:33 : Baby wants to bleep (pt.2)</li> | <li>07:12 - 10:33: Baby wants to bleep (pt.2)</li> | |||
<li>10:33 - 12:28 : Baby wants to bleep (pt.3)</li> | <li>10:33 - 12:28: Baby wants to bleep (pt.3)</li> | |||
</ul></li> | </ul></li> | |||
<li>12:30 - 19:38 : Bleeper_O+2</li> | <li>12:30 - 19:38: Bleeper_O+2</li> | |||
<li>19:40 - 22:20 : Baby wants to bleep (pt.4)</li> | <li>19:40 - 22:20: Baby wants to bleep (pt.4)</li> | |||
<li>22:22 - 25:18 : Bleep to bleep</li> | <li>22:22 - 25:18: Bleep to bleep</li> | |||
<li>25:20 - 33:35 : Baby wants to bleep (k)</li> | <li>25:20 - 33:35: Baby wants to bleep (k)</li> | |||
<li>33:37 - 44:28 : Bleeper</li> | <li>33:37 - 44:28: Bleeper</li> | |||
</ul> | </ul> | |||
<t>This would translate in the following matroska form, with the EBML tree shown | ||||
as XML :</t> | <t>This would translate in the following Matroska form, with the EBML tree shown | |||
<figure><name>Nested Chapters Example. | as XML:</t> | |||
<figure><name>Nested Chapters Example | ||||
</name> | </name> | |||
<sourcecode type="xml"><Chapters> | <sourcecode type="xml"><Chapters> | |||
<EditionEntry> | <EditionEntry> | |||
<EditionUID>1281690858003401414</EditionUID> | <EditionUID>1281690858003401414</EditionUID> | |||
<ChapterAtom> | <ChapterAtom> | |||
<ChapterUID>1</ChapterUID> | <ChapterUID>1</ChapterUID> | |||
<ChapterTimeStart>0</ChapterTimeStart> | <ChapterTimeStart>0</ChapterTimeStart> | |||
<ChapterTimeEnd>748000000</ChapterTimeEnd> | <ChapterTimeEnd>748000000</ChapterTimeEnd> | |||
<ChapterDisplay> | <ChapterDisplay> | |||
<ChapString>Baby wants to Bleep/Rock</ChapString> | <ChapString>Baby wants to Bleep/Rock</ChapString> | |||
skipping to change at line 7332 ¶ | skipping to change at line 8072 ¶ | |||
</sourcecode> | </sourcecode> | |||
</figure> | </figure> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="attachments-1"><name>Attachments</name> | <section anchor="attachments-1"><name>Attachments</name> | |||
<t>Matroska supports storage of related files and data in the <tt>Attachments El ement</tt> | <t>Matroska supports storage of related files and data in the <tt>Attachments El ement</tt> | |||
(a <tt>Top-Level Element</tt>). <tt>Attachment Elements</tt> can be used to stor e related cover art, | (a <tt>Top-Level Element</tt>). <tt>Attachment Elements</tt> can be used to stor e related cover art, | |||
font files, transcripts, reports, error recovery files, picture, or text-based a nnotations, | font files, transcripts, reports, error recovery files, pictures, text-based ann otations, | |||
copies of specifications, or other ancillary files related to the <tt>Segment</t t>.</t> | copies of specifications, or other ancillary files related to the <tt>Segment</t t>.</t> | |||
<t><tt>Matroska Readers</tt> <bcp14>MUST NOT</bcp14> execute files stored as <tt >Attachment Elements</tt>.</t> | <t><tt>Matroska Readers</tt> <bcp14>MUST NOT</bcp14> execute files stored as <tt >Attachment Elements</tt>.</t> | |||
<section anchor="cover-art"><name>Cover Art</name> | <section anchor="cover-art"><name>Cover Art</name> | |||
<t>This section defines a set of guidelines for the storage of cover art in Matr oska files. | <t>This section defines a set of guidelines for the storage of cover art in Matr oska files. | |||
A <tt>Matroska Reader</tt> <bcp14>MAY</bcp14> use embedded cover art to display a representational | A <tt>Matroska Reader</tt> <bcp14>MAY</bcp14> use embedded cover art to display a representational | |||
still-image depiction of the multimedia contents of the Matroska file.</t> | still-image depiction of the multimedia contents of the Matroska file.</t> | |||
<t>Only <xref target="JPEG"></xref> and PNG <xref target="RFC2083"></xref> image formats <bcp14>SHOULD</bcp14> be used for cover art pictures.</t> | <t>Only <xref target="JPEG"></xref> and PNG <xref target="RFC2083"></xref> image formats <bcp14>SHOULD</bcp14> be used for cover art pictures.</t> | |||
<t>There can be two different covers for a movie/album: a portrait style (e.g., a DVD case) | <t>There can be two different covers for a movie/album: a portrait style (e.g., a DVD case) | |||
and a landscape style (e.g., a wide banner ad).</t> | and a landscape style (e.g., a wide banner ad).</t> | |||
<t>There can be two versions of the same cover, the <tt>normal cover</tt> and th | <t>There can be two versions of the same cover: the <tt>normal cover</tt> and | |||
e <tt>small cover</tt>. | the <tt>small cover</tt>. The dimension of the <tt>normal cover</tt> | |||
The dimension of the <tt>normal cover</tt> <bcp14>SHOULD</bcp14> be 600 pixels o | <bcp14>SHOULD</bcp14> be 600 pixels on the smallest side (e.g., 960x600 for | |||
n the smallest side -- for example, | landscape, 600x800 for portrait, or 600x600 for square). The dimension of the | |||
960x600 for landscape, 600x800 for portrait, or 600x600 for square. The dimensio | <tt>small cover</tt> <bcp14>SHOULD</bcp14> be 120 pixels on the smallest side | |||
n of | (e.g., 192x120 or 120x160).</t> | |||
the <tt>small cover</tt> <bcp14>SHOULD</bcp14> be 120 pixels on the smallest sid | ||||
e -- for example, 192x120 or 120x160.</t> | ||||
<t>Versions of cover art can be differentiated by the filename, which is stored in the | <t>Versions of cover art can be differentiated by the filename, which is stored in the | |||
<tt>FileName Element</tt>. The default filename of the <tt>normal cover</tt> in square or portrait mode | <tt>FileName Element</tt>. The default filename of the <tt>normal cover</tt> in square or portrait mode | |||
is <tt>cover.(jpg|png)</tt>. When stored, the <tt>normal cover</tt> <bcp14>SHOUL D</bcp14> be the first Attachment in | is <tt>cover.(jpg|png)</tt>. When stored, the <tt>normal cover</tt> <bcp14>SHOUL D</bcp14> be the first Attachment in | |||
storage order. The <tt>small cover</tt> <bcp14>SHOULD</bcp14> be prefixed with & | storage order. The <tt>small cover</tt> <bcp14>SHOULD</bcp14> be prefixed with " | |||
quot;small_", such as | small_", such as | |||
<tt>small_cover.(jpg|png)</tt>. The landscape variant <bcp14>SHOULD</bcp14> be s | <tt>small_cover.(jpg|png)</tt>. The landscape variant <bcp14>SHOULD</bcp14> be s | |||
uffixed with "_land", | uffixed with "_land", | |||
such as <tt>cover_land.(jpg|png)</tt>. The filenames are case-sensitive.</t> | such as <tt>cover_land.(jpg|png)</tt>. The filenames are case-sensitive.</t> | |||
<t>The following table provides examples of file names for cover art in Attachme nts.</t> | <t>The following table provides examples of file names for cover art in Attachme nts.</t> | |||
<table anchor="coverartFilenames"><name>Cover Art Filenames</name> | <table anchor="coverartFilenames"><name>Cover Art Filenames</name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th>FileName</th> | <th>File Name</th> | |||
<th>Image Orientation</th> | <th>Image Orientation</th> | |||
<th>Pixel Length of Smallest Side</th> | <th>Pixel Length of Smallest Side</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td>cover.jpg</td> | <td>cover.jpg</td> | |||
<td>Portrait or square</td> | <td>Portrait or square</td> | |||
<td>600</td> | <td>600</td> | |||
skipping to change at line 7390 ¶ | skipping to change at line 8132 ¶ | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td>small_cover_land.jpg</td> | <td>small_cover_land.jpg</td> | |||
<td>Landscape</td> | <td>Landscape</td> | |||
<td>120</td> | <td>120</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table></section> | |||
<section anchor="font-files"><name>Font files</name> | <section anchor="font-files"><name>Font Files</name> | |||
<t>Font files <bcp14>MAY</bcp14> be added to a Matroska file as Attachments so t hat the font file may be used | <t>Font files <bcp14>MAY</bcp14> be added to a Matroska file as Attachments so t hat the font file may be used | |||
to display an associated subtitle track. This allows the presentation of a Matro ska file to be | to display an associated subtitle track. This allows the presentation of a Matro ska file to be | |||
consistent in various environments where the needed fonts might not be available on the local system.</t> | consistent in various environments where the needed fonts might not be available on the local system.</t> | |||
<t>Depending on the font format in question, each font file can contain multiple font variants. | <t>Depending on the font format in question, each font file can contain multiple font variants. | |||
Each font variant has a name which will be referred to as Font Name from now on. | Each font variant has a name that will be referred to as Font Name from now on. | |||
This Font Name can be different from the Attachment's <tt>FileName</tt>, even wh en disregarding the extension. | This Font Name can be different from the Attachment's <tt>FileName</tt>, even wh en disregarding the extension. | |||
In order to select a font for display, a Matroska player <bcp14>SHOULD</bcp14> c onsider both the Font Name | In order to select a font for display, a Matroska Player <bcp14>SHOULD</bcp14> c onsider both the Font Name | |||
and the base name of the Attachment's FileName, preferring the former when there are multiple matches.</t> | and the base name of the Attachment's FileName, preferring the former when there are multiple matches.</t> | |||
<t>Subtitle codecs, such as SubStation Alpha (SSA/ASS), usually refer to a font | ||||
by its Font Name, not | <!-- [rfced] FYI - We updated "SubStation Alpha (SSA/ASS)" as follows. Please | |||
by its filename. | let us know any concerns. | |||
If none of the Attachments are a match for the Font Name, the Matroska player <b | ||||
cp14>SHOULD</bcp14> | Original: | |||
Subtitle codecs, such as SubStation Alpha (SSA/ASS), usually refer to | ||||
a font by its Font Name, not by its filename. | ||||
Perhaps: | ||||
Subtitle codecs, such as SubStation Alpha (SSA) and Advanced SubStation | ||||
Alpha (ASS), usually refer to a font by its Font Name, not by its filename. | ||||
--> | ||||
<t>Subtitle codecs, such as SubStation Alpha (SSA) and Advanced SubStation Alpha | ||||
(ASS), usually refer to a font by its Font Name, not by its filename. | ||||
If none of the Attachments are a match for the Font Name, the Matroska Player <b | ||||
cp14>SHOULD</bcp14> | ||||
attempt to find a system font whose Font Name matches the one used in the subtit le track.</t> | attempt to find a system font whose Font Name matches the one used in the subtit le track.</t> | |||
<t>Since loading fonts temporarily can take a while, a Matroska player usually | <t>Since loading fonts temporarily can take a while, a Matroska Player usually | |||
loads or installs all the fonts found in attachments so they are ready to be use d during playback. | loads or installs all the fonts found in attachments so they are ready to be use d during playback. | |||
Failure to use the font attachment might result in incorrect rendering of the su btitles.</t> | Failure to use the font attachment might result in incorrect rendering of the su btitles.</t> | |||
<t>If a selected subtitle track has some <tt>AttachmentLink</tt> elements, the p layer <bcp14>MAY</bcp14> restrict its font rendering to use only these fonts.</t > | <t>If a selected subtitle track has some <tt>AttachmentLink</tt> elements, the p layer <bcp14>MAY</bcp14> restrict its font rendering to use only these fonts.</t > | |||
<t>A Matroska player <bcp14>SHOULD</bcp14> handle the official font media types from <xref target="RFC8081"></xref> when the system can handle the type:</t> | <t>A Matroska Player <bcp14>SHOULD</bcp14> handle the official font media types from <xref target="RFC8081"></xref> when the system can handle the type:</t> | |||
<ul> | <ul> | |||
<li><t><tt>font/sfnt</tt>: Generic SFNT Font Type,</t> | <li>font/sfnt: Generic SFNT Font Type</li> | |||
</li> | <li>font/ttf: TrueType Font (TTF) Font Type</li> | |||
<li><t><tt>font/ttf</tt>: TTF Font Type,</t> | <li>font/otf: OpenType Layout (OTF) Font Type</li> | |||
</li> | <li>font/collection: Collection Font Type</li> | |||
<li><t><tt>font/otf</tt>: OpenType Layout (OTF) Font Type,</t> | <li>font/woff: WOFF 1.0</li> | |||
</li> | <li>font/woff2: WOFF 2.0</li> | |||
<li><t><tt>font/collection</tt>: Collection Font Type,</t> | ||||
</li> | ||||
<li><t><tt>font/woff</tt>: WOFF 1.0,</t> | ||||
</li> | ||||
<li><t><tt>font/woff2</tt>: WOFF 2.0.</t> | ||||
</li> | ||||
</ul> | </ul> | |||
<t>Fonts in Matroska existed long before <xref target="RFC8081"></xref>. A few u nofficial media types for fonts were used in existing files. | <t>Fonts in Matroska existed long before <xref target="RFC8081"></xref>. A few u nofficial media types for fonts were used in existing files. | |||
Therefore, it is <bcp14>RECOMMENDED</bcp14> for a Matroska player to support the following legacy media types for font attachments:</t> | Therefore, it is <bcp14>RECOMMENDED</bcp14> for a Matroska Player to support the following legacy media types for font attachments:</t> | |||
<ul> | <ul> | |||
<li><t><tt>application/x-truetype-font</tt>: Truetype fonts, equivalent to <tt>f | <li>application/x-truetype-font: TrueType fonts, equivalent to <tt>font/ttf</tt> | |||
ont/ttf</tt> and sometimes <tt>font/otf</tt>,</t> | and sometimes <tt>font/otf</tt></li> | |||
</li> | <li>application/x-font-ttf: TrueType fonts, equivalent to <tt>font/ttf</tt></li> | |||
<li><t><tt>application/x-font-ttf</tt>: TTF fonts, equivalent to <tt>font/ttf</t | <li>application/vnd.ms-opentype: OpenType Layout fonts, equivalent to <tt>font/o | |||
t>,</t> | tf</tt></li> | |||
</li> | <li>application/font-sfnt: Generic SFNT Font Type, equivalent to <tt>font/sfnt</ | |||
<li><t><tt>application/vnd.ms-opentype</tt>: OpenType Layout fonts, equivalent t | tt></li> | |||
o <tt>font/otf</tt></t> | <li>application/font-woff: WOFF 1.0, equivalent to <tt>font/woff</tt></li> | |||
</li> | ||||
<li><t><tt>application/font-sfnt</tt>: Generic SFNT Font Type, equivalent to <tt | ||||
>font/sfnt</tt></t> | ||||
</li> | ||||
<li><t><tt>application/font-woff</tt>: WOFF 1.0, equivalent to <tt>font/woff</tt | ||||
></t> | ||||
</li> | ||||
</ul> | </ul> | |||
<t>There may also be some font attachments with the <tt>application/octet-stream </tt> media type. | <t>There may also be some font attachments with the <tt>application/octet-stream </tt> media type. | |||
In that case the Matroska player <bcp14>MAY</bcp14> try to guess the font type b y checking the file extension of the <tt>AttachedFile\FileName</tt> string. | In that case, the Matroska Player <bcp14>MAY</bcp14> try to guess the font type by checking the file extension of the <tt>AttachedFile\FileName</tt> string. | |||
Common file extensions for fonts are:</t> | Common file extensions for fonts are:</t> | |||
<ul> | <ul> | |||
<li><t><tt>.ttf</tt> for Truetype fonts, equivalent to <tt>font/ttf</tt>,</t> | <li><t><tt>.ttf</tt> for TrueType fonts, equivalent to <tt>font/ttf</tt></t> | |||
</li> | </li> | |||
<li><t><tt>.otf</tt> for OpenType Layout fonts, equivalent to <tt>font/otf</tt>, </t> | <li><t><tt>.otf</tt> for OpenType Layout fonts, equivalent to <tt>font/otf</tt>< /t> | |||
</li> | </li> | |||
<li><t><tt>.ttc</tt> for Collection fonts, equivalent to <tt>font/collection</tt ></t> | <li><t><tt>.ttc</tt> for Collection fonts, equivalent to <tt>font/collection</tt ></t> | |||
</li> | </li> | |||
</ul> | </ul> | |||
<t>The file extension check <bcp14>MUST</bcp14> be case-insensitive.</t> | <t>The file extension check <bcp14>MUST</bcp14> be case-insensitive.</t> | |||
<t>Matroska writers <bcp14>SHOULD</bcp14> use a valid font media type from <xref target="RFC8081"></xref> in the <tt>AttachedFile\FileMediaType</tt> of the font attachment. | <t>Matroska Writers <bcp14>SHOULD</bcp14> use a valid font media type from <xref target="RFC8081"></xref> in the <tt>AttachedFile\FileMediaType</tt> of the font attachment. | |||
They <bcp14>MAY</bcp14> use the media types found in older files when compatibil ity with older players is necessary.</t> | They <bcp14>MAY</bcp14> use the media types found in older files when compatibil ity with older players is necessary.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="cues"><name>Cues</name> | <section anchor="cues"><name>Cues</name> | |||
<t>The <tt>Cues Element</tt> provides an index of certain <tt>Cluster Elements</ tt> to allow for optimized | <t>The <tt>Cues Element</tt> provides an index of certain <tt>Cluster Elements</ tt> to allow for optimized | |||
seeking to absolute timestamps within the <tt>Segment</tt>. The <tt>Cues Element </tt> contains one or | seeking to absolute timestamps within the <tt>Segment</tt>. The <tt>Cues Element </tt> contains one or | |||
many <tt>CuePoint Elements</tt> which each <bcp14>MUST</bcp14> reference an abso lute timestamp (via the | many <tt>CuePoint Elements</tt>, each of which <bcp14>MUST</bcp14> reference an absolute timestamp (via the | |||
<tt>CueTime Element</tt>), a <tt>Track</tt> (via the <tt>CueTrack Element</tt>), and a <tt>Segment Position</tt> | <tt>CueTime Element</tt>), a <tt>Track</tt> (via the <tt>CueTrack Element</tt>), and a <tt>Segment Position</tt> | |||
(via the <tt>CueClusterPosition Element</tt>). Additional non-mandated Elements are part of | (via the <tt>CueClusterPosition Element</tt>). Additional non-mandated Elements are part of | |||
the <tt>CuePoint Element</tt> such as <tt>CueDuration</tt>, <tt>CueRelativePosit | the <tt>CuePoint Element</tt>, such as <tt>CueDuration</tt>, <tt>CueRelativePosi | |||
ion</tt>, <tt>CueCodecState</tt> | tion</tt>, <tt>CueCodecState</tt>, | |||
and others which provide any <tt>Matroska Reader</tt> with additional informatio | and others that provide any <tt>Matroska Reader</tt> with additional information | |||
n to use in | to use in | |||
the optimization of seeking performance.</t> | the optimization of seeking performance.</t> | |||
<section anchor="recommendations"><name>Recommendations</name> | <section anchor="recommendations"><name>Recommendations</name> | |||
<t>The following recommendations are provided to optimize Matroska performance.< /t> | <t>The following recommendations are provided to optimize Matroska performance.< /t> | |||
<ul> | <ul> | |||
<li><t>Unless Matroska is used as a live stream, it <bcp14>SHOULD</bcp14> contai n a <tt>Cues Element</tt>.</t> | <li><t>Unless Matroska is used as a live stream, it <bcp14>SHOULD</bcp14> contai n a <tt>Cues Element</tt>.</t> | |||
</li> | </li> | |||
<li><t>For each video track, each keyframe <bcp14>SHOULD</bcp14> be referenced b y a <tt>CuePoint Element</tt>.</t> | <li><t>For each video track, each keyframe <bcp14>SHOULD</bcp14> be referenced b y a <tt>CuePoint Element</tt>.</t> | |||
</li> | </li> | |||
<li><t>It is <bcp14>RECOMMENDED</bcp14> to not reference non-keyframes of video tracks in <tt>Cues</tt> unless | <li><t>It is <bcp14>RECOMMENDED</bcp14> to not reference non-keyframes of video tracks in <tt>Cues</tt> unless | |||
it references a <tt>Cluster Element</tt> which contains a <tt>CodecState Element </tt> but no keyframes.</t> | it references a <tt>Cluster Element</tt> that contains a <tt>CodecState Element< /tt> but no keyframes.</t> | |||
</li> | </li> | |||
<li><t>For each subtitle track present, each subtitle frame <bcp14>SHOULD</bcp14 > be referenced by a | <li><t>For each subtitle track present, each subtitle frame <bcp14>SHOULD</bcp14 > be referenced by a | |||
<tt>CuePoint Element</tt> with a <tt>CueDuration Element</tt>.</t> | <tt>CuePoint Element</tt> with a <tt>CueDuration Element</tt>.</t> | |||
</li> | </li> | |||
<li><t>References to audio tracks <bcp14>MAY</bcp14> be skipped in <tt>CuePoint Elements</tt> if a video track | <li><t>References to audio tracks <bcp14>MAY</bcp14> be skipped in <tt>CuePoint Elements</tt> if a video track | |||
is present. When included the <tt>CuePoint Elements</tt> <bcp14>SHOULD</bcp14> r | is present. When included, the <tt>CuePoint Elements</tt> <bcp14>SHOULD</bcp14> | |||
eference audio keyframes | reference audio keyframes | |||
at most once every 500 milliseconds.</t> | once every 500 milliseconds at most.</t> | |||
</li> | </li> | |||
<li><t>If the referenced frame is not stored within the first <tt>SimpleBlock</t t>, or first | <li><t>If the referenced frame is not stored within the first <tt>SimpleBlock</t t> or first | |||
<tt>BlockGroup</tt> within its <tt>Cluster Element</tt>, then the <tt>CueRelativ ePosition Element</tt> | <tt>BlockGroup</tt> within its <tt>Cluster Element</tt>, then the <tt>CueRelativ ePosition Element</tt> | |||
<bcp14>SHOULD</bcp14> be written to reference where in the <tt>Cluster</tt> the reference frame is stored.</t> | <bcp14>SHOULD</bcp14> be written to reference where in the <tt>Cluster</tt> the reference frame is stored.</t> | |||
</li> | </li> | |||
<li><t>If a <tt>CuePoint Element</tt> references <tt>Cluster Element</tt> that i ncludes a <tt>CodecState Element</tt>, | <li><t>If a <tt>CuePoint Element</tt> references a <tt>Cluster Element</tt> that includes a <tt>CodecState Element</tt>, | |||
then that <tt>CuePoint Element</tt> <bcp14>MUST</bcp14> use a <tt>CueCodecState Element</tt>.</t> | then that <tt>CuePoint Element</tt> <bcp14>MUST</bcp14> use a <tt>CueCodecState Element</tt>.</t> | |||
</li> | </li> | |||
<li><t><tt>CuePoint Elements</tt> <bcp14>SHOULD</bcp14> be numerically sorted in storage order by the value of the <tt>CueTime Element</tt>.</t> | <li><t><tt>CuePoint Elements</tt> <bcp14>SHOULD</bcp14> be numerically sorted in storage order by the value of the <tt>CueTime Element</tt>.</t> | |||
</li> | </li> | |||
</ul> | </ul> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="matroska-streaming"><name>Matroska Streaming</name> | <section anchor="matroska-streaming"><name>Matroska Streaming</name> | |||
<t>In Matroska, there are two kinds of streaming: file access and livestreaming. </t> | <t>In Matroska, there are two kinds of streaming: file access and livestreaming. </t> | |||
<section anchor="file-access"><name>File Access</name> | <section anchor="file-access"><name>File Access</name> | |||
<t>File access can simply be reading a file located on your computer, but also i | <t>File access can simply be reading a file located on your computer, but it als | |||
ncludes | o includes | |||
accessing a file from an HTTP (web) server or CIFS (Windows share) server. These | accessing a file from an HTTP (web) server or Common Internet File System (CIFS) | |||
protocols | (Windows share) server. These protocols | |||
are usually safe from reading errors and seeking in the stream is possible. Howe | are usually safe from reading errors, and seeking in the stream is possible. How | |||
ver, | ever, | |||
when a file is stored far away or on a slow server, seeking can be an expensive operation | when a file is stored far away or on a slow server, seeking can be an expensive operation | |||
and should be avoided. The guidelines in <xref target="implementation-recommenda | and should be avoided. | |||
tions"></xref>, when followed, help reduce the number | <!-- [rfced] Would it be helpful to rephrase the text starting with "without a | |||
lot of data..."? | ||||
Original: | ||||
The guidelines in Section 25, when followed, help reduce the number | ||||
of seeking operations for regular playback and also have the playback start | ||||
quickly without a lot of data needed to read first (like a Cues Element, | ||||
Attachment Element or SeekHead Element). | ||||
Perhaps: | ||||
When followed, the guidelines in Section 25 help reduce the number of | ||||
seeking operations for regular playback and also have the playback start | ||||
quickly without needing to read lot of data first (like a Cues Element, | ||||
Attachment Element, or SeekHead Element). | ||||
--> | ||||
When followed, the guidelines in <xref target="implementation-recommendations">< | ||||
/xref> help reduce the number | ||||
of seeking operations for regular playback and also have the playback start quic kly without | of seeking operations for regular playback and also have the playback start quic kly without | |||
a lot of data needed to read first (like a <tt>Cues Element</tt>, <tt>Attachment Element</tt> or <tt>SeekHead Element</tt>).</t> | a lot of data needed to read first (like a <tt>Cues Element</tt>, <tt>Attachment Element</tt>, or <tt>SeekHead Element</tt>).</t> | |||
<t>Matroska, having a small overhead, is well suited for storing music/videos on file | <t>Matroska, having a small overhead, is well suited for storing music/videos on file | |||
servers without a big impact on the bandwidth used. Matroska does not require th e index | servers without a big impact on the bandwidth used. Matroska does not require th e index | |||
to be loaded before playing, which allows playback to start very quickly. The in dex can | to be loaded before playing, which allows playback to start very quickly. The in dex can | |||
be loaded only when seeking is requested the first time.</t> | be loaded only when seeking is requested the first time.</t> | |||
</section> | </section> | |||
<section anchor="livestreaming"><name>Livestreaming</name> | <section anchor="livestreaming"><name>Livestreaming</name> | |||
<t>Livestreaming is the equivalent of television broadcasting on the internet. T | <t>Livestreaming is the equivalent of television broadcasting on the Internet. T | |||
here are 2 | here are two | |||
families of servers for livestreaming: RTP/RTSP and HTTP. Matroska is not meant | families of servers for livestreaming: RTP / Real-Time Streaming Protocol (RTSP) | |||
to be | and HTTP. Matroska is not meant to be | |||
used over RTP. RTP already has timing and channel mechanisms that would be waste d if doubled | used over RTP. RTP already has timing and channel mechanisms that would be waste d if doubled | |||
in Matroska. Additionally, having the same information at the RTP and Matroska l evel would | in Matroska. Additionally, having the same information at the RTP and Matroska l evel would | |||
be a source of confusion if they do not match. | be a source of confusion if they do not match. | |||
Livestreaming of Matroska over file-like protocols like HTTP, QUIC, etc. is poss ible.</t> | Livestreaming of Matroska over file-like protocols like HTTP, QUIC, etc., is pos sible.</t> | |||
<t>A live Matroska stream is different from a file because it usually has no kno wn end | <t>A live Matroska stream is different from a file because it usually has no kno wn end | |||
(only ending when the client disconnects). For this, all bits of the "size& quot; portion | (only ending when the client disconnects). For this, all bits of the "size" port ion | |||
of the <tt>Segment Element</tt> <bcp14>MUST</bcp14> be set to 1. Another option is to concatenate <tt>Segment Elements</tt> | of the <tt>Segment Element</tt> <bcp14>MUST</bcp14> be set to 1. Another option is to concatenate <tt>Segment Elements</tt> | |||
with known sizes, one after the other. This solution allows a change of codec/re solution | with known sizes, one after the other. This solution allows a change of codec/re solution | |||
between each segment. For example, this allows for a switch between 4:3 and 16:9 in a television program.</t> | between each segment. For example, this allows for a switch between 4:3 and 16:9 in a television program.</t> | |||
<t>When <tt>Segment Elements</tt> are continuous, certain <tt>Elements</tt>, lik | <t>When <tt>Segment Elements</tt> are continuous, certain <tt>Elements</tt> (lik | |||
e <tt>SeekHead</tt>, <tt>Cues</tt>, | e <tt>SeekHead</tt>, <tt>Cues</tt>, | |||
<tt>Chapters</tt>, and <tt>Attachments</tt>, <bcp14>MUST NOT</bcp14> be used.</t | <tt>Chapters</tt>, and <tt>Attachments</tt>) <bcp14>MUST NOT</bcp14> be used.</t | |||
> | > | |||
<t>It is possible for a <tt>Matroska Player</tt> to detect that a stream is not seekable. | <t>It is possible for a <tt>Matroska Player</tt> to detect that a stream is not seekable. | |||
If the stream has neither a <tt>SeekHead</tt> list nor a <tt>Cues</tt> list at t he beginning of the stream, | If the stream has neither a <tt>SeekHead</tt> list nor a <tt>Cues</tt> list at t he beginning of the stream, | |||
it <bcp14>SHOULD</bcp14> be considered non-seekable. Even though it is possible to seek forward | it <bcp14>SHOULD</bcp14> be considered non-seekable. Even though it is possible to seek forward | |||
in the stream, it is <bcp14>NOT RECOMMENDED</bcp14>.</t> | in the stream, it is <bcp14>NOT RECOMMENDED</bcp14>.</t> | |||
<t>In the context of live radio or web TV, it is possible to "tag" the content while it is | <t>In the context of live radio or web TV, it is possible to "tag" the content w hile it is | |||
playing. The <tt>Tags Element</tt> can be placed between <tt>Clusters</tt> each time it is necessary. | playing. The <tt>Tags Element</tt> can be placed between <tt>Clusters</tt> each time it is necessary. | |||
In that case, the new <tt>Tags Element</tt> <bcp14>MUST</bcp14> reset the previo usly encountered <tt>Tags Elements</tt> | In that case, the new <tt>Tags Element</tt> <bcp14>MUST</bcp14> reset the previo usly encountered <tt>Tags Elements</tt> | |||
and use the new values instead.</t> | and use the new values instead.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="tags-1"><name>Tags</name> | <section anchor="tags-1"><name>Tags</name> | |||
<section anchor="tags-precedence"><name>Tags Precedence</name> | <section anchor="tags-precedence"><name>Tags Precedence</name> | |||
<!-- [rfced] Should "Track Name" here be updated to "Name" per Section | ||||
5.1.4.1.18? Or is the original okay? | ||||
Original: | ||||
Some Matroska elements also contain their own string value like the | ||||
Track Name (Section 5.1.4.1.18) or the Chapter String | ||||
(Section 5.1.7.1.4.10). | ||||
... | ||||
* The Track Name Element (Section 5.1.4.1.18) corresponds to a tag | ||||
with the TagTrackUID (Section 5.1.8.1.1.3) set to the given track, | ||||
--> | ||||
<!-- [rfced] Similar to the question above, should "Chapter String" be updated | ||||
to "ChapString" per Section 5.1.7.1.4.10? | ||||
Original: | ||||
Some Matroska elements also contain their own string value like the | ||||
Track Name (Section 5.1.4.1.18) or the Chapter String | ||||
(Section 5.1.7.1.4.10). | ||||
... | ||||
* The Chapter String Element (Section 5.1.7.1.4.10) corresponds to a | ||||
tag with the TagChapterUID | ||||
--> | ||||
<t>Tags allow tagging all kinds of Matroska parts with very detailed metadata in multiple languages.</t> | <t>Tags allow tagging all kinds of Matroska parts with very detailed metadata in multiple languages.</t> | |||
<t>Some Matroska elements also contain their own string value like the Track Nam e (<xref target="name-element"></xref>) or the Chapter String (<xref target="cha pstring-element"></xref>).</t> | <t>Some Matroska elements also contain their own string value, like the Track Na me (<xref target="name-element"></xref>) or the Chapter String (<xref target="ch apstring-element"></xref>).</t> | |||
<t>The following Matroska elements can also be defined with tags:</t> | <t>The following Matroska elements can also be defined with tags:</t> | |||
<ul> | <ul> | |||
<li><t>The Track Name Element (<xref target="name-element"></xref>) corresponds to a tag with the TagTrackUID (<xref target="tagtrackuid-element"></xref>) set t o the given track, a TagName of <tt>TITLE</tt> (<xref target="tagname-element">< /xref>) and a TagLanguage (<xref target="taglanguage-element"></xref>) or TagLan guageBCP47 (<xref target="taglanguagebcp47-element"></xref>) of "und". </t> | <li><t>The Track Name Element (<xref target="name-element"></xref>) corresponds to a tag with the TagTrackUID (<xref target="tagtrackuid-element"></xref>) set t o the given track, a TagName of <tt>TITLE</tt> (<xref target="tagname-element">< /xref>), and a TagLanguage (<xref target="taglanguage-element"></xref>) or TagLa nguageBCP47 (<xref target="taglanguagebcp47-element"></xref>) of "und".</t> | |||
</li> | </li> | |||
<li><t>The Chapter String Element (<xref target="chapstring-element"></xref>) co rresponds to a tag with the TagChapterUID (<xref target="tagchapteruid-element"> </xref>) set to the same chapter UID, a TagName of <tt>TITLE</tt> (<xref target= "tagname-element"></xref>) and a TagLanguage (<xref target="taglanguage-element" ></xref>) or TagLanguageBCP47 (<xref target="taglanguagebcp47-element"></xref>) matching the ChapLanguage (<xref target="chaplanguage-element"></xref>) or ChapL anguageBCP47 (<xref target="chaplanguagebcp47-element"></xref>) respectively.</t > | <li><t>The Chapter String Element (<xref target="chapstring-element"></xref>) co rresponds to a tag with the TagChapterUID (<xref target="tagchapteruid-element"> </xref>) set to the same chapter UID, a TagName of <tt>TITLE</tt> (<xref target= "tagname-element"></xref>), and a TagLanguage (<xref target="taglanguage-element "></xref>) or TagLanguageBCP47 (<xref target="taglanguagebcp47-element"></xref>) matching the ChapLanguage (<xref target="chaplanguage-element"></xref>) or Chap LanguageBCP47 (<xref target="chaplanguagebcp47-element"></xref>), respectively.< /t> | |||
</li> | </li> | |||
<li><t>The FileDescription Element (<xref target="filedescription-element"></xre f>) of an attachment corresponds to a tag with the TagAttachmentUID (<xref targe t="tagattachmentuid-element"></xref>) set to the given attachment, a TagName of <tt>TITLE</tt> (<xref target="tagname-element"></xref>) and a TagLanguage (<xref target="taglanguage-element"></xref>) or TagLanguageBCP47 (<xref target="taglan guagebcp47-element"></xref>) of "und".</t> | <li><t>The FileDescription Element (<xref target="filedescription-element"></xre f>) of an attachment corresponds to a tag with the TagAttachmentUID (<xref targe t="tagattachmentuid-element"></xref>) set to the given attachment, a TagName of <tt>TITLE</tt> (<xref target="tagname-element"></xref>), and a TagLanguage (<xre f target="taglanguage-element"></xref>) or TagLanguageBCP47 (<xref target="tagla nguagebcp47-element"></xref>) of "und".</t> | |||
</li> | </li> | |||
</ul> | </ul> | |||
<t>When both values exist in the file, the value found in Tags takes precedence | <t>When both values exist in the file, the value found in Tags takes precedence | |||
over the value found in original location of the element. | over the value found in the original location of the element. | |||
For example, if you have a <tt>TrackEntry\Name</tt> element and Tag <tt>TITLE</t | For example, if you have a <tt>TrackEntry\Name</tt> element and Tag <tt>TITLE</t | |||
t> for that track in a Matroska Segment, the Tag string <bcp14>SHOULD</bcp14> be | t> for that track in a Matroska Segment, the Tag string <bcp14>SHOULD</bcp14> be | |||
used and not the <tt>TrackEntry\Name</tt> string to identify the track.</t> | used instead of the <tt>TrackEntry\Name</tt> string to identify the track.</t> | |||
<t>As the Tag element is optional, a lot of <tt>Matroska Readers</tt> do not han dle it and will not use the tags value when it's found. | <t>As the Tag element is optional, a lot of <tt>Matroska Readers</tt> do not han dle it and will not use the tags value when it's found. | |||
So for maximum compatibility, it's usually better to put the strings in the <tt> TrackEntry</tt>, <tt>ChapterAtom</tt> and <tt>Attachment</tt> | Thus, for maximum compatibility, it's usually better to put the strings in the < tt>TrackEntry</tt>, <tt>ChapterAtom</tt>, and <tt>Attachment</tt> | |||
and keep the tags matching these values if tags are also used.</t> | and keep the tags matching these values if tags are also used.</t> | |||
</section> | </section> | |||
<section anchor="tag-levels"><name>Tag Levels</name> | <section anchor="tag-levels"><name>Tag Levels</name> | |||
<t>Tag elements allow tagging information on multiple levels, each level having a <tt>TargetTypeValue</tt> <xref target="targettypevalue-element"></xref>. | <t>Tag elements allow tagging information on multiple levels, with each level ha ving a <tt>TargetTypeValue</tt> <xref target="targettypevalue-element"></xref>. | |||
An element for a given <tt>TargetTypeValue</tt> also applies to the lower levels denoted by smaller <tt>TargetTypeValue</tt> values. If an upper value | An element for a given <tt>TargetTypeValue</tt> also applies to the lower levels denoted by smaller <tt>TargetTypeValue</tt> values. If an upper value | |||
doesn't apply to a level but the actual value to use is not known, | doesn't apply to a level but the actual value to use is not known, | |||
an empty <tt>TagString</tt> (<xref target="tagstring-element"></xref>) or an emp | an empty <tt>TagString</tt> (<xref target="tagstring-element"></xref>) or an emp | |||
ty <tt>TagBinary</tt> (<xref target="tagbinary-element"></xref>) element <bcp14> | ty <tt>TagBinary</tt> (<xref target="tagbinary-element"></xref>) <bcp14>MUST</bc | |||
MUST</bcp14> be used as the tag value for this level.</t> | p14> be used as the tag value for this level.</t> | |||
<t>See <xref target="MatroskaTags"></xref> for more details on common tag names, | <t>See <xref target="I-D.ietf-cellar-tags"></xref> for more details on common ta | |||
types and descriptions.</t> | g names, types, and descriptions.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="implementation-recommendations"><name>Implementation Recommenda tions</name> | <section anchor="implementation-recommendations"><name>Implementation Recommenda tions</name> | |||
<section anchor="cluster"><name>Cluster</name> | <section anchor="cluster"><name>Cluster</name> | |||
<t>It is <bcp14>RECOMMENDED</bcp14> that each individual <tt>Cluster Element</tt | <t>It is <bcp14>RECOMMENDED</bcp14> that each individual <tt>Cluster Element</tt | |||
> contains no more than | > contain no more than | |||
5 seconds or 5 megabytes of content.</t> | five seconds or five megabytes of content.</t> | |||
</section> | </section> | |||
<section anchor="seekhead-1"><name>SeekHead</name> | <section anchor="seekhead-1"><name>SeekHead</name> | |||
<t>It is <bcp14>RECOMMENDED</bcp14> that the first <tt>SeekHead Element</tt> be followed by a <tt>Void Element</tt> to | <t>It is <bcp14>RECOMMENDED</bcp14> that the first <tt>SeekHead Element</tt> be followed by a <tt>Void Element</tt> to | |||
allow for the <tt>SeekHead Element</tt> to be expanded to cover new <tt>Top-Leve l Elements</tt> | allow for the <tt>SeekHead Element</tt> to be expanded to cover new <tt>Top-Leve l Elements</tt> | |||
that could be added to the Matroska file, such as <tt>Tags</tt>, <tt>Chapters</t t>, and <tt>Attachments</tt> Elements.</t> | that could be added to the Matroska file, such as <tt>Tags</tt>, <tt>Chapters</t t>, and <tt>Attachments</tt> Elements.</t> | |||
<!-- [rfced] How may we clarify the text starting with "depending on the..."? | ||||
Original: | ||||
The size of this Void Element should be adjusted depending on the | ||||
Matroska file already having Tags, Chapters, and Attachments | ||||
Elements. | ||||
Perhaps: | ||||
The size of this Void Element should be adjusted depending on the | ||||
Tags, Chapters, and Attachments | ||||
Elements in the Matroska file. | ||||
--> | ||||
<t>The size of this <tt>Void Element</tt> should be adjusted depending on the Ma troska file already having | <t>The size of this <tt>Void Element</tt> should be adjusted depending on the Ma troska file already having | |||
<tt>Tags</tt>, <tt>Chapters</tt>, and <tt>Attachments</tt> Elements.</t> | <tt>Tags</tt>, <tt>Chapters</tt>, and <tt>Attachments</tt> Elements.</t> | |||
</section> | </section> | |||
<section anchor="optimum-layouts"><name>Optimum Layouts</name> | <section anchor="optimum-layouts"><name>Optimum Layouts</name> | |||
<t>While there can be <tt>Top-Level Elements</tt> in any order, some ordering of | <t>While there can be <tt>Top-Level Elements</tt> in any order, some orderings o | |||
Elements are better than others. | f Elements are better than others. | |||
Here are few optimum layouts for different use case:</t> | The following subsections detail optimum layouts for different use cases.</t> | |||
<section anchor="optimum-layout-for-a-muxer"><name>Optimum layout for a muxer</n | <section anchor="optimum-layout-for-a-muxer"><name>Optimum Layout for a Muxer</n | |||
ame> | ame> | |||
<t>This is the basic layout muxers should be using for an efficient playback exp | <t>This is the basic layout muxers should be using for an efficient playback exp | |||
erience.</t> | erience:</t> | |||
<ul spacing="compact"> | <ul spacing="compact"> | |||
<li>SeekHead</li> | <li>SeekHead</li> | |||
<li>Info</li> | <li>Info</li> | |||
<li>Tracks</li> | <li>Tracks</li> | |||
<li>Chapters</li> | <li>Chapters</li> | |||
<li>Attachments</li> | <li>Attachments</li> | |||
<li>Tags</li> | <li>Tags</li> | |||
<li>Clusters</li> | <li>Clusters</li> | |||
<li>Cues</li> | <li>Cues</li> | |||
</ul> | </ul> | |||
</section> | </section> | |||
<section anchor="optimum-layout-after-editing-tags"><name>Optimum layout after e diting tags</name> | <section anchor="optimum-layout-after-editing-tags"><name>Optimum Layout after E diting Tags</name> | |||
<t>When tags from the previous layout need to be extended, they are moved to the end with the extra information. | <t>When tags from the previous layout need to be extended, they are moved to the end with the extra information. | |||
The location where the old tags were located is voided.</t> | The location where the old tags were located is voided.</t> | |||
<ul spacing="compact"> | <ul spacing="compact"> | |||
<li>SeekHead</li> | <li>SeekHead</li> | |||
<li>Info</li> | <li>Info</li> | |||
<li>Tracks</li> | <li>Tracks</li> | |||
<li>Chapters</li> | <li>Chapters</li> | |||
<li>Attachments</li> | <li>Attachments</li> | |||
<li>Void</li> | <li>Void</li> | |||
<li>Clusters</li> | <li>Clusters</li> | |||
<li>Cues</li> | <li>Cues</li> | |||
<li>Tags</li> | <li>Tags</li> | |||
</ul> | </ul> | |||
</section> | </section> | |||
<section anchor="optimum-layout-with-cues-at-the-front"><name>Optimum layout wit h Cues at the front</name> | <section anchor="optimum-layout-with-cues-at-the-front"><name>Optimum Layout wit h Cues at the Front</name> | |||
<t>Cues are usually a big chunk of data referencing a lot of locations in the fi le. | <t>Cues are usually a big chunk of data referencing a lot of locations in the fi le. | |||
For players that want to seek in the file they need to seek to the end of the fi le | Players that want to seek in the file need to seek to the end of the file | |||
to access these locations. It is often better if they are placed early in the fi le. | to access these locations. It is often better if they are placed early in the fi le. | |||
On the other hand that means players that don't intend to seek will have to read /skip | On the other hand, that means players that don't intend to seek will have to rea d/skip | |||
these data no matter what.</t> | these data no matter what.</t> | |||
<t>Because the Cues reference locations further in the file, it's often complica ted to | <t>Because the Cues reference locations further in the file, it's often complica ted to | |||
allocate the proper space for that element before all the locations are known. | allocate the proper space for that element before all the locations are known. | |||
Therefore, this layout is rarely used.</t> | Therefore, this layout is rarely used:</t> | |||
<ul spacing="compact"> | <ul spacing="compact"> | |||
<li>SeekHead</li> | <li>SeekHead</li> | |||
<li>Info</li> | <li>Info</li> | |||
<li>Tracks</li> | <li>Tracks</li> | |||
<li>Chapters</li> | <li>Chapters</li> | |||
<li>Attachments</li> | <li>Attachments</li> | |||
<li>Tags</li> | <li>Tags</li> | |||
<li>Cues</li> | <li>Cues</li> | |||
<li>Clusters</li> | <li>Clusters</li> | |||
</ul> | </ul> | |||
</section> | </section> | |||
<section anchor="optimum-layout-for-livestreaming"><name>Optimum layout for live | <section anchor="optimum-layout-for-livestreaming"><name>Optimum Layout for Live | |||
streaming</name> | streaming</name> | |||
<t>In Livestreaming (<xref target="livestreaming"></xref>) only a few elements m | <t>In livestreaming (<xref target="livestreaming"></xref>), only a few elements | |||
ake sense. SeekHead and Cues are useless for example. | make sense. For example, SeekHead and Cues are useless. | |||
All elements other than the Clusters <bcp14>MUST</bcp14> be placed before the Cl usters.</t> | All elements other than the Clusters <bcp14>MUST</bcp14> be placed before the Cl usters.</t> | |||
<ul spacing="compact"> | <ul spacing="compact"> | |||
<li>Info</li> | <li>Info</li> | |||
<li>Tracks</li> | <li>Tracks</li> | |||
<li>Attachments (rare)</li> | <li>Attachments (rare)</li> | |||
<li>Tags</li> | <li>Tags</li> | |||
<li>Clusters</li> | <li>Clusters</li> | |||
</ul> | </ul> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="security-considerations"><name>Security Considerations</name> | <section anchor="security-considerations"><name>Security Considerations</name> | |||
<!-- [rfced] Would it be helpful to include "[RFC8794]" in this sentence in | ||||
the Security Considerations section? | ||||
Original: | ||||
Matroska inherits security considerations from EBML. | ||||
Perhaps: | ||||
Matroska inherits security considerations from EBML [RFC8794]. | ||||
--> | ||||
<t>Matroska inherits security considerations from EBML.</t> | <t>Matroska inherits security considerations from EBML.</t> | |||
<t>Attacks on a <tt>Matroska Reader</tt> could include:</t> | <t>Attacks on a <tt>Matroska Reader</tt> could include:</t> | |||
<ul> | <ul> | |||
<li><t>Storage of an arbitrary and potentially executable data within an <tt>Att achment Element</tt>. | <li><t>Storage of an arbitrary and potentially executable data within an <tt>Att achment Element</tt>. | |||
<tt>Matroska Readers</tt> that extract or use data from Matroska Attachments <bc p14>SHOULD</bcp14> | <tt>Matroska Readers</tt> that extract or use data from Matroska Attachments <bc p14>SHOULD</bcp14> | |||
check that the data adheres to expectations or not use the attachement.</t> | check that the data adheres to expectations or not use the attachment.</t> | |||
</li> | </li> | |||
<li><t>A <tt>Matroska Attachment</tt> with an inaccurate media type.</t> | <li><t>A <tt>Matroska Attachment</tt> with an inaccurate media type.</t> | |||
</li> | </li> | |||
<li><t>Damage to the Encryption and Compression fields (<xref target="encryption "></xref>) that would result in bogus binary data | <li><t>Damage to the Encryption and Compression fields (<xref target="encryption "></xref>) that would result in bogus binary data | |||
interpreted by the decoder.</t> | interpreted by the decoder.</t> | |||
</li> | </li> | |||
<li><t>Chapter Codecs running unwanted commands on the host system.</t> | <li><t>Chapter Codecs running unwanted commands on the host system.</t> | |||
</li> | </li> | |||
</ul> | </ul> | |||
<!-- [rfced] How may we rephrase this sentence to make it more concise and | ||||
clear? | ||||
Original: | ||||
It is up to the | ||||
decision of the Matroska Readers on how to handle the errors if they | ||||
are recoverable in their code or not. | ||||
Perhaps: | ||||
Matroska Readers decide how to handle the errors whether or not they | ||||
are recoverable in their code. | ||||
--> | ||||
<t>The same error handling done for EBML applies to Matroska files. | <t>The same error handling done for EBML applies to Matroska files. | |||
Particular error handling is not covered in this specification as this is depend s on the goal of the <tt>Matroska Readers</tt>. | Particular error handling is not covered in this specification, as this is depen ds on the goal of the <tt>Matroska Readers</tt>. | |||
It is up to the decision of the <tt>Matroska Readers</tt> on how to handle the e rrors if they are recoverable in their code or not. | It is up to the decision of the <tt>Matroska Readers</tt> on how to handle the e rrors if they are recoverable in their code or not. | |||
For example, if the checksum of the <tt>\Segment\Tracks</tt> is invalid some cou | For example, if the checksum of the <tt>\Segment\Tracks</tt> is invalid, some co | |||
ld decide to try to read the data anyway, | uld decide to try to read the data anyway, | |||
some will just reject the file, most will not even check it.</t> | some will just reject the file, and most will not even check it.</t> | |||
<t><tt>Matroska Reader</tt> implementations need to be robust against malicious | <t><tt>Matroska Reader</tt> implementations need to be robust against malicious | |||
payloads. | payloads. Those related to denial of service are outlined in <xref target="RFC47 | |||
Those related to denial of service are outlined in Section 2.1 of [RFC4732].<br | 32" sectionFormat="of" section="2.1"/>.</t> | |||
/> | ||||
Although rarer, the same may apply to a <tt>Matroska Writer</tt>. Malicious str | <t>Although rarer, the same may apply to a <tt>Matroska Writer</tt>. Malicious | |||
eam data | stream data | |||
must not cause the Writer to misbehave, as this might allow an attacker access | must not cause the Matroska Writer to misbehave, as this might allow an attacker | |||
access | ||||
to transcoding gateways.</t> | to transcoding gateways.</t> | |||
<t>As an audio and visual container format, a Matroska file or stream will | <t>As an audio and visual container format, a Matroska file or stream will | |||
potentially encapsulate numerous byte streams created with a variety of | potentially encapsulate numerous byte streams created with a variety of | |||
codecs. Implementers will need to consider the security considerations of | codecs. Implementers will need to consider the security considerations of | |||
these encapsulated formats.</t> | these encapsulated formats.</t> | |||
</section> | </section> | |||
<section anchor="iana-considerations"><name>IANA Considerations</name> | <section anchor="iana-considerations"><name>IANA Considerations</name> | |||
<!-- [rfced] We moved "28. Annex A: Historic Deprecated Elements" to be | ||||
"Appendix A. Historic Deprecated Elements" (appears after the references | ||||
section). If no objections, we will ask IANA to update the section | ||||
pointers in the registry defined in Section 27.1 accordingly. | ||||
However, if you wish to retain this as Section 28, we will update to | ||||
"28. Historic Deprecated Elements" (no "Annex A"). | ||||
Link to registry: https://www.iana.org/assignments/matroska/matroska.xhtml | ||||
--> | ||||
<!-- [rfced] We have included some specific questions about the IANA text in | ||||
the document. In addition to responding to those questions, please | ||||
review all of the IANA-related updates carefully and let us know if any | ||||
updates are needed. | ||||
a) Section 27.1: Should the list in this sentence include an "Element Name"? | ||||
Also, does IANA assign the Element ID? If so, should the sentence be updated | ||||
per the "Or" text below to include "Element Name" but not "Element ID"? | ||||
Also, please confirm that the Reference is optional. | ||||
Original: | ||||
To register a new Element ID in this registry, one needs an Element | ||||
ID, a Change Controller (IETF or email of registrant) and an optional | ||||
Reference to a document describing the Element ID. | ||||
Perhaps (both Element ID and Element Name in list): | ||||
To register a new Element ID in this registry, one needs an Element | ||||
ID, an Element Name, a Change Controller (IETF or email of | ||||
registrant), and an optional Reference to a document describing the | ||||
Element ID. | ||||
Or (Element ID not in list): | ||||
To register a new Element ID in this registry, one needs an Element | ||||
Name, a Change Controller (IETF or email of | ||||
registrant), and an optional Reference to a document describing the | ||||
Element ID. | ||||
b) Section 27.2: Similar to the question above, should the list in this | ||||
sentence include "description" and possibly remove "Chapter Codec ID" from the | ||||
list? | ||||
Also, please confirm that the Reference is optional. | ||||
Original: | ||||
To register a new Chapter Codec ID in this registry, one needs a | ||||
Chapter Codec ID, a Change Controller (IETF or email of registrant) | ||||
and an optional Reference to a document describing the Chapter Codec | ||||
ID. | ||||
Perhaps (both Chapter Codec ID and description in list): | ||||
To register a new Chapter Codec ID in this registry, one needs a | ||||
Chapter Codec ID, description, a Change Controller (IETF or email of | ||||
registrant), and an optional Reference to a document describing the | ||||
Chapter Codec ID. | ||||
Or (Chapter Codec ID not in list): | ||||
To register a new Chapter Codec ID in this registry, one needs a | ||||
description, a Change Controller (IETF or email of | ||||
registrant), and an optional Reference to a document describing the | ||||
Chapter Codec ID. | ||||
c) Would it be helpful to include the ranges listed in the registry at | ||||
https://www.iana.org/assignments/matroska/? | ||||
Original: | ||||
One-octet Matroska Element IDs are to be allocated according to the | ||||
"RFC Required" policy [RFC8126]. | ||||
Two-octet Matroska Element IDs are to be allocated according to the | ||||
"Specification Required" policy [RFC8126]. | ||||
Three-octet and four-octet Matroska Element IDs are to be allocated | ||||
according to the "First Come First Served" policy [RFC8126]. | ||||
Perhaps: | ||||
One-octet Element IDs (range 0x00-0xFF) are to be allocated according to the | ||||
"RFC Required" policy [RFC8126]. | ||||
Two-octet Element IDs (range 0x0100-0xFFFF) are to be allocated according | ||||
to the "Specification Required" policy [RFC8126]. | ||||
Three-octet and four-octet Element IDs (range 0x00010000-0xFFFFFFFF) are to | ||||
be allocated according to the "First Come First Served" policy [RFC8126]. | ||||
d) We have combined the text below into one complete sentence. Should "within | ||||
a BlockGroup or Chapters" be updated to "BlockGroup or Chapters" (no "within a") | ||||
? | ||||
Original: | ||||
Given the scarcity of the One-octet Element IDs, they should only be | ||||
created to save space for elements found many times in a file. For | ||||
example, within a BlockGroup or Chapters. | ||||
Current: | ||||
Given the scarcity of one-octet Element IDs, they should only be | ||||
created to save space for elements found many times in a file (for | ||||
example, within a BlockGroup or Chapters). | ||||
Perhaps: | ||||
Given the scarcity of one-octet Element IDs, they should only be | ||||
created to save space for elements found many times in a file (for | ||||
example, BlockGroup or Chapters). | ||||
e) FYI - We removed "Described in" from the Reference column of the table in | ||||
Section 27.1 to match the IANA registry at https://www.iana.org/assignments/matr | ||||
oska/. | ||||
f) The table in Section 27.1 does not contain the "Change Controller" column tha | ||||
t appears in the registry at https://www.iana.org/assignments/matroska. Would it | ||||
be helpful to add a sentence noting that that the change controller for all ini | ||||
tial entries in the registry is "IETF"? | ||||
Current: | ||||
Table 54 shows the initial contents of the "Matroska Element IDs" | ||||
registry. | ||||
Perhaps: | ||||
Table 54 shows the initial contents of the "Matroska Element IDs" | ||||
registry. Note that the Change Controller for all entries in Table 54 is "IET | ||||
F". | ||||
g) Section 27.2 notes this: | ||||
Original: | ||||
The values correspond to the unsigned | ||||
integer ChapProcessCodecID value described in Section 5.1.7.1.4.15. | ||||
... | ||||
ChapProcessCodecID values of "0" and "1" are RESERVED to the IETF for | ||||
future use. | ||||
Values 0 and 1 in the registry are listed as Reserved, with this document as a | ||||
reference. See | ||||
https://www.iana.org/assignments/matroska/matroska.xhtml#matroska-chapter-codec- | ||||
ids. | ||||
However, Section 5.1.7.1.4.15 notes this about values "0" and "1" for ChapProces | ||||
sCodecID: | ||||
Original: | ||||
definition: Contains the type of the codec used for the processing. | ||||
A value of 0 means built-in Matroska processing (to be defined), a | ||||
value of 1 means the DVD command set is used; see Section 20.3 on | ||||
DVD menus. More codec IDs can be added later. | ||||
Please review and let us know if any updates are needed. | ||||
h) Sections 27.3.1-27.3.3: May we update this text to avoid "..." in one of | ||||
the following ways? Note that this appears three times (in each of the | ||||
templates in Section 27.3). | ||||
Original: | ||||
FFmpeg, VLC, ... | ||||
Perhaps: | ||||
FFmpeg, VLC, etc. | ||||
Or: | ||||
FFmpeg and VLC | ||||
i) Sections 27.3.1-27.3.3: We made a few minor edits to the templates in these | ||||
sections. Please review and let us know any concerns. We will ask IANA to | ||||
update the templates to match the edited document prior to publication: | ||||
https://www.iana.org/assignments/media-types/audio/matroska | ||||
https://www.iana.org/assignments/media-types/video/matroska | ||||
https://www.iana.org/assignments/media-types/video/matroska-3d | ||||
--> | ||||
<!-- [rfced] We see both "color" (American spelling) and "colour" (British | ||||
spelling) used in the document, with the Colour Element registered with | ||||
IANA. The document generally uses American spelling (e.g., "optimized" | ||||
rather than "optimised", etc.). | ||||
Are any updates needed for consistency? Perhaps update all instances to | ||||
"color" and request that IANA update the entry in the registry accordingly? | ||||
Link to registry: https://www.iana.org/assignments/matroska/matroska.xhtml | ||||
--> | ||||
<section anchor="matroska-element-ids-registry"><name>Matroska Element IDs Regis try</name> | <section anchor="matroska-element-ids-registry"><name>Matroska Element IDs Regis try</name> | |||
<t>This document creates a new IANA registry called the "Matroska Element I Ds" | <t>IANA has created a new registry called the "Matroska Element IDs" | |||
registry.</t> | registry.</t> | |||
<t>To register a new Element ID in this registry, one needs an Element ID, | <t>The following are needed to register a new Element ID in this registry: | |||
a Change Controller (IETF or email of registrant) and | an Element ID, | |||
a Change Controller (IETF or email of registrant), and | ||||
an optional Reference to a document describing the Element ID.</t> | an optional Reference to a document describing the Element ID.</t> | |||
<t>Element IDs are encoded | <t>Element IDs are encoded | |||
using the VINT mechanism described in Section 4 of <xref target="RFC8794"></xref | using the VINT mechanism described in <xref target="RFC8794" sectionFormat="of" | |||
> and can be between | section="4"></xref> and can be between | |||
one and five octets long. Five-octet-long Element IDs are possible | one and five octets long. Five-octet Element IDs are possible | |||
only if declared in the EBML header.</t> | only if declared in the EBML Header.</t> | |||
<t>Element IDs are described in Section 5 of <xref target="RFC8794"></xref> with | <t>Element IDs are described in <xref target="RFC8794" sectionFormat="of" sectio | |||
errata 7189 and 7191.</t> | n="5"></xref>, with the changes in <xref target="Err7189"/> and <xref target="Er | |||
<t>One-octet Matroska Element IDs are to be allocated according to the "RFC | r7191"/>.</t> | |||
Required" policy <xref target="RFC8126"></xref>.</t> | <t>One-octet Matroska Element IDs are to be allocated according to the "RFC Requ | |||
<t>Two-octet Matroska Element IDs are to be allocated according to the "Spe | ired" policy <xref target="RFC8126"></xref>.</t> | |||
cification Required" policy <xref target="RFC8126"></xref>.</t> | <t>Two-octet Matroska Element IDs are to be allocated according to the "Specific | |||
<t>Three-octet and four-octet Matroska Element IDs are to be allocated according | ation Required" policy <xref target="RFC8126"></xref>.</t> | |||
to the "First Come First Served" policy <xref target="RFC8126"></xref | <t>Three-octet and four-octet Matroska Element IDs are to be allocated according | |||
>.</t> | to the "First Come First Served" policy <xref target="RFC8126"></xref>.</t> | |||
<t>The allowed values in the Elements IDs registry are similar to the ones found | <t>The allowed values in the "Matroska Element IDs" registry are similar to the | |||
in the EBML Element IDs registry defined in Section 17.1 of <xref target="RFC879 | ones found | |||
4"></xref>.</t> | in the "EBML Element IDs" registry defined in <xref target="RFC8794" sectionForm | |||
<t>EBML IDs defined for the EBML Header -- as defined in Section 17.1 of <xref t | at="of" section="17.1"></xref>.</t> | |||
arget="RFC8794"></xref> -- | <t>EBML Element IDs defined for the EBML Header -- as defined in <xref target="R | |||
<bcp14>MUST NOT</bcp14> be used as Matroska Element IDs.</t> | FC8794" sectionFormat="of" section="17.1"></xref> -- <bcp14>MUST NOT</bcp14> be | |||
<t>Given the scarcity of the One-octet Element IDs, they should only be created | used as Matroska Element IDs.</t> | |||
to save space for elements found many times in a file. | ||||
For example, within a BlockGroup or Chapters. The Four-octet Element IDs are mos | <t>Given the scarcity of one-octet Element IDs, they should only be created to s | |||
tly for synchronization of large elements. | ave space for elements found many times in a file (for example, within a BlockGr | |||
They should only be used for such high level elements. | oup or Chapters). The four-octet Element IDs are mostly for synchronization of l | |||
Elements that are not expected to be used often should use Three-octet Element I | arge elements. | |||
Ds.</t> | They should only be used for such high-level elements. | |||
<t>Elements found in <xref target="annex-a-historic-deprecated-elements"></xref> | Elements that are not expected to be used often should use three-octet Element I | |||
have an assigned Matroska Element ID for historical reasons. | Ds.</t> | |||
These elements are not in use and <bcp14>SHOULD NOT</bcp14> be reused unless the | <t>Elements found in <xref target="appendix-a-historic-deprecated-elements"></xr | |||
re is no other IDs available with the desired size. | ef> have an assigned Matroska Element ID for historical reasons. | |||
Such IDs are considered as <tt>reclaimed</tt> to the IANA registry as they could | These elements are not in use and <bcp14>SHOULD NOT</bcp14> be reused unless the | |||
be used for other things in the future.</t> | re are no other IDs available with the desired size. | |||
<t>Matroska Element IDs Values found in this document are assigned as initial va | Such IDs are marked as "Reclaimed" in the "Matroska Element IDs" registry, as th | |||
lues as follows:</t> | ey could be used for other things in the future.</t> | |||
<table><name>IDs and Names for Matroska Element IDs assigned by this document | <t><xref target="iana-table"></xref> shows the initial contents of the "Matroska | |||
Element IDs" registry.</t> | ||||
<table anchor="iana-table"><name>Initial Contents of "Matroska Element IDs" Regi | ||||
stry | ||||
</name> | </name> | |||
<thead> | <thead> | |||
<tr> | <tr> | |||
<th align="right">Element ID</th> | <th align="right">Element ID</th> | |||
<th align="left">Element Name</th> | <th align="left">Element Name</th> | |||
<th align="left">Reference</th> | <th align="left">Reference</th> | |||
</tr> | </tr> | |||
</thead> | </thead> | |||
<tbody> | <tbody> | |||
<tr> | <tr> | |||
<td align="right">0x80</td> | <td align="right">0x80</td> | |||
<td align="left">ChapterDisplay</td> | <td align="left">ChapterDisplay</td> | |||
<td align="left">Described in <xref target="chapterdisplay-element"></xref></td> | <td align="left">RFC 9559, <xref target="chapterdisplay-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x83</td> | <td align="right">0x83</td> | |||
<td align="left">TrackType</td> | <td align="left">TrackType</td> | |||
<td align="left">Described in <xref target="tracktype-element"></xref></td> | <td align="left">RFC 9559, <xref target="tracktype-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x85</td> | <td align="right">0x85</td> | |||
<td align="left">ChapString</td> | <td align="left">ChapString</td> | |||
<td align="left">Described in <xref target="chapstring-element"></xref></td> | <td align="left">RFC 9559, <xref target="chapstring-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x86</td> | <td align="right">0x86</td> | |||
<td align="left">CodecID</td> | <td align="left">CodecID</td> | |||
<td align="left">Described in <xref target="codecid-element"></xref></td> | <td align="left">RFC 9559, <xref target="codecid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x88</td> | <td align="right">0x88</td> | |||
<td align="left">FlagDefault</td> | <td align="left">FlagDefault</td> | |||
<td align="left">Described in <xref target="flagdefault-element"></xref></td> | <td align="left">RFC 9559, <xref target="flagdefault-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x8E</td> | <td align="right">0x8E</td> | |||
<td align="left">Slices</td> | <td align="left">Slices</td> | |||
<td align="left">Reclaimed (<xref target="slices-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="slices-element"></xref>)</td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x91</td> | <td align="right">0x91</td> | |||
<td align="left">ChapterTimeStart</td> | <td align="left">ChapterTimeStart</td> | |||
<td align="left">Described in <xref target="chaptertimestart-element"></xref></t d> | <td align="left">RFC 9559, <xref target="chaptertimestart-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x92</td> | <td align="right">0x92</td> | |||
<td align="left">ChapterTimeEnd</td> | <td align="left">ChapterTimeEnd</td> | |||
<td align="left">Described in <xref target="chaptertimeend-element"></xref></td> | <td align="left">RFC 9559, <xref target="chaptertimeend-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x96</td> | <td align="right">0x96</td> | |||
<td align="left">CueRefTime</td> | <td align="left">CueRefTime</td> | |||
<td align="left">Described in <xref target="cuereftime-element"></xref></td> | <td align="left">RFC 9559, <xref target="cuereftime-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x97</td> | <td align="right">0x97</td> | |||
<td align="left">CueRefCluster</td> | <td align="left">CueRefCluster</td> | |||
<td align="left">Reclaimed (<xref target="cuerefcluster-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="cuerefcluster-element"></xre f>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x98</td> | <td align="right">0x98</td> | |||
<td align="left">ChapterFlagHidden</td> | <td align="left">ChapterFlagHidden</td> | |||
<td align="left">Described in <xref target="chapterflaghidden-element"></xref></ td> | <td align="left">RFC 9559, <xref target="chapterflaghidden-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x9A</td> | <td align="right">0x9A</td> | |||
<td align="left">FlagInterlaced</td> | <td align="left">FlagInterlaced</td> | |||
<td align="left">Described in <xref target="flaginterlaced-element"></xref></td> | <td align="left">RFC 9559, <xref target="flaginterlaced-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x9B</td> | <td align="right">0x9B</td> | |||
<td align="left">BlockDuration</td> | <td align="left">BlockDuration</td> | |||
<td align="left">Described in <xref target="blockduration-element"></xref></td> | <td align="left">RFC 9559, <xref target="blockduration-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x9C</td> | <td align="right">0x9C</td> | |||
<td align="left">FlagLacing</td> | <td align="left">FlagLacing</td> | |||
<td align="left">Described in <xref target="flaglacing-element"></xref></td> | <td align="left">RFC 9559, <xref target="flaglacing-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x9D</td> | <td align="right">0x9D</td> | |||
<td align="left">FieldOrder</td> | <td align="left">FieldOrder</td> | |||
<td align="left">Described in <xref target="fieldorder-element"></xref></td> | <td align="left">RFC 9559, <xref target="fieldorder-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x9F</td> | <td align="right">0x9F</td> | |||
<td align="left">Channels</td> | <td align="left">Channels</td> | |||
<td align="left">Described in <xref target="channels-element"></xref></td> | <td align="left">RFC 9559, <xref target="channels-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xA0</td> | <td align="right">0xA0</td> | |||
<td align="left">BlockGroup</td> | <td align="left">BlockGroup</td> | |||
<td align="left">Described in <xref target="blockgroup-element"></xref></td> | <td align="left">RFC 9559, <xref target="blockgroup-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xA1</td> | <td align="right">0xA1</td> | |||
<td align="left">Block</td> | <td align="left">Block</td> | |||
<td align="left">Described in <xref target="block-element"></xref></td> | <td align="left">RFC 9559, <xref target="block-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xA2</td> | <td align="right">0xA2</td> | |||
<td align="left">BlockVirtual</td> | <td align="left">BlockVirtual</td> | |||
<td align="left">Reclaimed (<xref target="blockvirtual-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="blockvirtual-element"></xref >)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xA3</td> | <td align="right">0xA3</td> | |||
<td align="left">SimpleBlock</td> | <td align="left">SimpleBlock</td> | |||
<td align="left">Described in <xref target="simpleblock-element"></xref></td> | <td align="left">RFC 9559, <xref target="simpleblock-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xA4</td> | <td align="right">0xA4</td> | |||
<td align="left">CodecState</td> | <td align="left">CodecState</td> | |||
<td align="left">Described in <xref target="codecstate-element"></xref></td> | <td align="left">RFC 9559, <xref target="codecstate-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xA5</td> | <td align="right">0xA5</td> | |||
<td align="left">BlockAdditional</td> | <td align="left">BlockAdditional</td> | |||
<td align="left">Described in <xref target="blockadditional-element"></xref></td > | <td align="left">RFC 9559, <xref target="blockadditional-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xA6</td> | <td align="right">0xA6</td> | |||
<td align="left">BlockMore</td> | <td align="left">BlockMore</td> | |||
<td align="left">Described in <xref target="blockmore-element"></xref></td> | <td align="left">RFC 9559, <xref target="blockmore-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xA7</td> | <td align="right">0xA7</td> | |||
<td align="left">Position</td> | <td align="left">Position</td> | |||
<td align="left">Described in <xref target="position-element"></xref></td> | <td align="left">RFC 9559, <xref target="position-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xAA</td> | <td align="right">0xAA</td> | |||
<td align="left">CodecDecodeAll</td> | <td align="left">CodecDecodeAll</td> | |||
<td align="left">Reclaimed (<xref target="codecdecodeall-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="codecdecodeall-element"></xr ef>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xAB</td> | <td align="right">0xAB</td> | |||
<td align="left">PrevSize</td> | <td align="left">PrevSize</td> | |||
<td align="left">Described in <xref target="prevsize-element"></xref></td> | <td align="left">RFC 9559, <xref target="prevsize-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xAE</td> | <td align="right">0xAE</td> | |||
<td align="left">TrackEntry</td> | <td align="left">TrackEntry</td> | |||
<td align="left">Described in <xref target="trackentry-element"></xref></td> | <td align="left">RFC 9559, <xref target="trackentry-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xAF</td> | <td align="right">0xAF</td> | |||
<td align="left">EncryptedBlock</td> | <td align="left">EncryptedBlock</td> | |||
<td align="left">Reclaimed (<xref target="encryptedblock-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="encryptedblock-element"></xr ef>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xB0</td> | <td align="right">0xB0</td> | |||
<td align="left">PixelWidth</td> | <td align="left">PixelWidth</td> | |||
<td align="left">Described in <xref target="pixelwidth-element"></xref></td> | <td align="left">RFC 9559, <xref target="pixelwidth-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xB2</td> | <td align="right">0xB2</td> | |||
<td align="left">CueDuration</td> | <td align="left">CueDuration</td> | |||
<td align="left">Described in <xref target="cueduration-element"></xref></td> | <td align="left">RFC 9559, <xref target="cueduration-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xB3</td> | <td align="right">0xB3</td> | |||
<td align="left">CueTime</td> | <td align="left">CueTime</td> | |||
<td align="left">Described in <xref target="cuetime-element"></xref></td> | <td align="left">RFC 9559, <xref target="cuetime-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xB5</td> | <td align="right">0xB5</td> | |||
<td align="left">SamplingFrequency</td> | <td align="left">SamplingFrequency</td> | |||
<td align="left">Described in <xref target="samplingfrequency-element"></xref></ td> | <td align="left">RFC 9559, <xref target="samplingfrequency-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xB6</td> | <td align="right">0xB6</td> | |||
<td align="left">ChapterAtom</td> | <td align="left">ChapterAtom</td> | |||
<td align="left">Described in <xref target="chapteratom-element"></xref></td> | <td align="left">RFC 9559, <xref target="chapteratom-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xB7</td> | <td align="right">0xB7</td> | |||
<td align="left">CueTrackPositions</td> | <td align="left">CueTrackPositions</td> | |||
<td align="left">Described in <xref target="cuetrackpositions-element"></xref></ td> | <td align="left">RFC 9559, <xref target="cuetrackpositions-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xB9</td> | <td align="right">0xB9</td> | |||
<td align="left">FlagEnabled</td> | <td align="left">FlagEnabled</td> | |||
<td align="left">Described in <xref target="flagenabled-element"></xref></td> | <td align="left">RFC 9559, <xref target="flagenabled-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xBA</td> | <td align="right">0xBA</td> | |||
<td align="left">PixelHeight</td> | <td align="left">PixelHeight</td> | |||
<td align="left">Described in <xref target="pixelheight-element"></xref></td> | <td align="left">RFC 9559, <xref target="pixelheight-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xBB</td> | <td align="right">0xBB</td> | |||
<td align="left">CuePoint</td> | <td align="left">CuePoint</td> | |||
<td align="left">Described in <xref target="cuepoint-element"></xref></td> | <td align="left">RFC 9559, <xref target="cuepoint-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xC0</td> | <td align="right">0xC0</td> | |||
<td align="left">TrickTrackUID</td> | <td align="left">TrickTrackUID</td> | |||
<td align="left">Reclaimed (<xref target="tricktrackuid-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="tricktrackuid-element"></xre f>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xC1</td> | <td align="right">0xC1</td> | |||
<td align="left">TrickTrackSegmentUID</td> | <td align="left">TrickTrackSegmentUID</td> | |||
<td align="left">Reclaimed (<xref target="tricktracksegmentuid-element"></xref>) </td> | <td align="left">Reclaimed (RFC 9559, <xref target="tricktracksegmentuid-element "></xref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xC4</td> | <td align="right">0xC4</td> | |||
<td align="left">TrickMasterTrackSegmentUID</td> | <td align="left">TrickMasterTrackSegmentUID</td> | |||
<td align="left">Reclaimed (<xref target="trickmastertracksegmentuid-element"></ xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="trickmastertracksegmentuid-e lement"></xref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xC6</td> | <td align="right">0xC6</td> | |||
<td align="left">TrickTrackFlag</td> | <td align="left">TrickTrackFlag</td> | |||
<td align="left">Reclaimed (<xref target="tricktrackflag-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="tricktrackflag-element"></xr ef>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xC7</td> | <td align="right">0xC7</td> | |||
<td align="left">TrickMasterTrackUID</td> | <td align="left">TrickMasterTrackUID</td> | |||
<td align="left">Reclaimed (<xref target="trickmastertrackuid-element"></xref>)< /td> | <td align="left">Reclaimed (RFC 9559, <xref target="trickmastertrackuid-element" ></xref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xC8</td> | <td align="right">0xC8</td> | |||
<td align="left">ReferenceFrame</td> | <td align="left">ReferenceFrame</td> | |||
<td align="left">Reclaimed (<xref target="referenceframe-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="referenceframe-element"></xr ef>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xC9</td> | <td align="right">0xC9</td> | |||
<td align="left">ReferenceOffset</td> | <td align="left">ReferenceOffset</td> | |||
<td align="left">Reclaimed (<xref target="referenceoffset-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="referenceoffset-element"></x ref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xCA</td> | <td align="right">0xCA</td> | |||
<td align="left">ReferenceTimestamp</td> | <td align="left">ReferenceTimestamp</td> | |||
<td align="left">Reclaimed (<xref target="referencetimestamp-element"></xref>)</ td> | <td align="left">Reclaimed (RFC 9559, <xref target="referencetimestamp-element"> </xref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xCB</td> | <td align="right">0xCB</td> | |||
<td align="left">BlockAdditionID</td> | <td align="left">BlockAdditionID</td> | |||
<td align="left">Reclaimed (<xref target="blockadditionid-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="blockadditionid-element"></x ref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xCC</td> | <td align="right">0xCC</td> | |||
<td align="left">LaceNumber</td> | <td align="left">LaceNumber</td> | |||
<td align="left">Reclaimed (<xref target="lacenumber-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="lacenumber-element"></xref>) </td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xCD</td> | <td align="right">0xCD</td> | |||
<td align="left">FrameNumber</td> | <td align="left">FrameNumber</td> | |||
<td align="left">Reclaimed (<xref target="framenumber-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="framenumber-element"></xref> )</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xCE</td> | <td align="right">0xCE</td> | |||
<td align="left">Delay</td> | <td align="left">Delay</td> | |||
<td align="left">Reclaimed (<xref target="delay-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="delay-element"></xref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xCF</td> | <td align="right">0xCF</td> | |||
<td align="left">SliceDuration</td> | <td align="left">SliceDuration</td> | |||
<td align="left">Reclaimed (<xref target="sliceduration-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="sliceduration-element"></xre f>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xD7</td> | <td align="right">0xD7</td> | |||
<td align="left">TrackNumber</td> | <td align="left">TrackNumber</td> | |||
<td align="left">Described in <xref target="tracknumber-element"></xref></td> | <td align="left">RFC 9559, <xref target="tracknumber-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xDB</td> | <td align="right">0xDB</td> | |||
<td align="left">CueReference</td> | <td align="left">CueReference</td> | |||
<td align="left">Described in <xref target="cuereference-element"></xref></td> | <td align="left">RFC 9559, <xref target="cuereference-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xE0</td> | <td align="right">0xE0</td> | |||
<td align="left">Video</td> | <td align="left">Video</td> | |||
<td align="left">Described in <xref target="video-element"></xref></td> | <td align="left">RFC 9559, <xref target="video-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xE1</td> | <td align="right">0xE1</td> | |||
<td align="left">Audio</td> | <td align="left">Audio</td> | |||
<td align="left">Described in <xref target="audio-element"></xref></td> | <td align="left">RFC 9559, <xref target="audio-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xE2</td> | <td align="right">0xE2</td> | |||
<td align="left">TrackOperation</td> | <td align="left">TrackOperation</td> | |||
<td align="left">Described in <xref target="trackoperation-element"></xref></td> | <td align="left">RFC 9559, <xref target="trackoperation-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xE3</td> | <td align="right">0xE3</td> | |||
<td align="left">TrackCombinePlanes</td> | <td align="left">TrackCombinePlanes</td> | |||
<td align="left">Described in <xref target="trackcombineplanes-element"></xref>< /td> | <td align="left">RFC 9559, <xref target="trackcombineplanes-element"></xref></td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xE4</td> | <td align="right">0xE4</td> | |||
<td align="left">TrackPlane</td> | <td align="left">TrackPlane</td> | |||
<td align="left">Described in <xref target="trackplane-element"></xref></td> | <td align="left">RFC 9559, <xref target="trackplane-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xE5</td> | <td align="right">0xE5</td> | |||
<td align="left">TrackPlaneUID</td> | <td align="left">TrackPlaneUID</td> | |||
<td align="left">Described in <xref target="trackplaneuid-element"></xref></td> | <td align="left">RFC 9559, <xref target="trackplaneuid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xE6</td> | <td align="right">0xE6</td> | |||
<td align="left">TrackPlaneType</td> | <td align="left">TrackPlaneType</td> | |||
<td align="left">Described in <xref target="trackplanetype-element"></xref></td> | <td align="left">RFC 9559, <xref target="trackplanetype-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xE7</td> | <td align="right">0xE7</td> | |||
<td align="left">Timestamp</td> | <td align="left">Timestamp</td> | |||
<td align="left">Described in <xref target="timestamp-element"></xref></td> | <td align="left">RFC 9559, <xref target="timestamp-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xE8</td> | <td align="right">0xE8</td> | |||
<td align="left">TimeSlice</td> | <td align="left">TimeSlice</td> | |||
<td align="left">Reclaimed (<xref target="timeslice-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="timeslice-element"></xref>)< /td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xE9</td> | <td align="right">0xE9</td> | |||
<td align="left">TrackJoinBlocks</td> | <td align="left">TrackJoinBlocks</td> | |||
<td align="left">Described in <xref target="trackjoinblocks-element"></xref></td > | <td align="left">RFC 9559, <xref target="trackjoinblocks-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xEA</td> | <td align="right">0xEA</td> | |||
<td align="left">CueCodecState</td> | <td align="left">CueCodecState</td> | |||
<td align="left">Described in <xref target="cuecodecstate-element"></xref></td> | <td align="left">RFC 9559, <xref target="cuecodecstate-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xEB</td> | <td align="right">0xEB</td> | |||
<td align="left">CueRefCodecState</td> | <td align="left">CueRefCodecState</td> | |||
<td align="left">Reclaimed (<xref target="cuerefcodecstate-element"></xref>)</td > | <td align="left">Reclaimed (RFC 9559, <xref target="cuerefcodecstate-element"></ xref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xED</td> | <td align="right">0xED</td> | |||
<td align="left">TrackJoinUID</td> | <td align="left">TrackJoinUID</td> | |||
<td align="left">Described in <xref target="trackjoinuid-element"></xref></td> | <td align="left">RFC 9559, <xref target="trackjoinuid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xEE</td> | <td align="right">0xEE</td> | |||
<td align="left">BlockAddID</td> | <td align="left">BlockAddID</td> | |||
<td align="left">Described in <xref target="blockaddid-element"></xref></td> | <td align="left">RFC 9559, <xref target="blockaddid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xF0</td> | <td align="right">0xF0</td> | |||
<td align="left">CueRelativePosition</td> | <td align="left">CueRelativePosition</td> | |||
<td align="left">Described in <xref target="cuerelativeposition-element"></xref> </td> | <td align="left">RFC 9559, <xref target="cuerelativeposition-element"></xref></t d> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xF1</td> | <td align="right">0xF1</td> | |||
<td align="left">CueClusterPosition</td> | <td align="left">CueClusterPosition</td> | |||
<td align="left">Described in <xref target="cueclusterposition-element"></xref>< /td> | <td align="left">RFC 9559, <xref target="cueclusterposition-element"></xref></td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xF7</td> | <td align="right">0xF7</td> | |||
<td align="left">CueTrack</td> | <td align="left">CueTrack</td> | |||
<td align="left">Described in <xref target="cuetrack-element"></xref></td> | <td align="left">RFC 9559, <xref target="cuetrack-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xFA</td> | <td align="right">0xFA</td> | |||
<td align="left">ReferencePriority</td> | <td align="left">ReferencePriority</td> | |||
<td align="left">Described in <xref target="referencepriority-element"></xref></ td> | <td align="left">RFC 9559, <xref target="referencepriority-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xFB</td> | <td align="right">0xFB</td> | |||
<td align="left">ReferenceBlock</td> | <td align="left">ReferenceBlock</td> | |||
<td align="left">Described in <xref target="referenceblock-element"></xref></td> | <td align="left">RFC 9559, <xref target="referenceblock-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0xFD</td> | <td align="right">0xFD</td> | |||
<td align="left">ReferenceVirtual</td> | <td align="left">ReferenceVirtual</td> | |||
<td align="left">Reclaimed (<xref target="referencevirtual-element"></xref>)</td > | <td align="left">Reclaimed (RFC 9559, <xref target="referencevirtual-element"></ xref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x41A4</td> | <td align="right">0x41A4</td> | |||
<td align="left">BlockAddIDName</td> | <td align="left">BlockAddIDName</td> | |||
<td align="left">Described in <xref target="blockaddidname-element"></xref></td> | <td align="left">RFC 9559, <xref target="blockaddidname-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x41E4</td> | <td align="right">0x41E4</td> | |||
<td align="left">BlockAdditionMapping</td> | <td align="left">BlockAdditionMapping</td> | |||
<td align="left">Described in <xref target="blockadditionmapping-element"></xref ></td> | <td align="left">RFC 9559, <xref target="blockadditionmapping-element"></xref></ td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x41E7</td> | <td align="right">0x41E7</td> | |||
<td align="left">BlockAddIDType</td> | <td align="left">BlockAddIDType</td> | |||
<td align="left">Described in <xref target="blockaddidtype-element"></xref></td> | <td align="left">RFC 9559, <xref target="blockaddidtype-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x41ED</td> | <td align="right">0x41ED</td> | |||
<td align="left">BlockAddIDExtraData</td> | <td align="left">BlockAddIDExtraData</td> | |||
<td align="left">Described in <xref target="blockaddidextradata-element"></xref> </td> | <td align="left">RFC 9559, <xref target="blockaddidextradata-element"></xref></t d> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x41F0</td> | <td align="right">0x41F0</td> | |||
<td align="left">BlockAddIDValue</td> | <td align="left">BlockAddIDValue</td> | |||
<td align="left">Described in <xref target="blockaddidvalue-element"></xref></td > | <td align="left">RFC 9559, <xref target="blockaddidvalue-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x4254</td> | <td align="right">0x4254</td> | |||
<td align="left">ContentCompAlgo</td> | <td align="left">ContentCompAlgo</td> | |||
<td align="left">Described in <xref target="contentcompalgo-element"></xref></td > | <td align="left">RFC 9559, <xref target="contentcompalgo-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x4255</td> | <td align="right">0x4255</td> | |||
<td align="left">ContentCompSettings</td> | <td align="left">ContentCompSettings</td> | |||
<td align="left">Described in <xref target="contentcompsettings-element"></xref> </td> | <td align="left">RFC 9559, <xref target="contentcompsettings-element"></xref></t d> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x437C</td> | <td align="right">0x437C</td> | |||
<td align="left">ChapLanguage</td> | <td align="left">ChapLanguage</td> | |||
<td align="left">Described in <xref target="chaplanguage-element"></xref></td> | <td align="left">RFC 9559, <xref target="chaplanguage-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x437D</td> | <td align="right">0x437D</td> | |||
<td align="left">ChapLanguageBCP47</td> | <td align="left">ChapLanguageBCP47</td> | |||
<td align="left">Described in <xref target="chaplanguagebcp47-element"></xref></ td> | <td align="left">RFC 9559, <xref target="chaplanguagebcp47-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x437E</td> | <td align="right">0x437E</td> | |||
<td align="left">ChapCountry</td> | <td align="left">ChapCountry</td> | |||
<td align="left">Described in <xref target="chapcountry-element"></xref></td> | <td align="left">RFC 9559, <xref target="chapcountry-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x4444</td> | <td align="right">0x4444</td> | |||
<td align="left">SegmentFamily</td> | <td align="left">SegmentFamily</td> | |||
<td align="left">Described in <xref target="segmentfamily-element"></xref></td> | <td align="left">RFC 9559, <xref target="segmentfamily-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x4461</td> | <td align="right">0x4461</td> | |||
<td align="left">DateUTC</td> | <td align="left">DateUTC</td> | |||
<td align="left">Described in <xref target="dateutc-element"></xref></td> | <td align="left">RFC 9559, <xref target="dateutc-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x447A</td> | <td align="right">0x447A</td> | |||
<td align="left">TagLanguage</td> | <td align="left">TagLanguage</td> | |||
<td align="left">Described in <xref target="taglanguage-element"></xref></td> | <td align="left">RFC 9559, <xref target="taglanguage-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x447B</td> | <td align="right">0x447B</td> | |||
<td align="left">TagLanguageBCP47</td> | <td align="left">TagLanguageBCP47</td> | |||
<td align="left">Described in <xref target="taglanguagebcp47-element"></xref></t d> | <td align="left">RFC 9559, <xref target="taglanguagebcp47-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x4484</td> | <td align="right">0x4484</td> | |||
<td align="left">TagDefault</td> | <td align="left">TagDefault</td> | |||
<td align="left">Described in <xref target="tagdefault-element"></xref></td> | <td align="left">RFC 9559, <xref target="tagdefault-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x4485</td> | <td align="right">0x4485</td> | |||
<td align="left">TagBinary</td> | <td align="left">TagBinary</td> | |||
<td align="left">Described in <xref target="tagbinary-element"></xref></td> | <td align="left">RFC 9559, <xref target="tagbinary-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x4487</td> | <td align="right">0x4487</td> | |||
<td align="left">TagString</td> | <td align="left">TagString</td> | |||
<td align="left">Described in <xref target="tagstring-element"></xref></td> | <td align="left">RFC 9559, <xref target="tagstring-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x4489</td> | <td align="right">0x4489</td> | |||
<td align="left">Duration</td> | <td align="left">Duration</td> | |||
<td align="left">Described in <xref target="duration-element"></xref></td> | <td align="left">RFC 9559, <xref target="duration-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x44B4</td> | <td align="right">0x44B4</td> | |||
<td align="left">TagDefaultBogus</td> | <td align="left">TagDefaultBogus</td> | |||
<td align="left">Reclaimed (<xref target="tagdefaultbogus-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="tagdefaultbogus-element"></x ref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x450D</td> | <td align="right">0x450D</td> | |||
<td align="left">ChapProcessPrivate</td> | <td align="left">ChapProcessPrivate</td> | |||
<td align="left">Described in <xref target="chapprocessprivate-element"></xref>< /td> | <td align="left">RFC 9559, <xref target="chapprocessprivate-element"></xref></td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x45A3</td> | <td align="right">0x45A3</td> | |||
<td align="left">TagName</td> | <td align="left">TagName</td> | |||
<td align="left">Described in <xref target="tagname-element"></xref></td> | <td align="left">RFC 9559, <xref target="tagname-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x45B9</td> | <td align="right">0x45B9</td> | |||
<td align="left">EditionEntry</td> | <td align="left">EditionEntry</td> | |||
<td align="left">Described in <xref target="editionentry-element"></xref></td> | <td align="left">RFC 9559, <xref target="editionentry-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x45BC</td> | <td align="right">0x45BC</td> | |||
<td align="left">EditionUID</td> | <td align="left">EditionUID</td> | |||
<td align="left">Described in <xref target="editionuid-element"></xref></td> | <td align="left">RFC 9559, <xref target="editionuid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x45DB</td> | <td align="right">0x45DB</td> | |||
<td align="left">EditionFlagDefault</td> | <td align="left">EditionFlagDefault</td> | |||
<td align="left">Described in <xref target="editionflagdefault-element"></xref>< /td> | <td align="left">RFC 9559, <xref target="editionflagdefault-element"></xref></td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x45DD</td> | <td align="right">0x45DD</td> | |||
<td align="left">EditionFlagOrdered</td> | <td align="left">EditionFlagOrdered</td> | |||
<td align="left">Described in <xref target="editionflagordered-element"></xref>< /td> | <td align="left">RFC 9559, <xref target="editionflagordered-element"></xref></td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x465C</td> | <td align="right">0x465C</td> | |||
<td align="left">FileData</td> | <td align="left">FileData</td> | |||
<td align="left">Described in <xref target="filedata-element"></xref></td> | <td align="left">RFC 9559, <xref target="filedata-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x4660</td> | <td align="right">0x4660</td> | |||
<td align="left">FileMediaType</td> | <td align="left">FileMediaType</td> | |||
<td align="left">Described in <xref target="filemediatype-element"></xref></td> | <td align="left">RFC 9559, <xref target="filemediatype-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x4661</td> | <td align="right">0x4661</td> | |||
<td align="left">FileUsedStartTime</td> | <td align="left">FileUsedStartTime</td> | |||
<td align="left">Reclaimed (<xref target="fileusedstarttime-element"></xref>)</t d> | <td align="left">Reclaimed (RFC 9559, <xref target="fileusedstarttime-element">< /xref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x4662</td> | <td align="right">0x4662</td> | |||
<td align="left">FileUsedEndTime</td> | <td align="left">FileUsedEndTime</td> | |||
<td align="left">Reclaimed (<xref target="fileusedendtime-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="fileusedendtime-element"></x ref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x466E</td> | <td align="right">0x466E</td> | |||
<td align="left">FileName</td> | <td align="left">FileName</td> | |||
<td align="left">Described in <xref target="filename-element"></xref></td> | <td align="left">RFC 9559, <xref target="filename-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x4675</td> | <td align="right">0x4675</td> | |||
<td align="left">FileReferral</td> | <td align="left">FileReferral</td> | |||
<td align="left">Reclaimed (<xref target="filereferral-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="filereferral-element"></xref >)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x467E</td> | <td align="right">0x467E</td> | |||
<td align="left">FileDescription</td> | <td align="left">FileDescription</td> | |||
<td align="left">Described in <xref target="filedescription-element"></xref></td > | <td align="left">RFC 9559, <xref target="filedescription-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x46AE</td> | <td align="right">0x46AE</td> | |||
<td align="left">FileUID</td> | <td align="left">FileUID</td> | |||
<td align="left">Described in <xref target="fileuid-element"></xref></td> | <td align="left">RFC 9559, <xref target="fileuid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x47E1</td> | <td align="right">0x47E1</td> | |||
<td align="left">ContentEncAlgo</td> | <td align="left">ContentEncAlgo</td> | |||
<td align="left">Described in <xref target="contentencalgo-element"></xref></td> | <td align="left">RFC 9559, <xref target="contentencalgo-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x47E2</td> | <td align="right">0x47E2</td> | |||
<td align="left">ContentEncKeyID</td> | <td align="left">ContentEncKeyID</td> | |||
<td align="left">Described in <xref target="contentenckeyid-element"></xref></td > | <td align="left">RFC 9559, <xref target="contentenckeyid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x47E3</td> | <td align="right">0x47E3</td> | |||
<td align="left">ContentSignature</td> | <td align="left">ContentSignature</td> | |||
<td align="left">Reclaimed (<xref target="contentsignature-element"></xref>)</td > | <td align="left">Reclaimed (RFC 9559, <xref target="contentsignature-element"></ xref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x47E4</td> | <td align="right">0x47E4</td> | |||
<td align="left">ContentSigKeyID</td> | <td align="left">ContentSigKeyID</td> | |||
<td align="left">Reclaimed (<xref target="contentsigkeyid-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="contentsigkeyid-element"></x ref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x47E5</td> | <td align="right">0x47E5</td> | |||
<td align="left">ContentSigAlgo</td> | <td align="left">ContentSigAlgo</td> | |||
<td align="left">Reclaimed (<xref target="contentsigalgo-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="contentsigalgo-element"></xr ef>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x47E6</td> | <td align="right">0x47E6</td> | |||
<td align="left">ContentSigHashAlgo</td> | <td align="left">ContentSigHashAlgo</td> | |||
<td align="left">Reclaimed (<xref target="contentsighashalgo-element"></xref>)</ td> | <td align="left">Reclaimed (RFC 9559, <xref target="contentsighashalgo-element"> </xref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x47E7</td> | <td align="right">0x47E7</td> | |||
<td align="left">ContentEncAESSettings</td> | <td align="left">ContentEncAESSettings</td> | |||
<td align="left">Described in <xref target="contentencaessettings-element"></xre f></td> | <td align="left">RFC 9559, <xref target="contentencaessettings-element"></xref>< /td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x47E8</td> | <td align="right">0x47E8</td> | |||
<td align="left">AESSettingsCipherMode</td> | <td align="left">AESSettingsCipherMode</td> | |||
<td align="left">Described in <xref target="aessettingsciphermode-element"></xre f></td> | <td align="left">RFC 9559, <xref target="aessettingsciphermode-element"></xref>< /td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x4D80</td> | <td align="right">0x4D80</td> | |||
<td align="left">MuxingApp</td> | <td align="left">MuxingApp</td> | |||
<td align="left">Described in <xref target="muxingapp-element"></xref></td> | <td align="left">RFC 9559, <xref target="muxingapp-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x4DBB</td> | <td align="right">0x4DBB</td> | |||
<td align="left">Seek</td> | <td align="left">Seek</td> | |||
<td align="left">Described in <xref target="seek-element"></xref></td> | <td align="left">RFC 9559, <xref target="seek-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x5031</td> | <td align="right">0x5031</td> | |||
<td align="left">ContentEncodingOrder</td> | <td align="left">ContentEncodingOrder</td> | |||
<td align="left">Described in <xref target="contentencodingorder-element"></xref ></td> | <td align="left">RFC 9559, <xref target="contentencodingorder-element"></xref></ td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x5032</td> | <td align="right">0x5032</td> | |||
<td align="left">ContentEncodingScope</td> | <td align="left">ContentEncodingScope</td> | |||
<td align="left">Described in <xref target="contentencodingscope-element"></xref ></td> | <td align="left">RFC 9559, <xref target="contentencodingscope-element"></xref></ td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x5033</td> | <td align="right">0x5033</td> | |||
<td align="left">ContentEncodingType</td> | <td align="left">ContentEncodingType</td> | |||
<td align="left">Described in <xref target="contentencodingtype-element"></xref> </td> | <td align="left">RFC 9559, <xref target="contentencodingtype-element"></xref></t d> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x5034</td> | <td align="right">0x5034</td> | |||
<td align="left">ContentCompression</td> | <td align="left">ContentCompression</td> | |||
<td align="left">Described in <xref target="contentcompression-element"></xref>< /td> | <td align="left">RFC 9559, <xref target="contentcompression-element"></xref></td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x5035</td> | <td align="right">0x5035</td> | |||
<td align="left">ContentEncryption</td> | <td align="left">ContentEncryption</td> | |||
<td align="left">Described in <xref target="contentencryption-element"></xref></ td> | <td align="left">RFC 9559, <xref target="contentencryption-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x535F</td> | <td align="right">0x535F</td> | |||
<td align="left">CueRefNumber</td> | <td align="left">CueRefNumber</td> | |||
<td align="left">Reclaimed (<xref target="cuerefnumber-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="cuerefnumber-element"></xref >)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x536E</td> | <td align="right">0x536E</td> | |||
<td align="left">Name</td> | <td align="left">Name</td> | |||
<td align="left">Described in <xref target="name-element"></xref></td> | <td align="left">RFC 9559, <xref target="name-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x5378</td> | <td align="right">0x5378</td> | |||
<td align="left">CueBlockNumber</td> | <td align="left">CueBlockNumber</td> | |||
<td align="left">Described in <xref target="cueblocknumber-element"></xref></td> | <td align="left">RFC 9559, <xref target="cueblocknumber-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x537F</td> | <td align="right">0x537F</td> | |||
<td align="left">TrackOffset</td> | <td align="left">TrackOffset</td> | |||
<td align="left">Reclaimed (<xref target="trackoffset-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="trackoffset-element"></xref> )</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x53AB</td> | <td align="right">0x53AB</td> | |||
<td align="left">SeekID</td> | <td align="left">SeekID</td> | |||
<td align="left">Described in <xref target="seekid-element"></xref></td> | <td align="left">RFC 9559, <xref target="seekid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x53AC</td> | <td align="right">0x53AC</td> | |||
<td align="left">SeekPosition</td> | <td align="left">SeekPosition</td> | |||
<td align="left">Described in <xref target="seekposition-element"></xref></td> | <td align="left">RFC 9559, <xref target="seekposition-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x53B8</td> | <td align="right">0x53B8</td> | |||
<td align="left">StereoMode</td> | <td align="left">StereoMode</td> | |||
<td align="left">Described in <xref target="stereomode-element"></xref></td> | <td align="left">RFC 9559, <xref target="stereomode-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x53B9</td> | <td align="right">0x53B9</td> | |||
<td align="left">OldStereoMode</td> | <td align="left">OldStereoMode</td> | |||
<td align="left">Described in <xref target="oldstereomode-element"></xref></td> | <td align="left">RFC 9559, <xref target="oldstereomode-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x53C0</td> | <td align="right">0x53C0</td> | |||
<td align="left">AlphaMode</td> | <td align="left">AlphaMode</td> | |||
<td align="left">Described in <xref target="alphamode-element"></xref></td> | <td align="left">RFC 9559, <xref target="alphamode-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x54AA</td> | <td align="right">0x54AA</td> | |||
<td align="left">PixelCropBottom</td> | <td align="left">PixelCropBottom</td> | |||
<td align="left">Described in <xref target="pixelcropbottom-element"></xref></td > | <td align="left">RFC 9559, <xref target="pixelcropbottom-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x54B0</td> | <td align="right">0x54B0</td> | |||
<td align="left">DisplayWidth</td> | <td align="left">DisplayWidth</td> | |||
<td align="left">Described in <xref target="displaywidth-element"></xref></td> | <td align="left">RFC 9559, <xref target="displaywidth-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x54B2</td> | <td align="right">0x54B2</td> | |||
<td align="left">DisplayUnit</td> | <td align="left">DisplayUnit</td> | |||
<td align="left">Described in <xref target="displayunit-element"></xref></td> | <td align="left">RFC 9559, <xref target="displayunit-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x54B3</td> | <td align="right">0x54B3</td> | |||
<td align="left">AspectRatioType</td> | <td align="left">AspectRatioType</td> | |||
<td align="left">Reclaimed (<xref target="aspectratiotype-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="aspectratiotype-element"></x ref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x54BA</td> | <td align="right">0x54BA</td> | |||
<td align="left">DisplayHeight</td> | <td align="left">DisplayHeight</td> | |||
<td align="left">Described in <xref target="displayheight-element"></xref></td> | <td align="left">RFC 9559, <xref target="displayheight-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x54BB</td> | <td align="right">0x54BB</td> | |||
<td align="left">PixelCropTop</td> | <td align="left">PixelCropTop</td> | |||
<td align="left">Described in <xref target="pixelcroptop-element"></xref></td> | <td align="left">RFC 9559, <xref target="pixelcroptop-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x54CC</td> | <td align="right">0x54CC</td> | |||
<td align="left">PixelCropLeft</td> | <td align="left">PixelCropLeft</td> | |||
<td align="left">Described in <xref target="pixelcropleft-element"></xref></td> | <td align="left">RFC 9559, <xref target="pixelcropleft-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x54DD</td> | <td align="right">0x54DD</td> | |||
<td align="left">PixelCropRight</td> | <td align="left">PixelCropRight</td> | |||
<td align="left">Described in <xref target="pixelcropright-element"></xref></td> | <td align="left">RFC 9559, <xref target="pixelcropright-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55AA</td> | <td align="right">0x55AA</td> | |||
<td align="left">FlagForced</td> | <td align="left">FlagForced</td> | |||
<td align="left">Described in <xref target="flagforced-element"></xref></td> | <td align="left">RFC 9559, <xref target="flagforced-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55AB</td> | <td align="right">0x55AB</td> | |||
<td align="left">FlagHearingImpaired</td> | <td align="left">FlagHearingImpaired</td> | |||
<td align="left">Described in <xref target="flaghearingimpaired-element"></xref> </td> | <td align="left">RFC 9559, <xref target="flaghearingimpaired-element"></xref></t d> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55AC</td> | <td align="right">0x55AC</td> | |||
<td align="left">FlagVisualImpaired</td> | <td align="left">FlagVisualImpaired</td> | |||
<td align="left">Described in <xref target="flagvisualimpaired-element"></xref>< /td> | <td align="left">RFC 9559, <xref target="flagvisualimpaired-element"></xref></td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55AD</td> | <td align="right">0x55AD</td> | |||
<td align="left">FlagTextDescriptions</td> | <td align="left">FlagTextDescriptions</td> | |||
<td align="left">Described in <xref target="flagtextdescriptions-element"></xref ></td> | <td align="left">RFC 9559, <xref target="flagtextdescriptions-element"></xref></ td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55AE</td> | <td align="right">0x55AE</td> | |||
<td align="left">FlagOriginal</td> | <td align="left">FlagOriginal</td> | |||
<td align="left">Described in <xref target="flagoriginal-element"></xref></td> | <td align="left">RFC 9559, <xref target="flagoriginal-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55AF</td> | <td align="right">0x55AF</td> | |||
<td align="left">FlagCommentary</td> | <td align="left">FlagCommentary</td> | |||
<td align="left">Described in <xref target="flagcommentary-element"></xref></td> | <td align="left">RFC 9559, <xref target="flagcommentary-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55B0</td> | <td align="right">0x55B0</td> | |||
<td align="left">Colour</td> | <td align="left">Colour</td> | |||
<td align="left">Described in <xref target="colour-element"></xref></td> | <td align="left">RFC 9559, <xref target="colour-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55B1</td> | <td align="right">0x55B1</td> | |||
<td align="left">MatrixCoefficients</td> | <td align="left">MatrixCoefficients</td> | |||
<td align="left">Described in <xref target="matrixcoefficients-element"></xref>< /td> | <td align="left">RFC 9559, <xref target="matrixcoefficients-element"></xref></td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55B2</td> | <td align="right">0x55B2</td> | |||
<td align="left">BitsPerChannel</td> | <td align="left">BitsPerChannel</td> | |||
<td align="left">Described in <xref target="bitsperchannel-element"></xref></td> | <td align="left">RFC 9559, <xref target="bitsperchannel-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55B3</td> | <td align="right">0x55B3</td> | |||
<td align="left">ChromaSubsamplingHorz</td> | <td align="left">ChromaSubsamplingHorz</td> | |||
<td align="left">Described in <xref target="chromasubsamplinghorz-element"></xre f></td> | <td align="left">RFC 9559, <xref target="chromasubsamplinghorz-element"></xref>< /td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55B4</td> | <td align="right">0x55B4</td> | |||
<td align="left">ChromaSubsamplingVert</td> | <td align="left">ChromaSubsamplingVert</td> | |||
<td align="left">Described in <xref target="chromasubsamplingvert-element"></xre f></td> | <td align="left">RFC 9559, <xref target="chromasubsamplingvert-element"></xref>< /td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55B5</td> | <td align="right">0x55B5</td> | |||
<td align="left">CbSubsamplingHorz</td> | <td align="left">CbSubsamplingHorz</td> | |||
<td align="left">Described in <xref target="cbsubsamplinghorz-element"></xref></ td> | <td align="left">RFC 9559, <xref target="cbsubsamplinghorz-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55B6</td> | <td align="right">0x55B6</td> | |||
<td align="left">CbSubsamplingVert</td> | <td align="left">CbSubsamplingVert</td> | |||
<td align="left">Described in <xref target="cbsubsamplingvert-element"></xref></ td> | <td align="left">RFC 9559, <xref target="cbsubsamplingvert-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55B7</td> | <td align="right">0x55B7</td> | |||
<td align="left">ChromaSitingHorz</td> | <td align="left">ChromaSitingHorz</td> | |||
<td align="left">Described in <xref target="chromasitinghorz-element"></xref></t d> | <td align="left">RFC 9559, <xref target="chromasitinghorz-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55B8</td> | <td align="right">0x55B8</td> | |||
<td align="left">ChromaSitingVert</td> | <td align="left">ChromaSitingVert</td> | |||
<td align="left">Described in <xref target="chromasitingvert-element"></xref></t d> | <td align="left">RFC 9559, <xref target="chromasitingvert-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55B9</td> | <td align="right">0x55B9</td> | |||
<td align="left">Range</td> | <td align="left">Range</td> | |||
<td align="left">Described in <xref target="range-element"></xref></td> | <td align="left">RFC 9559, <xref target="range-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55BA</td> | <td align="right">0x55BA</td> | |||
<td align="left">TransferCharacteristics</td> | <td align="left">TransferCharacteristics</td> | |||
<td align="left">Described in <xref target="transfercharacteristics-element"></x ref></td> | <td align="left">RFC 9559, <xref target="transfercharacteristics-element"></xref ></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55BB</td> | <td align="right">0x55BB</td> | |||
<td align="left">Primaries</td> | <td align="left">Primaries</td> | |||
<td align="left">Described in <xref target="primaries-element"></xref></td> | <td align="left">RFC 9559, <xref target="primaries-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55BC</td> | <td align="right">0x55BC</td> | |||
<td align="left">MaxCLL</td> | <td align="left">MaxCLL</td> | |||
<td align="left">Described in <xref target="maxcll-element"></xref></td> | <td align="left">RFC 9559, <xref target="maxcll-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55BD</td> | <td align="right">0x55BD</td> | |||
<td align="left">MaxFALL</td> | <td align="left">MaxFALL</td> | |||
<td align="left">Described in <xref target="maxfall-element"></xref></td> | <td align="left">RFC 9559, <xref target="maxfall-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55D0</td> | <td align="right">0x55D0</td> | |||
<td align="left">MasteringMetadata</td> | <td align="left">MasteringMetadata</td> | |||
<td align="left">Described in <xref target="masteringmetadata-element"></xref></ td> | <td align="left">RFC 9559, <xref target="masteringmetadata-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55D1</td> | <td align="right">0x55D1</td> | |||
<td align="left">PrimaryRChromaticityX</td> | <td align="left">PrimaryRChromaticityX</td> | |||
<td align="left">Described in <xref target="primaryrchromaticityx-element"></xre f></td> | <td align="left">RFC 9559, <xref target="primaryrchromaticityx-element"></xref>< /td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55D2</td> | <td align="right">0x55D2</td> | |||
<td align="left">PrimaryRChromaticityY</td> | <td align="left">PrimaryRChromaticityY</td> | |||
<td align="left">Described in <xref target="primaryrchromaticityy-element"></xre f></td> | <td align="left">RFC 9559, <xref target="primaryrchromaticityy-element"></xref>< /td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55D3</td> | <td align="right">0x55D3</td> | |||
<td align="left">PrimaryGChromaticityX</td> | <td align="left">PrimaryGChromaticityX</td> | |||
<td align="left">Described in <xref target="primarygchromaticityx-element"></xre f></td> | <td align="left">RFC 9559, <xref target="primarygchromaticityx-element"></xref>< /td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55D4</td> | <td align="right">0x55D4</td> | |||
<td align="left">PrimaryGChromaticityY</td> | <td align="left">PrimaryGChromaticityY</td> | |||
<td align="left">Described in <xref target="primarygchromaticityy-element"></xre f></td> | <td align="left">RFC 9559, <xref target="primarygchromaticityy-element"></xref>< /td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55D5</td> | <td align="right">0x55D5</td> | |||
<td align="left">PrimaryBChromaticityX</td> | <td align="left">PrimaryBChromaticityX</td> | |||
<td align="left">Described in <xref target="primarybchromaticityx-element"></xre f></td> | <td align="left">RFC 9559, <xref target="primarybchromaticityx-element"></xref>< /td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55D6</td> | <td align="right">0x55D6</td> | |||
<td align="left">PrimaryBChromaticityY</td> | <td align="left">PrimaryBChromaticityY</td> | |||
<td align="left">Described in <xref target="primarybchromaticityy-element"></xre f></td> | <td align="left">RFC 9559, <xref target="primarybchromaticityy-element"></xref>< /td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55D7</td> | <td align="right">0x55D7</td> | |||
<td align="left">WhitePointChromaticityX</td> | <td align="left">WhitePointChromaticityX</td> | |||
<td align="left">Described in <xref target="whitepointchromaticityx-element"></x ref></td> | <td align="left">RFC 9559, <xref target="whitepointchromaticityx-element"></xref ></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55D8</td> | <td align="right">0x55D8</td> | |||
<td align="left">WhitePointChromaticityY</td> | <td align="left">WhitePointChromaticityY</td> | |||
<td align="left">Described in <xref target="whitepointchromaticityy-element"></x ref></td> | <td align="left">RFC 9559, <xref target="whitepointchromaticityy-element"></xref ></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55D9</td> | <td align="right">0x55D9</td> | |||
<td align="left">LuminanceMax</td> | <td align="left">LuminanceMax</td> | |||
<td align="left">Described in <xref target="luminancemax-element"></xref></td> | <td align="left">RFC 9559, <xref target="luminancemax-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55DA</td> | <td align="right">0x55DA</td> | |||
<td align="left">LuminanceMin</td> | <td align="left">LuminanceMin</td> | |||
<td align="left">Described in <xref target="luminancemin-element"></xref></td> | <td align="left">RFC 9559, <xref target="luminancemin-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x55EE</td> | <td align="right">0x55EE</td> | |||
<td align="left">MaxBlockAdditionID</td> | <td align="left">MaxBlockAdditionID</td> | |||
<td align="left">Described in <xref target="maxblockadditionid-element"></xref>< /td> | <td align="left">RFC 9559, <xref target="maxblockadditionid-element"></xref></td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x5654</td> | <td align="right">0x5654</td> | |||
<td align="left">ChapterStringUID</td> | <td align="left">ChapterStringUID</td> | |||
<td align="left">Described in <xref target="chapterstringuid-element"></xref></t d> | <td align="left">RFC 9559, <xref target="chapterstringuid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x56AA</td> | <td align="right">0x56AA</td> | |||
<td align="left">CodecDelay</td> | <td align="left">CodecDelay</td> | |||
<td align="left">Described in <xref target="codecdelay-element"></xref></td> | <td align="left">RFC 9559, <xref target="codecdelay-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x56BB</td> | <td align="right">0x56BB</td> | |||
<td align="left">SeekPreRoll</td> | <td align="left">SeekPreRoll</td> | |||
<td align="left">Described in <xref target="seekpreroll-element"></xref></td> | <td align="left">RFC 9559, <xref target="seekpreroll-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x5741</td> | <td align="right">0x5741</td> | |||
<td align="left">WritingApp</td> | <td align="left">WritingApp</td> | |||
<td align="left">Described in <xref target="writingapp-element"></xref></td> | <td align="left">RFC 9559, <xref target="writingapp-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x5854</td> | <td align="right">0x5854</td> | |||
<td align="left">SilentTracks</td> | <td align="left">SilentTracks</td> | |||
<td align="left">Reclaimed (<xref target="silenttracks-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="silenttracks-element"></xref >)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x58D7</td> | <td align="right">0x58D7</td> | |||
<td align="left">SilentTrackNumber</td> | <td align="left">SilentTrackNumber</td> | |||
<td align="left">Reclaimed (<xref target="silenttracknumber-element"></xref>)</t d> | <td align="left">Reclaimed (RFC 9559, <xref target="silenttracknumber-element">< /xref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x61A7</td> | <td align="right">0x61A7</td> | |||
<td align="left">AttachedFile</td> | <td align="left">AttachedFile</td> | |||
<td align="left">Described in <xref target="attachedfile-element"></xref></td> | <td align="left">RFC 9559, <xref target="attachedfile-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x6240</td> | <td align="right">0x6240</td> | |||
<td align="left">ContentEncoding</td> | <td align="left">ContentEncoding</td> | |||
<td align="left">Described in <xref target="contentencoding-element"></xref></td > | <td align="left">RFC 9559, <xref target="contentencoding-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x6264</td> | <td align="right">0x6264</td> | |||
<td align="left">BitDepth</td> | <td align="left">BitDepth</td> | |||
<td align="left">Described in <xref target="bitdepth-element"></xref></td> | <td align="left">RFC 9559, <xref target="bitdepth-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x63A2</td> | <td align="right">0x63A2</td> | |||
<td align="left">CodecPrivate</td> | <td align="left">CodecPrivate</td> | |||
<td align="left">Described in <xref target="codecprivate-element"></xref></td> | <td align="left">RFC 9559, <xref target="codecprivate-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x63C0</td> | <td align="right">0x63C0</td> | |||
<td align="left">Targets</td> | <td align="left">Targets</td> | |||
<td align="left">Described in <xref target="targets-element"></xref></td> | <td align="left">RFC 9559, <xref target="targets-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x63C3</td> | <td align="right">0x63C3</td> | |||
<td align="left">ChapterPhysicalEquiv</td> | <td align="left">ChapterPhysicalEquiv</td> | |||
<td align="left">Described in <xref target="chapterphysicalequiv-element"></xref ></td> | <td align="left">RFC 9559, <xref target="chapterphysicalequiv-element"></xref></ td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x63C4</td> | <td align="right">0x63C4</td> | |||
<td align="left">TagChapterUID</td> | <td align="left">TagChapterUID</td> | |||
<td align="left">Described in <xref target="tagchapteruid-element"></xref></td> | <td align="left">RFC 9559, <xref target="tagchapteruid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x63C5</td> | <td align="right">0x63C5</td> | |||
<td align="left">TagTrackUID</td> | <td align="left">TagTrackUID</td> | |||
<td align="left">Described in <xref target="tagtrackuid-element"></xref></td> | <td align="left">RFC 9559, <xref target="tagtrackuid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x63C6</td> | <td align="right">0x63C6</td> | |||
<td align="left">TagAttachmentUID</td> | <td align="left">TagAttachmentUID</td> | |||
<td align="left">Described in <xref target="tagattachmentuid-element"></xref></t d> | <td align="left">RFC 9559, <xref target="tagattachmentuid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x63C9</td> | <td align="right">0x63C9</td> | |||
<td align="left">TagEditionUID</td> | <td align="left">TagEditionUID</td> | |||
<td align="left">Described in <xref target="tageditionuid-element"></xref></td> | <td align="left">RFC 9559, <xref target="tageditionuid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x63CA</td> | <td align="right">0x63CA</td> | |||
<td align="left">TargetType</td> | <td align="left">TargetType</td> | |||
<td align="left">Described in <xref target="targettype-element"></xref></td> | <td align="left">RFC 9559, <xref target="targettype-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x6624</td> | <td align="right">0x6624</td> | |||
<td align="left">TrackTranslate</td> | <td align="left">TrackTranslate</td> | |||
<td align="left">Described in <xref target="tracktranslate-element"></xref></td> | <td align="left">RFC 9559, <xref target="tracktranslate-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x66A5</td> | <td align="right">0x66A5</td> | |||
<td align="left">TrackTranslateTrackID</td> | <td align="left">TrackTranslateTrackID</td> | |||
<td align="left">Described in <xref target="tracktranslatetrackid-element"></xre f></td> | <td align="left">RFC 9559, <xref target="tracktranslatetrackid-element"></xref>< /td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x66BF</td> | <td align="right">0x66BF</td> | |||
<td align="left">TrackTranslateCodec</td> | <td align="left">TrackTranslateCodec</td> | |||
<td align="left">Described in <xref target="tracktranslatecodec-element"></xref> </td> | <td align="left">RFC 9559, <xref target="tracktranslatecodec-element"></xref></t d> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x66FC</td> | <td align="right">0x66FC</td> | |||
<td align="left">TrackTranslateEditionUID</td> | <td align="left">TrackTranslateEditionUID</td> | |||
<td align="left">Described in <xref target="tracktranslateeditionuid-element"></ xref></td> | <td align="left">RFC 9559, <xref target="tracktranslateeditionuid-element"></xre f></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x67C8</td> | <td align="right">0x67C8</td> | |||
<td align="left">SimpleTag</td> | <td align="left">SimpleTag</td> | |||
<td align="left">Described in <xref target="simpletag-element"></xref></td> | <td align="left">RFC 9559, <xref target="simpletag-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x68CA</td> | <td align="right">0x68CA</td> | |||
<td align="left">TargetTypeValue</td> | <td align="left">TargetTypeValue</td> | |||
<td align="left">Described in <xref target="targettypevalue-element"></xref></td > | <td align="left">RFC 9559, <xref target="targettypevalue-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x6911</td> | <td align="right">0x6911</td> | |||
<td align="left">ChapProcessCommand</td> | <td align="left">ChapProcessCommand</td> | |||
<td align="left">Described in <xref target="chapprocesscommand-element"></xref>< /td> | <td align="left">RFC 9559, <xref target="chapprocesscommand-element"></xref></td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x6922</td> | <td align="right">0x6922</td> | |||
<td align="left">ChapProcessTime</td> | <td align="left">ChapProcessTime</td> | |||
<td align="left">Described in <xref target="chapprocesstime-element"></xref></td > | <td align="left">RFC 9559, <xref target="chapprocesstime-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x6924</td> | <td align="right">0x6924</td> | |||
<td align="left">ChapterTranslate</td> | <td align="left">ChapterTranslate</td> | |||
<td align="left">Described in <xref target="chaptertranslate-element"></xref></t d> | <td align="left">RFC 9559, <xref target="chaptertranslate-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x6933</td> | <td align="right">0x6933</td> | |||
<td align="left">ChapProcessData</td> | <td align="left">ChapProcessData</td> | |||
<td align="left">Described in <xref target="chapprocessdata-element"></xref></td > | <td align="left">RFC 9559, <xref target="chapprocessdata-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x6944</td> | <td align="right">0x6944</td> | |||
<td align="left">ChapProcess</td> | <td align="left">ChapProcess</td> | |||
<td align="left">Described in <xref target="chapprocess-element"></xref></td> | <td align="left">RFC 9559, <xref target="chapprocess-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x6955</td> | <td align="right">0x6955</td> | |||
<td align="left">ChapProcessCodecID</td> | <td align="left">ChapProcessCodecID</td> | |||
<td align="left">Described in <xref target="chapprocesscodecid-element"></xref>< /td> | <td align="left">RFC 9559, <xref target="chapprocesscodecid-element"></xref></td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x69A5</td> | <td align="right">0x69A5</td> | |||
<td align="left">ChapterTranslateID</td> | <td align="left">ChapterTranslateID</td> | |||
<td align="left">Described in <xref target="chaptertranslateid-element"></xref>< /td> | <td align="left">RFC 9559, <xref target="chaptertranslateid-element"></xref></td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x69BF</td> | <td align="right">0x69BF</td> | |||
<td align="left">ChapterTranslateCodec</td> | <td align="left">ChapterTranslateCodec</td> | |||
<td align="left">Described in <xref target="chaptertranslatecodec-element"></xre f></td> | <td align="left">RFC 9559, <xref target="chaptertranslatecodec-element"></xref>< /td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x69FC</td> | <td align="right">0x69FC</td> | |||
<td align="left">ChapterTranslateEditionUID</td> | <td align="left">ChapterTranslateEditionUID</td> | |||
<td align="left">Described in <xref target="chaptertranslateeditionuid-element"> </xref></td> | <td align="left">RFC 9559, <xref target="chaptertranslateeditionuid-element"></x ref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x6D80</td> | <td align="right">0x6D80</td> | |||
<td align="left">ContentEncodings</td> | <td align="left">ContentEncodings</td> | |||
<td align="left">Described in <xref target="contentencodings-element"></xref></t d> | <td align="left">RFC 9559, <xref target="contentencodings-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x6DE7</td> | <td align="right">0x6DE7</td> | |||
<td align="left">MinCache</td> | <td align="left">MinCache</td> | |||
<td align="left">Reclaimed (<xref target="mincache-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="mincache-element"></xref>)</ td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x6DF8</td> | <td align="right">0x6DF8</td> | |||
<td align="left">MaxCache</td> | <td align="left">MaxCache</td> | |||
<td align="left">Reclaimed (<xref target="maxcache-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="maxcache-element"></xref>)</ td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x6E67</td> | <td align="right">0x6E67</td> | |||
<td align="left">ChapterSegmentUUID</td> | <td align="left">ChapterSegmentUUID</td> | |||
<td align="left">Described in <xref target="chaptersegmentuuid-element"></xref>< /td> | <td align="left">RFC 9559, <xref target="chaptersegmentuuid-element"></xref></td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x6EBC</td> | <td align="right">0x6EBC</td> | |||
<td align="left">ChapterSegmentEditionUID</td> | <td align="left">ChapterSegmentEditionUID</td> | |||
<td align="left">Described in <xref target="chaptersegmenteditionuid-element"></ xref></td> | <td align="left">RFC 9559, <xref target="chaptersegmenteditionuid-element"></xre f></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x6FAB</td> | <td align="right">0x6FAB</td> | |||
<td align="left">TrackOverlay</td> | <td align="left">TrackOverlay</td> | |||
<td align="left">Reclaimed (<xref target="trackoverlay-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="trackoverlay-element"></xref >)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x7373</td> | <td align="right">0x7373</td> | |||
<td align="left">Tag</td> | <td align="left">Tag</td> | |||
<td align="left">Described in <xref target="tag-element"></xref></td> | <td align="left">RFC 9559, <xref target="tag-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x7384</td> | <td align="right">0x7384</td> | |||
<td align="left">SegmentFilename</td> | <td align="left">SegmentFilename</td> | |||
<td align="left">Described in <xref target="segmentfilename-element"></xref></td > | <td align="left">RFC 9559, <xref target="segmentfilename-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x73A4</td> | <td align="right">0x73A4</td> | |||
<td align="left">SegmentUUID</td> | <td align="left">SegmentUUID</td> | |||
<td align="left">Described in <xref target="segmentuuid-element"></xref></td> | <td align="left">RFC 9559, <xref target="segmentuuid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x73C4</td> | <td align="right">0x73C4</td> | |||
<td align="left">ChapterUID</td> | <td align="left">ChapterUID</td> | |||
<td align="left">Described in <xref target="chapteruid-element"></xref></td> | <td align="left">RFC 9559, <xref target="chapteruid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x73C5</td> | <td align="right">0x73C5</td> | |||
<td align="left">TrackUID</td> | <td align="left">TrackUID</td> | |||
<td align="left">Described in <xref target="trackuid-element"></xref></td> | <td align="left">RFC 9559, <xref target="trackuid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x7446</td> | <td align="right">0x7446</td> | |||
<td align="left">AttachmentLink</td> | <td align="left">AttachmentLink</td> | |||
<td align="left">Described in <xref target="attachmentlink-element"></xref></td> | <td align="left">RFC 9559, <xref target="attachmentlink-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x75A1</td> | <td align="right">0x75A1</td> | |||
<td align="left">BlockAdditions</td> | <td align="left">BlockAdditions</td> | |||
<td align="left">Described in <xref target="blockadditions-element"></xref></td> | <td align="left">RFC 9559, <xref target="blockadditions-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x75A2</td> | <td align="right">0x75A2</td> | |||
<td align="left">DiscardPadding</td> | <td align="left">DiscardPadding</td> | |||
<td align="left">Described in <xref target="discardpadding-element"></xref></td> | <td align="left">RFC 9559, <xref target="discardpadding-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x7670</td> | <td align="right">0x7670</td> | |||
<td align="left">Projection</td> | <td align="left">Projection</td> | |||
<td align="left">Described in <xref target="projection-element"></xref></td> | <td align="left">RFC 9559, <xref target="projection-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x7671</td> | <td align="right">0x7671</td> | |||
<td align="left">ProjectionType</td> | <td align="left">ProjectionType</td> | |||
<td align="left">Described in <xref target="projectiontype-element"></xref></td> | <td align="left">RFC 9559, <xref target="projectiontype-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x7672</td> | <td align="right">0x7672</td> | |||
<td align="left">ProjectionPrivate</td> | <td align="left">ProjectionPrivate</td> | |||
<td align="left">Described in <xref target="projectionprivate-element"></xref></ td> | <td align="left">RFC 9559, <xref target="projectionprivate-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x7673</td> | <td align="right">0x7673</td> | |||
<td align="left">ProjectionPoseYaw</td> | <td align="left">ProjectionPoseYaw</td> | |||
<td align="left">Described in <xref target="projectionposeyaw-element"></xref></ td> | <td align="left">RFC 9559, <xref target="projectionposeyaw-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x7674</td> | <td align="right">0x7674</td> | |||
<td align="left">ProjectionPosePitch</td> | <td align="left">ProjectionPosePitch</td> | |||
<td align="left">Described in <xref target="projectionposepitch-element"></xref> </td> | <td align="left">RFC 9559, <xref target="projectionposepitch-element"></xref></t d> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x7675</td> | <td align="right">0x7675</td> | |||
<td align="left">ProjectionPoseRoll</td> | <td align="left">ProjectionPoseRoll</td> | |||
<td align="left">Described in <xref target="projectionposeroll-element"></xref>< /td> | <td align="left">RFC 9559, <xref target="projectionposeroll-element"></xref></td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x78B5</td> | <td align="right">0x78B5</td> | |||
<td align="left">OutputSamplingFrequency</td> | <td align="left">OutputSamplingFrequency</td> | |||
<td align="left">Described in <xref target="outputsamplingfrequency-element"></x ref></td> | <td align="left">RFC 9559, <xref target="outputsamplingfrequency-element"></xref ></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x7BA9</td> | <td align="right">0x7BA9</td> | |||
<td align="left">Title</td> | <td align="left">Title</td> | |||
<td align="left">Described in <xref target="title-element"></xref></td> | <td align="left">RFC 9559, <xref target="title-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x7D7B</td> | <td align="right">0x7D7B</td> | |||
<td align="left">ChannelPositions</td> | <td align="left">ChannelPositions</td> | |||
<td align="left">Reclaimed (<xref target="channelpositions-element"></xref>)</td > | <td align="left">Reclaimed (RFC 9559, <xref target="channelpositions-element"></ xref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x22B59C</td> | <td align="right">0x22B59C</td> | |||
<td align="left">Language</td> | <td align="left">Language</td> | |||
<td align="left">Described in <xref target="language-element"></xref></td> | <td align="left">RFC 9559, <xref target="language-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x22B59D</td> | <td align="right">0x22B59D</td> | |||
<td align="left">LanguageBCP47</td> | <td align="left">LanguageBCP47</td> | |||
<td align="left">Described in <xref target="languagebcp47-element"></xref></td> | <td align="left">RFC 9559, <xref target="languagebcp47-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x23314F</td> | <td align="right">0x23314F</td> | |||
<td align="left">TrackTimestampScale</td> | <td align="left">TrackTimestampScale</td> | |||
<td align="left">Described in <xref target="tracktimestampscale-element"></xref> </td> | <td align="left">RFC 9559, <xref target="tracktimestampscale-element"></xref></t d> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x234E7A</td> | <td align="right">0x234E7A</td> | |||
<td align="left">DefaultDecodedFieldDuration</td> | <td align="left">DefaultDecodedFieldDuration</td> | |||
<td align="left">Described in <xref target="defaultdecodedfieldduration-element" ></xref></td> | <td align="left">RFC 9559, <xref target="defaultdecodedfieldduration-element"></ xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x2383E3</td> | <td align="right">0x2383E3</td> | |||
<td align="left">FrameRate</td> | <td align="left">FrameRate</td> | |||
<td align="left">Reclaimed (<xref target="framerate-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="framerate-element"></xref>)< /td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x23E383</td> | <td align="right">0x23E383</td> | |||
<td align="left">DefaultDuration</td> | <td align="left">DefaultDuration</td> | |||
<td align="left">Described in <xref target="defaultduration-element"></xref></td > | <td align="left">RFC 9559, <xref target="defaultduration-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x258688</td> | <td align="right">0x258688</td> | |||
<td align="left">CodecName</td> | <td align="left">CodecName</td> | |||
<td align="left">Described in <xref target="codecname-element"></xref></td> | <td align="left">RFC 9559, <xref target="codecname-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x26B240</td> | <td align="right">0x26B240</td> | |||
<td align="left">CodecDownloadURL</td> | <td align="left">CodecDownloadURL</td> | |||
<td align="left">Reclaimed (<xref target="codecdownloadurl-element"></xref>)</td > | <td align="left">Reclaimed (RFC 9559, <xref target="codecdownloadurl-element"></ xref>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x2AD7B1</td> | <td align="right">0x2AD7B1</td> | |||
<td align="left">TimestampScale</td> | <td align="left">TimestampScale</td> | |||
<td align="left">Described in <xref target="timestampscale-element"></xref></td> | <td align="left">RFC 9559, <xref target="timestampscale-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x2EB524</td> | <td align="right">0x2EB524</td> | |||
<td align="left">UncompressedFourCC</td> | <td align="left">UncompressedFourCC</td> | |||
<td align="left">Described in <xref target="uncompressedfourcc-element"></xref>< /td> | <td align="left">RFC 9559, <xref target="uncompressedfourcc-element"></xref></td > | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x2FB523</td> | <td align="right">0x2FB523</td> | |||
<td align="left">GammaValue</td> | <td align="left">GammaValue</td> | |||
<td align="left">Reclaimed (<xref target="gammavalue-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="gammavalue-element"></xref>) </td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x3A9697</td> | <td align="right">0x3A9697</td> | |||
<td align="left">CodecSettings</td> | <td align="left">CodecSettings</td> | |||
<td align="left">Reclaimed (<xref target="codecsettings-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="codecsettings-element"></xre f>)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x3B4040</td> | <td align="right">0x3B4040</td> | |||
<td align="left">CodecInfoURL</td> | <td align="left">CodecInfoURL</td> | |||
<td align="left">Reclaimed (<xref target="codecinfourl-element"></xref>)</td> | <td align="left">Reclaimed (RFC 9559, <xref target="codecinfourl-element"></xref >)</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x3C83AB</td> | <td align="right">0x3C83AB</td> | |||
<td align="left">PrevFilename</td> | <td align="left">PrevFilename</td> | |||
<td align="left">Described in <xref target="prevfilename-element"></xref></td> | <td align="left">RFC 9559, <xref target="prevfilename-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x3CB923</td> | <td align="right">0x3CB923</td> | |||
<td align="left">PrevUUID</td> | <td align="left">PrevUUID</td> | |||
<td align="left">Described in <xref target="prevuuid-element"></xref></td> | <td align="left">RFC 9559, <xref target="prevuuid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x3E83BB</td> | <td align="right">0x3E83BB</td> | |||
<td align="left">NextFilename</td> | <td align="left">NextFilename</td> | |||
<td align="left">Described in <xref target="nextfilename-element"></xref></td> | <td align="left">RFC 9559, <xref target="nextfilename-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x3EB923</td> | <td align="right">0x3EB923</td> | |||
<td align="left">NextUUID</td> | <td align="left">NextUUID</td> | |||
<td align="left">Described in <xref target="nextuuid-element"></xref></td> | <td align="left">RFC 9559, <xref target="nextuuid-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x1043A770</td> | <td align="right">0x1043A770</td> | |||
<td align="left">Chapters</td> | <td align="left">Chapters</td> | |||
<td align="left">Described in <xref target="chapters-element"></xref></td> | <td align="left">RFC 9559, <xref target="chapters-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x114D9B74</td> | <td align="right">0x114D9B74</td> | |||
<td align="left">SeekHead</td> | <td align="left">SeekHead</td> | |||
<td align="left">Described in <xref target="seekhead-element"></xref></td> | <td align="left">RFC 9559, <xref target="seekhead-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x1254C367</td> | <td align="right">0x1254C367</td> | |||
<td align="left">Tags</td> | <td align="left">Tags</td> | |||
<td align="left">Described in <xref target="tags-element"></xref></td> | <td align="left">RFC 9559, <xref target="tags-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x1549A966</td> | <td align="right">0x1549A966</td> | |||
<td align="left">Info</td> | <td align="left">Info</td> | |||
<td align="left">Described in <xref target="info-element"></xref></td> | <td align="left">RFC 9559, <xref target="info-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x1654AE6B</td> | <td align="right">0x1654AE6B</td> | |||
<td align="left">Tracks</td> | <td align="left">Tracks</td> | |||
<td align="left">Described in <xref target="tracks-element"></xref></td> | <td align="left">RFC 9559, <xref target="tracks-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x18538067</td> | <td align="right">0x18538067</td> | |||
<td align="left">Segment</td> | <td align="left">Segment</td> | |||
<td align="left">Described in <xref target="segment-element"></xref></td> | <td align="left">RFC 9559, <xref target="segment-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x1941A469</td> | <td align="right">0x1941A469</td> | |||
<td align="left">Attachments</td> | <td align="left">Attachments</td> | |||
<td align="left">Described in <xref target="attachments-element"></xref></td> | <td align="left">RFC 9559, <xref target="attachments-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x1C53BB6B</td> | <td align="right">0x1C53BB6B</td> | |||
<td align="left">Cues</td> | <td align="left">Cues</td> | |||
<td align="left">Described in <xref target="cues-element"></xref></td> | <td align="left">RFC 9559, <xref target="cues-element"></xref></td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="right">0x1F43B675</td> | <td align="right">0x1F43B675</td> | |||
<td align="left">Cluster</td> | <td align="left">Cluster</td> | |||
<td align="left">Described in <xref target="cluster-element"></xref></td> | <td align="left">RFC 9559, <xref target="cluster-element"></xref></td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table></section> | |||
<section anchor="chapter-codec-ids-registry"><name>Chapter Codec IDs Registry</n ame> | <section anchor="chapter-codec-ids-registry"><name>Chapter Codec IDs Registry</n ame> | |||
<t>This document creates a new IANA registry called the "Matroska Chapter C odec IDs" registry. | <t>IANA has created a new registry called the "Matroska Chapter Codec IDs" regis try. | |||
The values correspond to the unsigned integer <tt>ChapProcessCodecID</tt> value described in <xref target="chapprocesscodecid-element"></xref>.</t> | The values correspond to the unsigned integer <tt>ChapProcessCodecID</tt> value described in <xref target="chapprocesscodecid-element"></xref>.</t> | |||
<t>To register a new Chapter Codec ID in this registry, one needs a Chapter Code c ID, | <t>To register a new Chapter Codec ID in this registry, one needs a Chapter Code c ID, | |||
a Change Controller (IETF or email of registrant) and | a Change Controller (IETF or email of registrant), and | |||
an optional Reference to a document describing the Chapter Codec ID.</t> | an optional Reference to a document describing the Chapter Codec ID.</t> | |||
<t>The Chapter Codec IDs are to be allocated according to the "First Come F | <t>The Chapter Codec IDs are to be allocated according to the "First Come First | |||
irst Served" policy <xref target="RFC8126"></xref>.</t> | Served" policy <xref target="RFC8126"></xref>.</t> | |||
<t><tt>ChapProcessCodecID</tt> values of "0" and "1" are RES | <t>Values of "0" and "1" are reserved for future use (with the IETF as the Chang | |||
ERVED to the IETF for future use.</t> | e Controller).</t> | |||
</section> | </section> | |||
<section anchor="media-types"><name>Media Types</name> | <section anchor="media-types"><name>Media Types</name> | |||
<t>Matroska files and streams are found in three main forms: audio-video files, | ||||
audio-only and occasionally with stereoscopic video tracks.</t> | ||||
<t>Historically Matroska files and streams have used the following media types w | ||||
ith a "x-" prefix. | ||||
For better compatibility a system <bcp14>SHOULD</bcp14> be able to handle both f | ||||
ormats. | ||||
Newer systems <bcp14>SHOULD NOT</bcp14> use the historic format and use the form | ||||
at that follows the <xref target="RFC6838"></xref> format instead.</t> | ||||
<t>Please register three media types, the <xref target="RFC6838"></xref> templat | ||||
es are below:</t> | ||||
<section anchor="for-files-containing-video-tracks"><name>For files containing v | <!-- [rfced] Please review the text after the ":" and let us know how to | |||
ideo tracks</name> | update for clarity. Are the words "files" and "tracks" needed? | |||
<dl spacing="compact"> | Original: | |||
Matroska files and streams are found in three main forms: audio-video | ||||
files, audio-only and occasionally with stereoscopic video tracks. | ||||
Perhaps: | ||||
Matroska files and streams are found in three main forms: audio-video, | ||||
audio-only, and (occasionally) stereoscopic video. | ||||
--> | ||||
<t>Matroska files and streams are found in three main forms: audio-video files, | ||||
audio-only, and occasionally with stereoscopic video tracks.</t> | ||||
<t>Historically, Matroska files and streams have used the following media types | ||||
with an "x-" prefix. | ||||
For better compatibility, a system <bcp14>SHOULD</bcp14> be able to handle both | ||||
formats. | ||||
Newer systems <bcp14>SHOULD NOT</bcp14> use the historic format and use the form | ||||
at that follows the format in <xref target="RFC6838"></xref> instead.</t> | ||||
<t>IANA has registered three media types per the templates (see <xref target="RF | ||||
C6838"></xref>) in the following subsections.</t> | ||||
<section anchor="for-files-containing-video-tracks"><name>For Files Containing V | ||||
ideo Tracks</name> | ||||
<dl> | ||||
<dt>Type name:</dt> | <dt>Type name:</dt> | |||
<dd>video</dd> | <dd>video</dd> | |||
<dt>Subtype name:</dt> | <dt>Subtype name:</dt> | |||
<dd>matroska</dd> | <dd>matroska</dd> | |||
<dt>Required parameters:</dt> | <dt>Required parameters:</dt> | |||
<dd>N/A</dd> | <dd>N/A</dd> | |||
<dt>Optional parameters:</dt> | <dt>Optional parameters:</dt> | |||
<dd>N/A</dd> | <dd>N/A</dd> | |||
<dt>Encoding considerations:</dt> | <dt>Encoding considerations:</dt> | |||
<dd>as per this document and RFC8794</dd> | <dd>As per RFCs 9559 and 8794</dd> | |||
<dt>Security considerations:</dt> | <dt>Security considerations:</dt> | |||
<dd>See <xref target="security-considerations"></xref>.</dd> | <dd>See <xref target="security-considerations"></xref> of RFC 9559.</dd> | |||
<dt>Interoperability considerations:</dt> | <dt>Interoperability considerations:</dt> | |||
<dd>Due to the extensibility of Matroska, it is possible to encounter files with unknown but valid EBML Elements. Readers should be ready to handle this case. T he fixed byte order, octet boundaries and UTF-8 usage allow for broad interopara bility.</dd> | <dd>Due to the extensibility of Matroska, it is possible to encounter files with unknown but valid EBML Elements. Readers should be ready to handle this case. T he fixed byte order, octet boundaries, and UTF-8 usage allow for broad interoper ability.</dd> | |||
<dt>Published specification:</dt> | <dt>Published specification:</dt> | |||
<dd>THISRFC</dd> | <dd>RFC 9559</dd> | |||
<dt>Applications that use this media type:</dt> | <dt>Applications that use this media type:</dt> | |||
<dd>FFmpeg, VLC, ...</dd> | <dd>FFmpeg, VLC, ...</dd> | |||
<dt>Fragment identifier considerations:</dt> | <dt>Fragment identifier considerations:</dt> | |||
<dd>N/A</dd> | <dd>N/A</dd> | |||
</dl> | <dt>Additional information:</dt><dd> | |||
<t>Additional information:</t> | <t><br/></t> | |||
<ul> | ||||
<li><t>Deprecated alias names for this type: video/x-matroska</t> | ||||
</li> | ||||
<li><t>Magic number(s): N/A</t> | ||||
</li> | ||||
<li><t>File extension(s): mkv</t> | ||||
</li> | ||||
<li><t>Macintosh file type code(s): N/A</t> | ||||
</li> | ||||
</ul> | ||||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>Deprecated alias names for this type:</dt><dd>video/x-matroska</dd> | ||||
<dt>Magic number(s):</dt><dd>N/A</dd> | ||||
<dt>File extension(s):</dt><dd>mkv</dd> | ||||
<dt>Macintosh file type code(s):</dt><dd>N/A</dd> | ||||
</dl></dd> | ||||
<dt>Person & email address to contact for further information:</dt> | <dt>Person & email address to contact for further information:</dt> | |||
<dd>IETF CELLAR WG cellar@ietf.org</dd> | <dd>IETF CELLAR WG (cellar@ietf.org)</dd> | |||
<dt>Intended usage:</dt> | <dt>Intended usage:</dt> | |||
<dd>COMMON</dd> | <dd>COMMON</dd> | |||
<dt>Restrictions on usage:</dt> | <dt>Restrictions on usage:</dt> | |||
<dd>None</dd> | <dd>None</dd> | |||
<dt>Author:</dt> | <dt>Author:</dt> | |||
<dd>IETF CELLAR WG</dd> | <dd>IETF CELLAR WG</dd> | |||
<dt>Change controller:</dt> | <dt>Change controller:</dt> | |||
<dd>IETF</dd> | <dd>IETF</dd> | |||
<dt>Provisional registration? (standards tree only):</dt> | ||||
<dd>No</dd> | ||||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="for-files-containing-audio-tracks-with-no-video-tracks"><name>F or files containing audio tracks with no video tracks</name> | <section anchor="for-files-containing-audio-tracks-with-no-video-tracks"><name>F or Files Containing Audio Tracks with No Video Tracks</name> | |||
<dl spacing="compact"> | <dl> | |||
<dt>Type name:</dt> | <dt>Type name:</dt> | |||
<dd>audio</dd> | <dd>audio</dd> | |||
<dt>Subtype name:</dt> | <dt>Subtype name:</dt> | |||
<dd>matroska</dd> | <dd>matroska</dd> | |||
<dt>Required parameters:</dt> | <dt>Required parameters:</dt> | |||
<dd>N/A</dd> | <dd>N/A</dd> | |||
<dt>Optional parameters:</dt> | <dt>Optional parameters:</dt> | |||
<dd>N/A</dd> | <dd>N/A</dd> | |||
<dt>Encoding considerations:</dt> | <dt>Encoding considerations:</dt> | |||
<dd>as per this document and RFC8794</dd> | <dd>As per RFCs 9559 and 8794</dd> | |||
<dt>Security considerations:</dt> | <dt>Security considerations:</dt> | |||
<dd>See <xref target="security-considerations"></xref>.</dd> | <dd>See <xref target="security-considerations"></xref> of RFC 9559.</dd> | |||
<dt>Interoperability considerations:</dt> | <dt>Interoperability considerations:</dt> | |||
<dd>Due to the extensibility of Matroska, it is possible to encounter files with unknown but valid EBML Elements. Readers should be ready to handle this case. T he fixed byte order, octet boundaries and UTF-8 usage allow for broad interopara bility.</dd> | <dd>Due to the extensibility of Matroska, it is possible to encounter files with unknown but valid EBML Elements. Readers should be ready to handle this case. T he fixed byte order, octet boundaries, and UTF-8 usage allow for broad interoper ability.</dd> | |||
<dt>Published specification:</dt> | <dt>Published specification:</dt> | |||
<dd>THISRFC</dd> | <dd>RFC 9559</dd> | |||
<dt>Applications that use this media type:</dt> | <dt>Applications that use this media type:</dt> | |||
<dd>FFmpeg, VLC, ...</dd> | <dd>FFmpeg, VLC, ...</dd> | |||
<dt>Fragment identifier considerations:</dt> | <dt>Fragment identifier considerations:</dt> | |||
<dd>N/A</dd> | <dd>N/A</dd> | |||
</dl> | <dt>Additional information:</dt><dd> | |||
<t>Additional information:</t> | <t><br/></t> | |||
<ul> | ||||
<li><t>Deprecated alias names for this type: audio/x-matroska</t> | ||||
</li> | ||||
<li><t>Magic number(s): N/A</t> | ||||
</li> | ||||
<li><t>File extension(s): mka</t> | ||||
</li> | ||||
<li><t>Macintosh file type code(s): N/A</t> | ||||
</li> | ||||
</ul> | ||||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>Deprecated alias names for this type:</dt><dd>audio/x-matroska</dd> | ||||
<dt>Magic number(s):</dt><dd>N/A</dd> | ||||
<dt>File extension(s):</dt><dd>mka</dd> | ||||
<dt>Macintosh file type code(s):</dt><dd>N/A</dd> | ||||
</dl> | ||||
</dd></dl> | ||||
<dl> | ||||
<dt>Person & email address to contact for further information:</dt> | <dt>Person & email address to contact for further information:</dt> | |||
<dd>IETF CELLAR WG cellar@ietf.org</dd> | <dd>IETF CELLAR WG (cellar@ietf.org)</dd> | |||
<dt>Intended usage:</dt> | <dt>Intended usage:</dt> | |||
<dd>COMMON</dd> | <dd>COMMON</dd> | |||
<dt>Restrictions on usage:</dt> | <dt>Restrictions on usage:</dt> | |||
<dd>None</dd> | <dd>None</dd> | |||
<dt>Author:</dt> | <dt>Author:</dt> | |||
<dd>IETF CELLAR WG</dd> | <dd>IETF CELLAR WG</dd> | |||
<dt>Change controller:</dt> | <dt>Change controller:</dt> | |||
<dd>IETF</dd> | <dd>IETF</dd> | |||
<dt>Provisional registration? (standards tree only):</dt> | ||||
<dd>No</dd> | ||||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="for-files-containing-a-stereoscopic-video-track"><name>For file s containing a stereoscopic video track</name> | <section anchor="for-files-containing-a-stereoscopic-video-track"><name>For File s Containing a Stereoscopic Video Track</name> | |||
<dl spacing="compact"> | <dl> | |||
<dt>Type name:</dt> | <dt>Type name:</dt> | |||
<dd>video</dd> | <dd>video</dd> | |||
<dt>Subtype name:</dt> | <dt>Subtype name:</dt> | |||
<dd>matroska-3d</dd> | <dd>matroska-3d</dd> | |||
<dt>Required parameters:</dt> | <dt>Required parameters:</dt> | |||
<dd>N/A</dd> | <dd>N/A</dd> | |||
<dt>Optional parameters:</dt> | <dt>Optional parameters:</dt> | |||
<dd>N/A</dd> | <dd>N/A</dd> | |||
<dt>Encoding considerations:</dt> | <dt>Encoding considerations:</dt> | |||
<dd>as per this document and RFC8794</dd> | <dd>As per RFCs 9559 and 8794 </dd> | |||
<dt>Security considerations:</dt> | <dt>Security considerations:</dt> | |||
<dd>See <xref target="security-considerations"></xref>.</dd> | <dd>See <xref target="security-considerations"></xref> of RFC 9559.</dd> | |||
<dt>Interoperability considerations:</dt> | <dt>Interoperability considerations:</dt> | |||
<dd>Due to the extensibility of Matroska, it is possible to encounter files with unknown but valid EBML Elements. Readers should be ready to handle this case. T he fixed byte order, octet boundaries and UTF-8 usage allow for broad interopara bility.</dd> | <dd>Due to the extensibility of Matroska, it is possible to encounter files with unknown but valid EBML Elements. Readers should be ready to handle this case. T he fixed byte order, octet boundaries, and UTF-8 usage allow for broad interoper ability.</dd> | |||
<dt>Published specification:</dt> | <dt>Published specification:</dt> | |||
<dd>THISRFC</dd> | <dd>RFC 9559</dd> | |||
<dt>Applications that use this media type:</dt> | <dt>Applications that use this media type:</dt> | |||
<dd>FFmpeg, VLC, ...</dd> | <dd>FFmpeg, VLC, ...</dd> | |||
<dt>Fragment identifier considerations:</dt> | <dt>Fragment identifier considerations:</dt> | |||
<dd>N/A</dd> | <dd>N/A</dd> | |||
</dl> | <dt>Additional information:</dt><dd> | |||
<t>Additional information:</t> | <t><br/></t> | |||
<ul> | ||||
<li><t>Deprecated alias names for this type: video/x-matroska-3d</t> | ||||
</li> | ||||
<li><t>Magic number(s): N/A</t> | ||||
</li> | ||||
<li><t>File extension(s): mk3d</t> | ||||
</li> | ||||
<li><t>Macintosh file type code(s): N/A</t> | ||||
</li> | ||||
</ul> | ||||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>Deprecated alias names for this type:</dt><dd>video/x-matroska-3d</dd> | ||||
<dt>Magic number(s):</dt><dd>N/A</dd> | ||||
<dt>File extension(s):</dt><dd>mk3d</dd> | ||||
<dt>Macintosh file type code(s):</dt><dd>N/A</dd> | ||||
</dl> | ||||
</dd></dl> | ||||
<dl> | ||||
<dt>Person & email address to contact for further information:</dt> | <dt>Person & email address to contact for further information:</dt> | |||
<dd>IETF CELLAR WG cellar@ietf.org</dd> | <dd>IETF CELLAR WG (cellar@ietf.org)</dd> | |||
<dt>Intended usage:</dt> | <dt>Intended usage:</dt> | |||
<dd>COMMON</dd> | <dd>COMMON</dd> | |||
<dt>Restrictions on usage:</dt> | <dt>Restrictions on usage:</dt> | |||
<dd>None</dd> | <dd>None</dd> | |||
<dt>Author:</dt> | <dt>Author:</dt> | |||
<dd>IETF CELLAR WG</dd> | <dd>IETF CELLAR WG</dd> | |||
<dt>Change controller:</dt> | <dt>Change controller:</dt> | |||
<dd>IETF</dd> | <dd>IETF</dd> | |||
<dt>Provisional registration? (standards tree only):</dt> | ||||
<dd>No</dd> | ||||
</dl> | </dl> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="annex-a-historic-deprecated-elements"><name>Annex A: Historic D | </middle> | |||
eprecated Elements</name> | ||||
<t>As Matroska evolved since 2002 many parts that were considered for use in the | <back> | |||
format were never | ||||
used and often incorrectly designed. Many of the elements that were then defined | <displayreference target="RFC5646" to="BCP47"/> | |||
are not | <displayreference target="I-D.ietf-cellar-codec" to="MatroskaCodec"/> | |||
<displayreference target="I-D.ietf-cellar-tags" to="MatroskaTags"/> | ||||
<!-- [rfced] BCP 47 contains two RFCs: RFC 4647 and RFC 5646. See | ||||
https://www.rfc-editor.org/info/bcp47. | ||||
It seems that when "BCP 47" and "[BCP47]" are used, the intent is to refer to | ||||
RFC 5646. Is this correct? | ||||
If so, we recommend the following updates. Note that we will not make any | ||||
changes to element names (e.g., LanguageBCP47 and ChapLanguageBCP47). | ||||
a) Add the following sentence to the end of Section 12 to clarify that "BCP47" | ||||
in element names refers specifically to RFC 5646. | ||||
Perhaps: | ||||
In this document, "BCP47" in element names refers specifically to [RFC5646], | ||||
which is | ||||
part of BCP 47. | ||||
b) Update these sentences in Section 12 as follows to use RFC 5647 rather than B | ||||
CP 47 | ||||
Original: | ||||
Starting in Matroska version 4, either [ISO639-2] or [BCP47] MAY be | ||||
used, although BCP 47 is RECOMMENDED. The BCP 47 Language Elements | ||||
are "LanguageBCP47 Element", "TagLanguageBCP47 Element", and | ||||
"ChapLanguageBCP47 Element". If a BCP 47 Language Element and an ISO | ||||
639-2 Language Element are used within the same Parent Element, then | ||||
the ISO 639-2 Language Element MUST be ignored and precedence given | ||||
to the BCP 47 Language Element. | ||||
Perhaps: | ||||
Starting in Matroska version 4, the forms defined | ||||
in either [ISO639-2] or [RFC5646] MAY be | ||||
used, although the form in [RFC5646] is RECOMMENDED. The Language Elements | ||||
in the [RFC5646] form are are "LanguageBCP47 Element", "TagLanguageBCP47 Elem | ||||
ent", | ||||
and "ChapLanguageBCP47 Element". If both an [ISO639-2] Language Element and | ||||
an [RFC5646] Language Element are used within the same Parent Element, then | ||||
the Language Element in the [ISO639-2] form MUST be ignored and precedence gi | ||||
ven | ||||
to the Language Element in the [RFC5646] form. | ||||
c) Update these sentences to use RFC 5647 rather than BCP 47 | ||||
Original: | ||||
definition: The language of the track, in the [BCP47] form; see | ||||
Section 12 on language codes. | ||||
definition: A language corresponding to the ChapString, in the | ||||
[BCP47] form; see Section 12 on language codes. | ||||
definition: The language used in the TagString, in the [BCP47] form; | ||||
see Section 12 on language codes. | ||||
Country codes are the [BCP47] two-letter region subtag, without the | ||||
UK exception. | ||||
Perhaps: | ||||
definition: The language of the track, in the form defined in | ||||
[RFC5646]; see Section 12 on language codes. | ||||
definition: A language corresponding to the ChapString, in | ||||
the form defined in [RFC5646]; see Section 12 on language codes. | ||||
definition: The language used in the TagString, in | ||||
the form defined in [RFC5646]; see Section 12 on language codes. | ||||
Country codes are the two-letter region subtag defined in [RFC5646], | ||||
without the UK exception. | ||||
--> | ||||
<!-- [rfced] We see a few instances of "in the Matroska languages form" with a | ||||
pointer to Section 12, which discusses the [ISO639-2] or [BCP47] | ||||
forms. Please review and let us know if "in the Matroska languages form" | ||||
will be clear to readers or if updates are needed. | ||||
Original: | ||||
definition: The language of the track, in the Matroska languages | ||||
form; see Section 12 on language codes. | ||||
definition: A language corresponding to the string, in the Matroska | ||||
languages form; see Section 12 on language codes. | ||||
definition: Specifies the language of the tag specified, in the | ||||
Matroska languages form; see Section 12 on language codes. | ||||
--> | ||||
<!-- [rfced] References | ||||
a) FYI - For clarity, we added "[RFC8794]" after several instances of "the | ||||
EBML specification". | ||||
b) The original link provided for the following reference is a withdrawn | ||||
standard. We have updated the the date and URL to point to the current | ||||
version. Please let us know any concerns. | ||||
Original: | ||||
[ISO9899] International Organization for Standardization, | ||||
"Information technology - Programming languages - C", | ||||
ISO/IEC 9899:2011, 2011, | ||||
<https://www.iso.org/standard/57853.html>. | ||||
Current: | ||||
[ISO9899] International Organization for Standardization, | ||||
"Information technology - Programming languages - C", | ||||
ISO/IEC 9899:2018, June 2018, | ||||
<https://www.iso.org/standard/74528.html>. | ||||
c) The URL in the following reference entry displays a landing page titled | ||||
"Welcome to the DVD Forum". We were unable to find a page titled "DVD-Books: | ||||
Part 3 DVD-Video Book". How may we update this entry so that readers can find | ||||
the reference? | ||||
Original: | ||||
[DVD-Video] | ||||
DVD Forum, "DVD-Books: Part 3 DVD-Video Book", 1 November | ||||
1995, <http://www.dvdforum.org/>. | ||||
d) We do not see the title "DivX Trick Track Extensions" at the URL | ||||
provided. Should the title of this reference entry be updated to "DivX Plus MKV | ||||
extension: Smooth FF/RW" per the URL? | ||||
Original: | ||||
[DivXTrickTrack] | ||||
"DivX Trick Track Extensions", 14 December 2010, | ||||
<https://web.archive.org/web/20101222001148/ | ||||
http://labs.divx.com/node/16601>. | ||||
e) We note that this standard was withdrawn on May 19, 2005. Are any updates nee | ||||
ded? | ||||
Original: | ||||
[FIPS.46-3] | ||||
US National Institute of Standards and Technology, "Data | ||||
Encryption Standard (DES)", FIPS PUB 46, 25 October 1999, | ||||
<https://csrc.nist.gov/publications/detail/fips/46/3/ | ||||
archive/1999-10-25>. | ||||
f) We have updated the reference as follows to reflect 1) the title shown in | ||||
the URL and 2) the authors listed in the Authors section of the URL. Please | ||||
let us know any concerns. | ||||
[LZO] Tarreau, W., Rodgman, R., and M. Oberhumer, "Lempel-Ziv- | ||||
Oberhumer compression", 30 October 2018, | ||||
<https://www.kernel.org/doc/Documentation/lzo.txt>. | ||||
Current: | ||||
[LZO] Tarreau, W. and R. Rodgman, "LZO stream format as | ||||
understood by Linux's LZO decompressor", October 2018, | ||||
<https://www.kernel.org/doc/Documentation/lzo.txt>. | ||||
g) May we update the URL in this reference entry as follows to point | ||||
directly to the paper? | ||||
Original: | ||||
[Twofish] Schneier, B., Kelsey, J., Whiting, D., Wagner, D., Hall, | ||||
C., and N. Ferguson, "Twofish: A 128-Bit Block Cipher", 15 | ||||
June 1998, <https://www.schneier.com/academic/twofish/>. | ||||
Current: | ||||
[Twofish] Schneier, B., Kelsey, J., Whiting, D., Wagner, D., Hall, | ||||
C., and N. Ferguson, "Twofish: A 128-Bit Block Cipher", | ||||
June 1998, <https://www.schneier.com/academic/archives/1998/06/twofis | ||||
h_a_128-bit_bl.html>. | ||||
h) The Security Considerations section points to Section 2.1 of [RFC4732], but | ||||
no corresponding entry in the References section was included. We added | ||||
[RFC4732] as an informative reference. Please let us know if it should be | ||||
normative instead. | ||||
--> | ||||
<references><name>References</name> | ||||
<references><name>Normative References</name> | ||||
<reference anchor="CIE-1931" target="https://en.wikipedia.org/wiki/CIE_1931_colo | ||||
r_space"> | ||||
<front> | ||||
<title>CIE 1931 color space</title> | ||||
<author> | ||||
<organization>Wikipedia</organization> | ||||
</author> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="ISO639-2" target="https://www.loc.gov/standards/iso639-2/php/ | ||||
code_list.php"> | ||||
<front> | ||||
<title>Codes for the Representation of Names of Languages</title> | ||||
<author> | ||||
<organization>International Organization for Standardization</organization | ||||
> | ||||
</author> | ||||
<date year="2017" month="December"></date> | ||||
</front> | ||||
<seriesInfo name="ISO" value="639-2"></seriesInfo> | ||||
</reference> | ||||
<reference anchor="ISO9899" target="https://www.iso.org/standard/74528.html"> | ||||
<front> | ||||
<title>Information technology -- Programming languages -- C</title> | ||||
<author> | ||||
<organization>International Organization for Standardization</organization | ||||
> | ||||
</author> | ||||
<date month="June" year="2018"></date> | ||||
</front> | ||||
<seriesInfo name="ISO/IEC" value="9899:2018"></seriesInfo> | ||||
</reference> | ||||
<reference anchor="ITU-H.273" target="https://www.itu.int/rec/T-REC-H.273-202309 | ||||
-P/en"> | ||||
<front> | ||||
<title>Coding-independent code points for video signal type identification</ | ||||
title> | ||||
<author> | ||||
<organization>ITU-T</organization> | ||||
</author> | ||||
<date year="2023" month="September"></date> | ||||
</front> | ||||
<seriesInfo name="ITU-T Recommendation" value="H.273"></seriesInfo> | ||||
</reference> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5646.xml" | ||||
/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1950.xml" | ||||
/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml" | ||||
/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4122.xml" | ||||
/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6838.xml" | ||||
/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8081.xml" | ||||
/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml" | ||||
/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml" | ||||
/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8794.xml" | ||||
/> | ||||
</references> | ||||
<references><name>Informative References</name> | ||||
<reference anchor="Err7189" quote-title="false" target="https://www.rfc-editor.o | ||||
rg/errata/eid7189"> | ||||
<front> | ||||
<title>Erratum ID 7189</title> | ||||
<author> | ||||
<organization>RFC Errata</organization> | ||||
</author> | ||||
</front> | ||||
<refcontent>RFC 8794</refcontent> | ||||
</reference> | ||||
<reference anchor="Err7191" quote-title="false" target="https://www.rfc-editor.o | ||||
rg/errata/eid7191"> | ||||
<front> | ||||
<title>Erratum ID 7191</title> | ||||
<author> | ||||
<organization>RFC Errata</organization> | ||||
</author> | ||||
</front> | ||||
<refcontent>RFC 8794</refcontent> | ||||
</reference> | ||||
<reference anchor="AVIFormat" target="https://docs.microsoft.com/en-us/windows/w | ||||
in32/directshow/avi-riff-file-reference"> | ||||
<front> | ||||
<title>AVI RIFF File Reference</title> | ||||
<author> | ||||
<organization>Microsoft Corporation</organization> </author> <date year="2 | ||||
023" | ||||
month="June"></date> </front> </reference> <reference anchor="BZIP2" | ||||
target="https://sourceware.org/bzip2/"> <front> <title>bzip2</title> | ||||
<author fullname="Julian Seward" initials="J." surname="Seward"> | ||||
<organization></organization> | ||||
</author> | ||||
<date year="2019" month="July"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="Blowfish" target="https://www.schneier.com/academic/blowfish/ | ||||
"> | ||||
<front> | ||||
<title>The Blowfish Encryption Algorithm</title> | ||||
<author fullname="Bruce Schneier" initials="B." surname="Schneier"> | ||||
<organization></organization> | ||||
</author> | ||||
<date year="1993"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="DVD-Video" target="http://www.dvdforum.org/"> | ||||
<front> | ||||
<title>DVD-Books: Part 3 DVD-Video Book</title> | ||||
<author> | ||||
<organization>DVD Forum</organization> | ||||
</author> | ||||
<date year="1995" month="November"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="DivXTrickTrack" target="https://web.archive.org/web/201012220 | ||||
01148/http://labs.divx.com/node/16601"> | ||||
<front> | ||||
<title>DivX Trick Track Extensions</title> | ||||
<author></author> | ||||
<date year="2010" month="December"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="DivXWorldFonts" target="https://web.archive.org/web/201102141 | ||||
32246/http://labs.divx.com/node/16602"> | ||||
<front> | ||||
<title>World Fonts</title> | ||||
<author></author> | ||||
<date year="2010" month="December"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="FIPS197" target="https://csrc.nist.gov/publications/detail/fi | ||||
ps/197/final"> | ||||
<front> | ||||
<title>Advanced Encryption Standard (AES)</title> | ||||
<author> | ||||
<organization>National Institute of Standards and Technology (NIST)</organ | ||||
ization> | ||||
</author> | ||||
<date year="2001" month="November"></date> | ||||
</front> | ||||
<seriesInfo name="FIPS" value="PUB 197"></seriesInfo> | ||||
<seriesInfo name="DOI" value="10.6028/NIST.FIPS.197"></seriesInfo> | ||||
</reference> | ||||
<reference anchor="FIPS46-3" target="https://csrc.nist.gov/publications/detail/f | ||||
ips/46/3/archive/1999-10-25"> | ||||
<front> | ||||
<title>Data Encryption Standard (DES)</title> | ||||
<author> | ||||
<organization>National Institute of Standards and Technology (NIST)</organ | ||||
ization> | ||||
</author> | ||||
<date year="1999" month="October"></date> | ||||
</front> | ||||
<seriesInfo name="FIPS" value="PUB 46"></seriesInfo> | ||||
</reference> | ||||
<reference anchor="FourCC-RGB" target="https://web.archive.org/web/2016060921480 | ||||
6/https://www.fourcc.org/rgb.php"> | ||||
<front> | ||||
<title>RGB pixel formats</title> | ||||
<author> | ||||
<organization>FOURCC</organization> | ||||
</author> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="FourCC-YUV" target="https://web.archive.org/web/2016060921480 | ||||
6/https://www.fourcc.org/yuv.php"> | ||||
<front> | ||||
<title>YUV pixel formats</title> | ||||
<author> | ||||
<organization>FOURCC</organization> | ||||
</author> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="JPEG" target="https://www.w3.org/Graphics/JPEG/itu-t81.pdf"> | ||||
<front> | ||||
<title>INFORMATION TECHNOLOGY - DIGITAL COMPRESSION AND CODING OF | ||||
CONTINUOUS-TONE STILL IMAGES - REQUIREMENTS AND GUIDELINES</title> | ||||
<author> | ||||
<organization>ITU</organization> | ||||
</author> | ||||
<date year="1992" month="September"></date> | ||||
</front> | ||||
<seriesInfo name="ITU Recommendation" value="T.81"></seriesInfo> | ||||
</reference> | ||||
<reference anchor="LZO" target="https://www.kernel.org/doc/Documentation/lzo.txt | ||||
"> | ||||
<front> | ||||
<title>LZO stream format as understood by Linux's LZO decompressor</title> | ||||
<author fullname="Willy Tarreau" initials="W." surname="Tarreau"> | ||||
<organization></organization> | ||||
</author> | ||||
<author fullname="Dave Rodgman" initials="R." surname="Rodgman"> | ||||
<organization></organization> | ||||
</author> | ||||
<date year="2018" month="October"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="MCF" target="http://mukoli.free.fr/mcf/"> | ||||
<front> | ||||
<title>MCF specification, introduction</title> | ||||
<author></author> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="MSRGB" target="https://learn.microsoft.com/en-us/openspecs/wi | ||||
ndows_protocols/ms-wmf/4e588f70-bd92-4a6f-b77f-35d0feaf7a57"> | ||||
<front> | ||||
<title>Compression Enumeration</title> | ||||
<author> | ||||
<organization>Microsoft Corporation</organization> | ||||
</author> | ||||
<date month="June" year="2021"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="MSYUV16" target="https://learn.microsoft.com/en-us/windows/wi | ||||
n32/medfound/10-bit-and-16-bit-yuv-video-formats"> | ||||
<front> | ||||
<title>10-bit and 16-bit YUV Video Formats</title> | ||||
<author> | ||||
<organization>Microsoft Corporation</organization> | ||||
</author> | ||||
<date month="November" year="2022"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="MSYUV8" target="https://learn.microsoft.com/en-us/windows/win | ||||
32/medfound/recommended-8-bit-yuv-formats-for-video-rendering"> | ||||
<front> | ||||
<title>Recommended 8-Bit YUV Formats for Video Rendering</title> | ||||
<author> | ||||
<organization>Microsoft Corporation</organization> | ||||
</author> | ||||
<date month="January" year="2021"/> | ||||
</front> | ||||
</reference> | ||||
<!-- IESG state: I-D Exists as of 3/1 --> | ||||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-ce | ||||
llar-codec.xml"/> | ||||
<!-- IESG state: I-D Exists as of 3/1 --> | ||||
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-ce | ||||
llar-tags.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.0959.xml" | ||||
/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2083.xml" | ||||
/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3533.xml" | ||||
/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9110.xml" | ||||
/> | ||||
<xi:include | ||||
href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4732.xml"/> | ||||
<reference anchor="SMB-CIFS" target="https://winprotocoldoc.blob.core.windows.ne | ||||
t/productionwindowsarchives/MS-CIFS/%5bMS-CIFS%5d.pdf"> | ||||
<front> | ||||
<title>[MS-CIFS]: Common Internet File System (CIFS) Protocol</title> | ||||
<author> | ||||
<organization>Microsoft Corporation</organization> | ||||
</author> | ||||
<date year="2020" month="October"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="SP800-38A" target="https://nvlpubs.nist.gov/nistpubs/Legacy/S | ||||
P/nistspecialpublication800-38a.pdf"> | ||||
<front> | ||||
<title>Recommendation for Block Cipher Modes of Operation: Methods and Techn | ||||
iques</title> | ||||
<author> | ||||
<organization>National Institute of Standards and Technology (NIST)</organ | ||||
ization> | ||||
</author> | ||||
<date year="2001" month="December"></date> | ||||
</front> | ||||
<seriesInfo name="DOI" value="10.6028/NIST.SP.800-38A"></seriesInfo> | ||||
<seriesInfo name="NIST Special Publication" value="800-38A"/> | ||||
</reference> | ||||
<reference anchor="SP800-67" target="https://nvlpubs.nist.gov/nistpubs/SpecialPu | ||||
blications/NIST.SP.800-67r2.pdf"> | ||||
<front> | ||||
<title>Recommendation for the Triple Data Encryption Algorithm (TDEA) Block | ||||
Cipher</title> | ||||
<author> | ||||
<organization>National Institute of Standards and Technology (NIST)</organ | ||||
ization> | ||||
</author> | ||||
<date year="2017" month="November"></date> | ||||
</front> | ||||
<seriesInfo name="DOI" value="10.6028/NIST.SP.800-67r2"></seriesInfo> | ||||
<seriesInfo name="NIST Special Publication" value="800-67"/> | ||||
</reference> | ||||
<reference anchor="Twofish" target="https://www.schneier.com/academic/twofish/"> | ||||
<front> | ||||
<title>Twofish: A 128-Bit Block Cipher</title> | ||||
<author fullname="Bruce Schneier" initials="B." surname="Schneier"> | ||||
<organization></organization> | ||||
</author> | ||||
<author fullname="John Kelsey" initials="J." surname="Kelsey"> | ||||
<organization></organization> | ||||
</author> | ||||
<author fullname="Doug Whiting" initials="D." surname="Whiting"> | ||||
<organization></organization> | ||||
</author> | ||||
<author fullname="David Wagner" initials="D." surname="Wagner"> | ||||
<organization></organization> | ||||
</author> | ||||
<author fullname="Chris Hall" initials="C." surname="Hall"> | ||||
<organization></organization> | ||||
</author> | ||||
<author fullname="Niels Ferguson" initials="N." surname="Ferguson"> | ||||
<organization></organization> | ||||
</author> | ||||
<date year="1998" month="June"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="WebM-Enc" target="https://www.webmproject.org/docs/webm-encry | ||||
ption/"> | ||||
<front> | ||||
<title>WebM Encryption</title> | ||||
<author fullname="Frank Galligan"> | ||||
<organization>Google</organization> | ||||
</author> | ||||
<date year="2016" month="September"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="WebVTT" target="https://www.w3.org/TR/2019/CR-webvtt1-2019040 | ||||
4/"> | ||||
<front> | ||||
<title>WebVTT: The Web Video Text Tracks Format</title> | ||||
<author fullname="Simon Pieters"> | ||||
<organization>Opera Software AS</organization> | ||||
</author> | ||||
<author fullname="Silvia Pfeiffer" role="editor"> | ||||
<organization>NICTA</organization> | ||||
</author> | ||||
<author fullname="Philip Jaegenstedt"> | ||||
<organization>Opera Software ASA</organization> | ||||
</author> | ||||
<author fullname="Ian Hickson"> | ||||
<organization>Google</organization> | ||||
</author> | ||||
<date year="2019" month="April"></date> | ||||
</front> | ||||
<refcontent>W3C Candidate Recommendation</refcontent> | ||||
</reference> | ||||
</references> | ||||
</references> | ||||
<section anchor="appendix-a-historic-deprecated-elements"><name>Historic Depreca | ||||
ted Elements</name> | ||||
<t>As Matroska has evolved since 2002, many parts that were considered for use i | ||||
n the format were never | ||||
used and often incorrectly designed. Many of the elements that were defined then | ||||
are not | ||||
found in any known files but were part of public specs. DivX also had a few cust om elements that | found in any known files but were part of public specs. DivX also had a few cust om elements that | |||
were designed for custom features.</t> | were designed for custom features.</t> | |||
<t>We list these elements that have a known ID that <bcp14>SHOULD NOT</bcp14> be | <t>In this appendix, we list elements that have a known ID that <bcp14>SHOULD NO | |||
reused to avoid colliding | T</bcp14> be reused to avoid colliding | |||
with existing files. They might be reassigned by IANA in the future if there are | with existing files. These might be reassigned by IANA in the future if there ar | |||
no more IDs for a given size. | e no more IDs for a given size. | |||
A short description of what each ID was used for is included, but the text is no t normative.</t> | A short description of what each ID was used for is included, but the text is no t normative.</t> | |||
<section anchor="silenttracks-element"><name>SilentTracks Element</name> | <section anchor="silenttracks-element"><name>SilentTracks Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>master / 0x5854</dd> | <dd>master / 0x5854</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\SilentTracks</tt></dd> | <dd><tt>\Segment\Cluster\SilentTracks</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The list of tracks that are not used in that part of the stream. | <dd>The list of tracks that are not used in that part of the stream. | |||
It is useful when using overlay tracks on seeking or to decide what track to use .</dd> | It is useful when using overlay tracks for seeking or deciding what track to use .</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="silenttracknumber-element"><name>SilentTrackNumber Element</nam e> | <section anchor="silenttracknumber-element"><name>SilentTrackNumber Element</nam e> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0x58D7</dd> | <dd>uinteger / 0x58D7</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\SilentTracks\SilentTrackNumber</tt></dd> | <dd><tt>\Segment\Cluster\SilentTracks\SilentTrackNumber</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>One of the track number that are not used from now on in the stream. | <dd>One of the track numbers that is not used from now on in the stream. | |||
It could change later if not specified as silent in a further Cluster.</dd> | It could change later if not specified as silent in a further Cluster.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="blockvirtual-element"><name>BlockVirtual Element</name> | <section anchor="blockvirtual-element"><name>BlockVirtual Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>binary / 0xA2</dd> | <dd>binary / 0xA2</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
skipping to change at line 9516 ¶ | skipping to change at line 11008 ¶ | |||
<section anchor="framenumber-element"><name>FrameNumber Element</name> | <section anchor="framenumber-element"><name>FrameNumber Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0xCD</dd> | <dd>uinteger / 0xCD</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\Slices\TimeSlice\FrameNumber</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\Slices\TimeSlice\FrameNumber</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The number of the frame to generate from this lace with this delay | <dd>The number of the frame to generate from this lace with this delay | |||
(allow you to generate many frames from the same Block/Frame).</dd> | (allows for the generation of many frames from the same Block/Frame).</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="blockadditionid-element"><name>BlockAdditionID Element</name> | <section anchor="blockadditionid-element"><name>BlockAdditionID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0xCB</dd> | <dd>uinteger / 0xCB</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\Slices\TimeSlice\BlockAdditionID</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\Slices\TimeSlice\BlockAdditionID</tt></dd> | |||
skipping to change at line 9576 ¶ | skipping to change at line 11068 ¶ | |||
</section> | </section> | |||
<section anchor="referenceoffset-element"><name>ReferenceOffset Element</name> | <section anchor="referenceoffset-element"><name>ReferenceOffset Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0xC9</dd> | <dd>uinteger / 0xC9</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\ReferenceFrame\ReferenceOffset</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\ReferenceFrame\ReferenceOffset</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The relative offset, in bytes, from the previous BlockGroup element for this | <dd>The relative offset, in bytes, from the previous BlockGroup element for this | |||
Smooth FF/RW video track to the containing BlockGroup element. See <xref target | Smooth FF/RW video track to the containing BlockGroup | |||
="DivXTrickTrack"></xref>.</dd> | element. See <xref target="DivXTrickTrack"></xref>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="referencetimestamp-element"><name>ReferenceTimestamp Element</n ame> | <section anchor="referencetimestamp-element"><name>ReferenceTimestamp Element</n ame> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0xCA</dd> | <dd>uinteger / 0xCA</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\ReferenceFrame\ReferenceTimestamp</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\ReferenceFrame\ReferenceTimestamp</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The timestamp of the BlockGroup pointed to by ReferenceOffset, expressed in | <dd>The timestamp of the BlockGroup pointed to by ReferenceOffset, expressed in | |||
Track Ticks; see <xref target="timestamp-ticks"></xref>. See <xref target="DivXT | Track Ticks; see <xref | |||
rickTrack"></xref>.</dd> | target="timestamp-ticks"></xref>. See <xref target="DivXTrickTrack"></xref>.</dd | |||
> | ||||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="encryptedblock-element"><name>EncryptedBlock Element</name> | <section anchor="encryptedblock-element"><name>EncryptedBlock Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>binary / 0xAF</dd> | <dd>binary / 0xAF</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\EncryptedBlock</tt></dd> | <dd><tt>\Segment\Cluster\EncryptedBlock</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>Similar to SimpleBlock, see <xref target="simpleblock-structure"></xref>, | <dd>Similar to SimpleBlock (see <xref target="simpleblock-structure"></xref>), | |||
but the data inside the Block are Transformed (encrypt and/or signed).</dd> | but the data inside the Block are Transformed (encrypted and/or signed).</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="mincache-element"><name>MinCache Element</name> | <section anchor="mincache-element"><name>MinCache Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0x6DE7</dd> | <dd>uinteger / 0x6DE7</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\MinCache</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\MinCache</tt></dd> | |||
skipping to change at line 9639 ¶ | skipping to change at line 11133 ¶ | |||
</section> | </section> | |||
<section anchor="trackoffset-element"><name>TrackOffset Element</name> | <section anchor="trackoffset-element"><name>TrackOffset Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>integer / 0x537F</dd> | <dd>integer / 0x537F</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackOffset</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackOffset</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>A value to add to the Block's Timestamp, expressed in Matroska Ticks -- i.e. | <dd>A value to add to the Block's Timestamp, expressed in Matroska Ticks -- i.e. | |||
, in nanoseconds; see <xref target="timestamp-ticks"></xref>. | , in nanoseconds; see <xref | |||
target="timestamp-ticks"></xref>. | ||||
This can be used to adjust the playback offset of a track.</dd> | This can be used to adjust the playback offset of a track.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="codecsettings-element"><name>CodecSettings Element</name> | <section anchor="codecsettings-element"><name>CodecSettings Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>utf-8 / 0x3A9697</dd> | <dd>utf-8 / 0x3A9697</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
skipping to change at line 9676 ¶ | skipping to change at line 11171 ¶ | |||
</section> | </section> | |||
<section anchor="codecdownloadurl-element"><name>CodecDownloadURL Element</name> | <section anchor="codecdownloadurl-element"><name>CodecDownloadURL Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>string / 0x26B240</dd> | <dd>string / 0x26B240</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\CodecDownloadURL</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\CodecDownloadURL</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<!-- [rfced] Please clarify "A URL to download about". Should this text be | ||||
updated as follows? | ||||
Original: | ||||
documentation: A URL to download about the codec used. | ||||
Perhaps: | ||||
documentation: A URL to download information about the codec used. | ||||
--> | ||||
<dd>A URL to download about the codec used.</dd> | <dd>A URL to download about the codec used.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="codecdecodeall-element"><name>CodecDecodeAll Element</name> | <section anchor="codecdecodeall-element"><name>CodecDecodeAll Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0xAA</dd> | <dd>uinteger / 0xAA</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
skipping to change at line 9701 ¶ | skipping to change at line 11206 ¶ | |||
<section anchor="trackoverlay-element"><name>TrackOverlay Element</name> | <section anchor="trackoverlay-element"><name>TrackOverlay Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0x6FAB</dd> | <dd>uinteger / 0x6FAB</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackOverlay</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrackOverlay</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>Specify that this track is an overlay track for the Track specified (in the u-integer). | <dd>Specify that this track is an overlay track for the Track specified (in the u-integer). | |||
That means when this track has a gap on SilentTracks, | This means that when this track has a gap on SilentTracks, the overlay track sho | |||
the overlay track should be used instead. The order of multiple TrackOverlay mat | uld be used instead. The order of multiple TrackOverlay matters; the first one i | |||
ters, the first one is the one that should be used. | s the one that should be used. | |||
If not found it should be the second, etc.</dd> | If the first one is not found, it should be the second, etc.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="aspectratiotype-element"><name>AspectRatioType Element</name> | <section anchor="aspectratiotype-element"><name>AspectRatioType Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0x54B3</dd> | <dd>uinteger / 0x54B3</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\AspectRatioType</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\AspectRatioType</tt></dd> | |||
skipping to change at line 9727 ¶ | skipping to change at line 11231 ¶ | |||
</section> | </section> | |||
<section anchor="gammavalue-element"><name>GammaValue Element</name> | <section anchor="gammavalue-element"><name>GammaValue Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>float / 0x2FB523</dd> | <dd>float / 0x2FB523</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\GammaValue</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\GammaValue</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>Gamma Value.</dd> | <dd>Gamma value.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="framerate-element"><name>FrameRate Element</name> | <section anchor="framerate-element"><name>FrameRate Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>float / 0x2383E3</dd> | <dd>float / 0x2383E3</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\FrameRate</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\FrameRate</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>Number of frames per second. This value is Informational only. It is intende | <dd>Number of frames per second. This value is informational only. It is intende | |||
d for constant frame rate streams, and should not be used for a variable frame r | d for constant frame rate streams and should not be | |||
ate TrackEntry.</dd> | used for a variable frame rate TrackEntry.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="channelpositions-element"><name>ChannelPositions Element</name> | <section anchor="channelpositions-element"><name>ChannelPositions Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>binary / 0x7D7B</dd> | <dd>binary / 0x7D7B</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Audio\ChannelPositions</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Audio\ChannelPositions</tt></dd> | |||
skipping to change at line 9763 ¶ | skipping to change at line 11268 ¶ | |||
</section> | </section> | |||
<section anchor="tricktrackuid-element"><name>TrickTrackUID Element</name> | <section anchor="tricktrackuid-element"><name>TrickTrackUID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0xC0</dd> | <dd>uinteger / 0xC0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrickTrackUID</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrickTrackUID</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The TrackUID of the Smooth FF/RW video in the paired EBML structure correspo | <dd>The TrackUID of the Smooth FF/RW video in the paired EBML structure correspo | |||
nding to this video track. See <xref target="DivXTrickTrack"></xref>.</dd> | nding to this video track. See <xref | |||
target="DivXTrickTrack"></xref>.</dd> | ||||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="tricktracksegmentuid-element"><name>TrickTrackSegmentUID Elemen t</name> | <section anchor="tricktracksegmentuid-element"><name>TrickTrackSegmentUID Elemen t</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>binary / 0xC1</dd> | <dd>binary / 0xC1</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrickTrackSegmentUID</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrickTrackSegmentUID</tt></dd> | |||
skipping to change at line 9787 ¶ | skipping to change at line 11293 ¶ | |||
</section> | </section> | |||
<section anchor="tricktrackflag-element"><name>TrickTrackFlag Element</name> | <section anchor="tricktrackflag-element"><name>TrickTrackFlag Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0xC6</dd> | <dd>uinteger / 0xC6</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrickTrackFlag</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrickTrackFlag</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>Set to 1 if this video track is a Smooth FF/RW track. If set to 1, MasterTra | <dd>Set to 1 if this video track is a Smooth FF/RW track. If set to 1, MasterTra | |||
ckUID and MasterTrackSegUID should be present and BlockGroups for this track mus | ckUID and MasterTrackSegUID should be present, and | |||
t contain ReferenceFrame structures. | BlockGroups for this track must contain ReferenceFrame structures. | |||
Otherwise, TrickTrackUID and TrickTrackSegUID must be present if this track has | Otherwise, TrickTrackUID and TrickTrackSegUID must be present if this track has | |||
a corresponding Smooth FF/RW track. See <xref target="DivXTrickTrack"></xref>.</ | a corresponding Smooth FF/RW track. See <xref | |||
dd> | target="DivXTrickTrack"></xref>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="trickmastertrackuid-element"><name>TrickMasterTrackUID Element< /name> | <section anchor="trickmastertrackuid-element"><name>TrickMasterTrackUID Element< /name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0xC7</dd> | <dd>uinteger / 0xC7</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrickMasterTrackUID</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrickMasterTrackUID</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The TrackUID of the video track in the paired EBML structure that correspond | <dd>The TrackUID of the video track in the paired EBML structure that correspond | |||
s to this Smooth FF/RW track. See <xref target="DivXTrickTrack"></xref>.</dd> | s to this Smooth FF/RW track. See <xref | |||
target="DivXTrickTrack"></xref>.</dd> | ||||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="trickmastertracksegmentuid-element"><name>TrickMasterTrackSegme ntUID Element</name> | <section anchor="trickmastertracksegmentuid-element"><name>TrickMasterTrackSegme ntUID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>binary / 0xC4</dd> | <dd>binary / 0xC4</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrickMasterTrackSegmentUID</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\TrickMasterTrackSegmentUID</tt></dd> | |||
skipping to change at line 9836 ¶ | skipping to change at line 11345 ¶ | |||
</section> | </section> | |||
<section anchor="contentsigkeyid-element"><name>ContentSigKeyID Element</name> | <section anchor="contentsigkeyid-element"><name>ContentSigKeyID Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>binary / 0x47E4</dd> | <dd>binary / 0x47E4</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption\ContentSigKeyID</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption\ContentSigKeyID</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>This is the ID of the private key the data was signed with.</dd> | <dd>This is the ID of the private key that the data was signed with.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="contentsigalgo-element"><name>ContentSigAlgo Element</name> | <section anchor="contentsigalgo-element"><name>ContentSigAlgo Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0x47E5</dd> | <dd>uinteger / 0x47E5</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption\ContentSigAlgo</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption\ContentSigAlgo</tt></dd> | |||
skipping to change at line 9900 ¶ | skipping to change at line 11409 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0xEB</dd> | <dd>uinteger / 0xEB</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueReference\CueRefCodecState</ tt></dd> | <dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueReference\CueRefCodecState</ tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The Segment Position of the Codec State corresponding to this referenced Ele ment. | <dd>The Segment Position of the Codec State corresponding to this referenced Ele ment. | |||
0 means that the data is taken from the initial Track Entry.</dd> | 0 means that the data is taken from the initial Track Entry.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="filereferral-element"><name>FileReferral Element</name> | <section anchor="filereferral-element"><name>FileReferral Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>binary / 0x4675</dd> | <dd>binary / 0x4675</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Attachments\AttachedFile\FileReferral</tt></dd> | <dd><tt>\Segment\Attachments\AttachedFile\FileReferral</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>A binary value that a track/codec can refer to when the attachment is needed .</dd> | <dd>A binary value that a track/codec can refer to when the attachment is needed .</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="fileusedstarttime-element"><name>FileUsedStartTime Element</nam e> | <section anchor="fileusedstarttime-element"><name>FileUsedStartTime Element</nam e> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0x4661</dd> | <dd>uinteger / 0x4661</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Attachments\AttachedFile\FileUsedStartTime</tt></dd> | <dd><tt>\Segment\Attachments\AttachedFile\FileUsedStartTime</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The timestamp at which this optimized font attachment comes into context, ex | <dd>The timestamp at which this optimized font attachment comes into context, ex | |||
pressed in Segment Ticks which is based on TimestampScale. See <xref target="Div | pressed in Segment Ticks, which are based on | |||
XWorldFonts"></xref>.</dd> | TimestampScale. See <xref target="DivXWorldFonts"></xref>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="fileusedendtime-element"><name>FileUsedEndTime Element</name> | <section anchor="fileusedendtime-element"><name>FileUsedEndTime Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0x4662</dd> | <dd>uinteger / 0x4662</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Attachments\AttachedFile\FileUsedEndTime</tt></dd> | <dd><tt>\Segment\Attachments\AttachedFile\FileUsedEndTime</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The timestamp at which this optimized font attachment goes out of context, e | <dd>The timestamp at which this optimized font attachment goes out of context, e | |||
xpressed in Segment Ticks which is based on TimestampScale. See <xref target="Di | xpressed in Segment Ticks, which are based on | |||
vXWorldFonts"></xref>.</dd> | TimestampScale. See <xref target="DivXWorldFonts"></xref>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="tagdefaultbogus-element"><name>TagDefaultBogus Element</name> | <section anchor="tagdefaultbogus-element"><name>TagDefaultBogus Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0x44B4</dd> | <dd>uinteger / 0x44B4</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tags\Tag\+SimpleTag\TagDefaultBogus</tt></dd> | <dd><tt>\Segment\Tags\Tag\+SimpleTag\TagDefaultBogus</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>A variant of the TagDefault element with a bogus Element ID; see <xref targe t="tagdefault-element"></xref>.</dd> | <dd>A variant of the TagDefault element with a bogus Element ID; see <xref targe t="tagdefault-element"></xref>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
</section> | </section> | |||
</back> | ||||
</middle> | <!-- [rfced] Formatting with <tt> | |||
<back> | a) Sometimes the word "element" is included in the <tt> tags and sometimes it | |||
<references><name>Normative References</name> | appears outside the tags. For example, we see both of the following in the xml: | |||
<reference anchor="BCP47" target="https://www.rfc-editor.org/info/rfc5646"> | ||||
<front> | ||||
<title>Tags for Identifying Languages</title> | ||||
<author fullname="A. Phillips" initials="A." surname="Phillips" role="editor | ||||
"> | ||||
<organization></organization> | ||||
</author> | ||||
<author fullname="M. Davis" initials="M." surname="Davis" role="editor"> | ||||
<organization></organization> | ||||
</author> | ||||
<date year="2009" month="September"></date> | ||||
</front> | ||||
<seriesInfo name="BCP" value="47"></seriesInfo> | ||||
<seriesInfo name="RFC" value="5646"></seriesInfo> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5646"></seriesInfo> | ||||
</reference> | ||||
<reference anchor="CIE-1931" target="https://en.wikipedia.org/wiki/CIE_1931_colo | ||||
r_space"> | ||||
<front> | ||||
<title>CIE 1931 Standard Colorimetric System</title> | ||||
<author> | ||||
<organization>Commission Internationale de l'Eclairage</organization> | ||||
</author> | ||||
<date year="1931"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="ISO639-2" target="https://www.loc.gov/standards/iso639-2/php/ | ||||
code_list.php"> | ||||
<front> | ||||
<title>Codes for the Representation of Names of Languages</title> | ||||
<author> | ||||
<organization>United States Library Of Congress</organization> | ||||
</author> | ||||
<date year="2017" month="December" day="21"></date> | ||||
</front> | ||||
<seriesInfo name="ISO" value="639-2:1998"></seriesInfo> | ||||
</reference> | ||||
<reference anchor="ISO9899" target="https://www.iso.org/standard/57853.html"> | ||||
<front> | ||||
<title>Information technology -- Programming languages -- C</title> | ||||
<author> | ||||
<organization>International Organization for Standardization</organization | ||||
> | ||||
</author> | ||||
<date year="2011"></date> | ||||
</front> | ||||
<seriesInfo name="ISO/IEC" value="9899:2011"></seriesInfo> | ||||
</reference> | ||||
<reference anchor="ITU-H.273" target="https://www.itu.int/rec/T-REC-H.273/en"> | ||||
<front> | ||||
<title>Coding-independent code points for video signal type identification</ | ||||
title> | ||||
<author> | ||||
<organization>International Telecommunication Union</organization> | ||||
</author> | ||||
<date year="2021" month="September" day="24"></date> | ||||
</front> | ||||
<seriesInfo name="ITU" value="H.273"></seriesInfo> | ||||
</reference> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1950. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4122. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6838. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8081. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8126. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8794. | ||||
xml"/> | ||||
</references> | ||||
<references><name>Informative References</name> | ||||
<reference anchor="AVIFormat" target="https://docs.microsoft.com/en-us/windows/w | ||||
in32/directshow/avi-riff-file-reference"> | ||||
<front> | ||||
<title>AVI RIFF File Reference</title> | ||||
<author> | ||||
<organization>Microsoft</organization> | ||||
</author> | ||||
<date year="2018" month="May" day="31"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="BZIP2" target="https://sourceware.org/bzip2/"> | ||||
<front> | ||||
<title>bzip2</title> | ||||
<author fullname="Julian Seward" initials="J." surname="Seward"> | ||||
<organization></organization> | ||||
</author> | ||||
<date year="1996" month="July" day="18"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="Blowfish" target="https://www.schneier.com/academic/blowfish/ | ||||
"> | ||||
<front> | ||||
<title>The Blowfish Encryption Algorithm</title> | ||||
<author fullname="Bruce Schneier" initials="B." surname="Schneier"> | ||||
<organization></organization> | ||||
</author> | ||||
<date year="1993"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="DVD-Video" target="http://www.dvdforum.org/"> | ||||
<front> | ||||
<title>DVD-Books: Part 3 DVD-Video Book</title> | ||||
<author> | ||||
<organization>DVD Forum</organization> | ||||
</author> | ||||
<date year="1995" month="November" day="1"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="DivXTrickTrack" target="https://web.archive.org/web/201012220 | ||||
01148/http://labs.divx.com/node/16601"> | ||||
<front> | ||||
<title>DivX Trick Track Extensions</title> | ||||
<author></author> | ||||
<date year="2010" month="December" day="14"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="DivXWorldFonts" target="https://web.archive.org/web/201102141 | ||||
32246/http://labs.divx.com/node/16602"> | ||||
<front> | ||||
<title>DivX World Fonts Extensions</title> | ||||
<author></author> | ||||
<date year="2010" month="December" day="14"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="FIPS.197" target="https://csrc.nist.gov/publications/detail/f | ||||
ips/197/final"> | ||||
<front> | ||||
<title>Advanced Encryption Standard (AES)</title> | ||||
<author> | ||||
<organization>US National Institute of Standards and Technology</organizat | ||||
ion> | ||||
</author> | ||||
<date year="2001" month="November" day="26"></date> | ||||
</front> | ||||
<seriesInfo name="FIPS" value="PUB 197"></seriesInfo> | ||||
<seriesInfo name="DOI" value="10.6028/NIST.FIPS.197"></seriesInfo> | ||||
</reference> | ||||
<reference anchor="FIPS.46-3" target="https://csrc.nist.gov/publications/detail/ | ||||
fips/46/3/archive/1999-10-25"> | ||||
<front> | ||||
<title>Data Encryption Standard (DES)</title> | ||||
<author> | ||||
<organization>US National Institute of Standards and Technology</organizat | ||||
ion> | ||||
</author> | ||||
<date year="1999" month="October" day="25"></date> | ||||
</front> | ||||
<seriesInfo name="FIPS" value="PUB 46"></seriesInfo> | ||||
</reference> | ||||
<reference anchor="FourCC-RGB" target="https://web.archive.org/web/2016060921480 | ||||
6/https://www.fourcc.org/rgb.php"> | ||||
<front> | ||||
<title>RGB Pixel Format FourCCs</title> | ||||
<author> | ||||
<organization>Silicon.dk ApS</organization> | ||||
</author> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="FourCC-YUV" target="https://web.archive.org/web/2016060921480 | ||||
6/https://www.fourcc.org/yuv.php"> | ||||
<front> | ||||
<title>YUV Pixel Format FourCCs</title> | ||||
<author> | ||||
<organization>Silicon.dk ApS</organization> | ||||
</author> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="JPEG" target="https://www.w3.org/Graphics/JPEG/itu-t81.pdf"> | ||||
<front> | ||||
<title>Digital Compression and Coding of Continuous-Tone Still Images</title | ||||
> | ||||
<author> | ||||
<organization>International Telegraph and Telephone Consultative Committee | ||||
</organization> | ||||
</author> | ||||
<date year="1992" month="September"></date> | ||||
</front> | ||||
<seriesInfo name="ITU" value="T.81"></seriesInfo> | ||||
</reference> | ||||
<reference anchor="LZO" target="https://www.kernel.org/doc/Documentation/lzo.txt | ||||
"> | ||||
<front> | ||||
<title>Lempel-Ziv-Oberhumer compression</title> | ||||
<author fullname="Willy Tarreau" initials="W." surname="Tarreau"> | ||||
<organization></organization> | ||||
</author> | ||||
<author fullname="Dave Rodgman" initials="R." surname="Rodgman"> | ||||
<organization></organization> | ||||
</author> | ||||
<author fullname="Markus Oberhumer" initials="M." surname="Oberhumer"> | ||||
<organization></organization> | ||||
</author> | ||||
<date year="2018" month="October" day="30"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="MCF" target="http://mukoli.free.fr/mcf/"> | ||||
<front> | ||||
<title>Media Container Format</title> | ||||
<author></author> | ||||
<date year="2002" month="July" day="17"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="MSRGB" target="https://learn.microsoft.com/en-us/openspecs/wi | ||||
ndows_protocols/ms-wmf/4e588f70-bd92-4a6f-b77f-35d0feaf7a57"> | ||||
<front> | ||||
<title>WMF Compression Enumeration</title> | ||||
<author> | ||||
<organization>Microsoft</organization> | ||||
</author> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="MSYUV16" target="https://learn.microsoft.com/en-us/windows/wi | ||||
n32/medfound/10-bit-and-16-bit-yuv-video-formats"> | ||||
<front> | ||||
<title>10-bit and 16-bit YUV Video Formats</title> | ||||
<author> | ||||
<organization>Microsoft</organization> | ||||
</author> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="MSYUV8" target="https://learn.microsoft.com/en-us/windows/win | ||||
32/medfound/recommended-8-bit-yuv-formats-for-video-rendering"> | ||||
<front> | ||||
<title>Recommended 8-Bit YUV Formats for Video Rendering</title> | ||||
<author> | ||||
<organization>Microsoft</organization> | ||||
</author> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="MatroskaCodec" target=""> | ||||
<front> | ||||
<title>Media Container Codec Specifications</title> | ||||
<author fullname="Steve Lhomme" initials="S." surname="Lhomme"></author> | ||||
<author fullname="Moritz Bunkus" initials="M." surname="Bunkus"></author> | ||||
<author fullname="Dave Rice" initials="D." surname="Rice"></author> | ||||
<date year="2021" month="April" day="12"></date> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-cellar-codec-10"></seriesI | ||||
nfo> | ||||
</reference> | ||||
<reference anchor="MatroskaTags" target=""> | ||||
<front> | ||||
<title>Matroska Media Container Tag Specifications</title> | ||||
<author fullname="Steve Lhomme" initials="S." surname="Lhomme"></author> | ||||
<author fullname="Moritz Bunkus" initials="M." surname="Bunkus"></author> | ||||
<author fullname="Dave Rice" initials="D." surname="Rice"></author> | ||||
<date year="2021" month="April" day="12"></date> | ||||
</front> | ||||
<seriesInfo name="Internet-Draft" value="draft-ietf-cellar-tags-10"></seriesIn | ||||
fo> | ||||
</reference> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.0959. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2083. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3533. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9110. | ||||
xml"/> | ||||
<reference anchor="SMB-CIFS" target="https://winprotocoldoc.blob.core.windows.ne | ||||
t/productionwindowsarchives/MS-CIFS/%5bMS-CIFS%5d.pdf"> | ||||
<front> | ||||
<title>Common Internet File System (CIFS) Protocol</title> | ||||
<author> | ||||
<organization>Microsoft Corporation</organization> | ||||
</author> | ||||
<date year="2020" month="October" day="1"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="SP.800-38A" target="https://csrc.nist.gov/publications/detail | ||||
/fips/197/final"> | ||||
<front> | ||||
<title>Recommendation for Block Cipher Modes of Operation: Methods and Techn | ||||
iques</title> | ||||
<author> | ||||
<organization>US National Institute of Standards and Technology</organizat | ||||
ion> | ||||
</author> | ||||
<date year="2001" month="December" day="01"></date> | ||||
</front> | ||||
<seriesInfo name="DOI" value="10.6028/NIST.SP.800-38A"></seriesInfo> | ||||
</reference> | ||||
<reference anchor="SP.800-67" target="https://csrc.nist.gov/publications/detail/ | ||||
sp/800-67/rev-2/final"> | ||||
<front> | ||||
<title>Recommendation for the Triple Data Encryption Algorithm (TDEA) Block | ||||
Cipher</title> | ||||
<author> | ||||
<organization>US National Institute of Standards and Technology</organizat | ||||
ion> | ||||
</author> | ||||
<date year="2017" month="November" day="01"></date> | ||||
</front> | ||||
<seriesInfo name="DOI" value="10.6028/10.6028/NIST.SP.800-67r2"></seriesInfo> | ||||
</reference> | ||||
<reference anchor="Twofish" target="https://www.schneier.com/academic/twofish/"> | ||||
<front> | ||||
<title>Twofish: A 128-Bit Block Cipher</title> | ||||
<author fullname="Bruce Schneier" initials="B." surname="Schneier"> | ||||
<organization></organization> | ||||
</author> | ||||
<author fullname="John Kelsey" initials="J." surname="Kelsey"> | ||||
<organization></organization> | ||||
</author> | ||||
<author fullname="Doug Whiting" initials="D." surname="Whiting"> | ||||
<organization></organization> | ||||
</author> | ||||
<author fullname="David Wagner" initials="D." surname="Wagner"> | ||||
<organization></organization> | ||||
</author> | ||||
<author fullname="Chris Hall" initials="C." surname="Hall"> | ||||
<organization></organization> | ||||
</author> | ||||
<author fullname="Niels Ferguson" initials="N." surname="Ferguson"> | ||||
<organization></organization> | ||||
</author> | ||||
<date year="1998" month="June" day="15"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="WebM-Enc" target="https://www.webmproject.org/docs/webm-encry | ||||
ption/"> | ||||
<front> | ||||
<title>WebM Encryption</title> | ||||
<author fullname="Frank Galligan"> | ||||
<organization>Google</organization> | ||||
</author> | ||||
<date year="2016" month="September" day="19"></date> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="WebVTT" target="https://www.w3.org/TR/webvtt1/#webvtt-cue-ide | ||||
ntifier"> | ||||
<front> | ||||
<title>WebVTT Cue Identifier</title> | ||||
<author fullname="Simon Pieters"> | ||||
<organization>Opera Software AS</organization> | ||||
</author> | ||||
<author fullname="Silvia Pfeiffer" role="editor"> | ||||
<organization>NICTA</organization> | ||||
</author> | ||||
<author fullname="Philip Jaegenstedt"> | ||||
<organization>Opera Software ASA</organization> | ||||
</author> | ||||
<author fullname="Ian Hickson"> | ||||
<organization>Google</organization> | ||||
</author> | ||||
<date year="2019" month="April" day="4"></date> | ||||
</front> | ||||
</reference> | ||||
</references> | ||||
</back> | <tt>SimpleBlock Element</tt> | |||
<tt>SimpleBlock</tt> Element | ||||
We suggest making such terms consistent. Should "Element" appear in <tt> | ||||
tagging, or should it appear outside the tags? | ||||
b) The following terms appear both with and without <tt> in the xml. Please | ||||
review and let us know if the tagging should be consistent. | ||||
Attachment | ||||
Attachments | ||||
Block | ||||
BlockAdditions | ||||
BlockDuration | ||||
BlockGroup | ||||
ChapProcessCodecID | ||||
ChapProcessData | ||||
ChapProcessPrivate | ||||
Chapter | ||||
ChapterAtom | ||||
Chapters | ||||
ChapterSegmentEditionUID | ||||
ChapterSegmentUUID | ||||
ChapterTranslate | ||||
ChapterUID | ||||
Cluster | ||||
Clusters | ||||
CodecID | ||||
Cues | ||||
DiscardPadding | ||||
Edition | ||||
EditionEntry | ||||
Editions | ||||
Element | ||||
FileName | ||||
Matroska | ||||
NextUUID | ||||
PrevUUID | ||||
SeekHead | ||||
Segment | ||||
Segments | ||||
SegmentUUID | ||||
SimpleBlock | ||||
Tag | ||||
Tags | ||||
TagString | ||||
Timestamp | ||||
TimestampScale | ||||
Track | ||||
TrackNumber | ||||
Tracks | ||||
TrackTranslate | ||||
--> | ||||
<!-- [rfced] Terminology | ||||
a) Please review the following similar terms used in the document. Should these | ||||
be | ||||
consistent? | ||||
Audio/Video container | ||||
audio and visual container | ||||
audiovisual data container | ||||
Original: | ||||
First, it is essential to clarify exactly "What an Audio/Video | ||||
container is", to avoid any misunderstandings: | ||||
... | ||||
As an audio and visual container format, a Matroska file or stream | ||||
will potentially encapsulate numerous byte streams created with a | ||||
variety of codecs. | ||||
... | ||||
Matroska is an audiovisual data container format. | ||||
... | ||||
This document defines the Matroska audiovisual data container | ||||
structure, | ||||
b) Please review the following and let us know if both forms are correct or if | ||||
updates are needed for consistency. | ||||
Attachment Element vs. Attachments Element | ||||
Note: "Attachments Element" is defined in Section 5.1.6. | ||||
Track Element vs. Tracks Element | ||||
Note: "Tracks Element" is defined in Section 5.1.4. | ||||
Cue Element vs. Cues Element | ||||
Note: "Cues Element" is defined in Section 5.1.5. | ||||
Chapters Element vs. Chapter Element vs. Chapter element | ||||
Note: "Chapters Element" is defined in Section 5.1.7, but perhaps "Chapter | ||||
element" refers to elements like "ChapterAtom" and "ChapterTrack"? | ||||
c) In these sentences, should "Attachment" be updated to "Attachments Element"? | ||||
When stored, | ||||
the normal cover SHOULD be the first Attachment in storage order. | ||||
... | ||||
Thus, for | ||||
maximum compatibility, it's usually better to put the strings in the | ||||
TrackEntry, ChapterAtom, and Attachment and keep the tags matching | ||||
these values if tags are also used. | ||||
d) Please review the use of lowercase "attachment" in the document. Should any | ||||
instances be updated to "Attachments Element"? | ||||
e) We note inconsistencies in the terms listed below. We chose the form on the | ||||
right. Please let us know any objections. | ||||
Matroska reader vs. Matroska Reader | ||||
Matroska writer vs. Matroska Writer | ||||
Matroska player vs. Matroska Player | ||||
f) We see the following forms used in the document. We believe that the | ||||
capitalized form indicates the element (even when not followed by the word | ||||
"Element"), while the lowercase is for general use. Please review that this | ||||
usage is consistent. | ||||
Tag vs. tag | ||||
Tags vs. tags | ||||
Example general use: | ||||
When tags from the previous layout | ||||
Examples of capped form not followed by "Element": | ||||
...has its UID listed in the Tags. | ||||
The Tags contain all extra information | ||||
g) We note that the following terms are used inconsistently throughout the | ||||
document. Please review and let us know if any updates are needed for consistenc | ||||
y. | ||||
segment vs. Segment | ||||
alpha vs. Alpha | ||||
Note: In context of "Alpha data" and "alpha channel data". | ||||
AnaGlyph vs. anaglyph | ||||
EBML header vs. EBML Header | ||||
block element vs. Block Element | ||||
block header vs. Block header vs. Block Header | ||||
Note: We will make capitalization of "header" in "SimpleBlock header" consiste | ||||
nt | ||||
with the decision here. | ||||
block vs. Block | ||||
Note: In general text, e.g., "of the virtual block" and "contained in the Bloc | ||||
k". | ||||
chapter codec vs. Chapter Codec | ||||
chapter edition(s) vs. Chapter Edition(s) | ||||
child element vs. Child Element | ||||
codec ID vs. Codec ID | ||||
Note: We will not change "CodecID" used in element names. | ||||
codec state vs. Codec State | ||||
filename vs. file name | ||||
Note: We are asking about instances aside from "FileName Element". | ||||
fourcc vs. FourCC | ||||
Note: "fourcc" is only used in the context of "fourcc field". | ||||
linked Segment vs. Linked Segment | ||||
track name vs. Track Name | ||||
Track vs. track | ||||
Note: In general text, e.g., "For separate tracks" and "end of a Track") | ||||
trackUID vs. TrackUID | ||||
segment vs. Segment | ||||
cluster vs. Cluster | ||||
Stereo-3D vs. stereo 3D | ||||
edition vs. Edition | ||||
Control Track vs. control track | ||||
--> | ||||
<!-- [rfced] Capitalization of "element" | ||||
a) We note that capitalization of "element" is inconsistent when following the n | ||||
ame | ||||
of elements. Please review and let us know if any updates are needed for | ||||
consistency. | ||||
Some examples: | ||||
Capitalized: | ||||
Root Element | ||||
Top-Level Element | ||||
Empty Element | ||||
Segment Element | ||||
Info Element | ||||
SeekHead Element | ||||
Chapters Element | ||||
Cluster Element | ||||
Lowercase: | ||||
DiscardPadding element | ||||
NextFilename element | ||||
TagDefault element | ||||
TrackEntry\Name element | ||||
AttachmentLink element | ||||
Mixed capitalization: | ||||
CRC-32 element vs. CRC-32 Element | ||||
ReferenceBlock element vs. ReferenceBlock Element | ||||
Chapter element vs. Chapter Element | ||||
ChapterTimeEnd element vs. ChapterTimeEnd Element | ||||
ChapterSegmentUUID element vs. ChapterSegmentUUID Element | ||||
ChapterAtom element vs. ChapterAtom Element | ||||
b) Should "element" (lowercase) vs. "Element" (uppercase) be used in general tex | ||||
t? | ||||
Some examples: | ||||
When both values exist in the file, the value found in Tags takes | ||||
precedence over the value found in original location of the element. | ||||
In that case these elements are informational only. | ||||
These Elements | ||||
allow edges of the frame that are not intended for display, | ||||
An Element which is not | ||||
stored within a Segment Element, such as the Elements of the EBML | ||||
Header, do not have a Segment Position. | ||||
The Segment Position of an Element refers to the position of the | ||||
first octet of the Element ID of that Element, measured in octets, | ||||
from the beginning of the Element Data section of the containing | ||||
Segment Element. | ||||
--> | ||||
<!-- [rfced] Abbreviations | ||||
a) FYI - We have added expansions for abbreviations upon first use per Section | ||||
3.6 of RFC 7322 ("RFC Style Guide"). Please review each expansion in the | ||||
document carefully to ensure correctness. | ||||
b) How may we expanded "VANC" here? We do not see this in published RFCs. | ||||
Original: | ||||
These Elements allow edges of the frame that are not intended for | ||||
display, such as the sprockets of a full-frame film scan or the VANC area of a | ||||
digitized analog videotape... | ||||
c) Should "SBR" be expanded as "Spectral Band Replication"? | ||||
Original: | ||||
Real output sampling frequency in Hz (used for SBR techniques). | ||||
Perhaps: | ||||
Real output sampling frequency in Hz that is used for Spectral Band | ||||
Replication (SBR) techniques. | ||||
--> | ||||
<!-- [rfced] Please review the "Inclusive Language" portion of the online | ||||
Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language> | ||||
and let us know if any changes are needed. For example, please consider whether | ||||
the following should be updated: | ||||
black | ||||
white | ||||
master | ||||
--> | ||||
</rfc> | </rfc> | |||
End of changes. 998 change blocks. | ||||
2242 lines changed or deleted | 3740 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |