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" x | ||||
ml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude" | ||||
updates="8794" obsoletes=""> | ||||
<front> | <front> | |||
<title abbrev="Matroska Format">Matroska Media Container Format Specifications</ | <title abbrev="Matroska Format">Matroska Media Container Format Specification</t | |||
title><seriesInfo value="draft-ietf-cellar-matroska-21" stream="IETF" status="st | itle> | |||
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> | <author initials="S." surname="Lhomme" fullname="Steve Lhomme"><organization></o rganization><address><postal><street></street> | |||
</postal><email>slhomme@matroska.org</email> | </postal><email>slhomme@matroska.org</email> | |||
</address></author><author initials="M." surname="Bunkus" fullname="Moritz Bunku s"><organization></organization><address><postal><street></street> | </address></author><author initials="M." surname="Bunkus" fullname="Moritz Bunku s"><organization></organization><address><postal><street></street> | |||
</postal><email>moritz@bunkus.org</email> | </postal><email>moritz@bunkus.org</email> | |||
</address></author><author initials="D." surname="Rice" fullname="Dave Rice"><or ganization></organization><address><postal><street></street> | </address></author><author initials="D." surname="Rice" fullname="Dave Rice"><or ganization></organization><address><postal><street></street> | |||
</postal><email>dave@dericed.com</email> | </postal><email>dave@dericed.com</email> | |||
</address></author><date year="2023" month="October" day="22"></date> | </address></author><date year="2024" month="October"></date> | |||
<area>art</area> | <area>art</area> | |||
<workgroup>CELLAR Group</workgroup> | <workgroup>cellar</workgroup> | |||
<keyword>binary</keyword> | <keyword>binary</keyword> | |||
<keyword>storage</keyword> | <keyword>storage</keyword> | |||
<keyword>matroska</keyword> | <keyword>matroska</keyword> | |||
<keyword>ebml</keyword> | <keyword>ebml</keyword> | |||
<keyword>webm</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"/> 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"/>, 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 | <t>To avoid any misunderstandings, it is essential to clarify exactly | |||
is", to avoid any misunderstandings:</t> | what an audio/video container is:</t> | |||
<ul spacing="compact"> | <ul> | |||
<li>It is NOT a video or audio compression format (codec)</li> | <li><t>It is NOT a video or audio compression format (codec).</t> | |||
<li>It is an envelope in which there can be many audio, video, and subtitles str | </li> | |||
eams, | <li><t>It is an envelope in which there can be many audio, video, and subtitles | |||
allowing the user to store a complete movie or CD in a single file.</li> | streams, | |||
allowing the user to store a complete movie or CD in a single file.</t> | ||||
</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><t>Fast seeking in the file</t> | |||
<li>Chapter entries</li> | </li> | |||
<li>Full metadata (tags) support</li> | <li><t>Chapter entries</t> | |||
<li>Selectable subtitle/audio/video streams</li> | </li> | |||
<li>Modularly expandable</li> | <li><t>Full metadata (tags) support</t> | |||
<li>Error resilience (can recover playback even when the stream is damaged)</li> | </li> | |||
<li>Streamable over the internet and local networks (HTTP <xref target="RFC9110" | <li><t>Selectable subtitle/audio/video streams</t> | |||
></xref>, FTP <xref target="RFC0959"></xref>, SMB <xref target="SMB-CIFS"></xref | </li> | |||
>, etc.)</li> | <li><t>Modularly expandable</t> | |||
<li>Menus (like DVDs have <xref target="DVD-Video"></xref>)</li> | </li> | |||
<li><t>Error resilience (can recover playback even when the stream is damaged)</ | ||||
t> | ||||
</li> | ||||
<li><t>Streamable over the Internet and local networks (HTTP <xref target="RFC91 | ||||
10"/>, FTP <xref target="RFC0959"/>, SMB <xref target="SMB-CIFS"/>, etc.)</t> | ||||
</li> | ||||
<li><t>Menus (like menus that DVDs have <xref target="DVD-Video"/>)</t> | ||||
</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>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
quot;, | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", | |||
"<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bc | "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | |||
p14>SHALL NOT</bcp14>", | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
"<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are | |||
"<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>&quo | to be interpreted as described in BCP 14 <xref target="RFC2119"/> | |||
t;, | <xref target="RFC8174"/> when, and only when, they appear in all capitals, | |||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this | as shown here.</t> | |||
document are to be interpreted as | <t>This document defines the following terms in order to | |||
described in BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref | define the format and application of Matroska:</t> | |||
> | ||||
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"> | <dl> | |||
<dt><tt>Matroska</tt>:</dt> | <dt>Matroska:</dt> | |||
<dd>A multimedia container format based on EBML (Extensible Binary Meta Language | <dd><t>A multimedia container format based on EBML (Extensible Binary Meta Langu | |||
).</dd> | age).</t> | |||
</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 | <dd><t>A data parser that interprets the semantics of a Matroska document and cr | |||
es a way for programs to use <tt>Matroska</tt>.</dd> | eates a way for programs to use Matroska.</t> | |||
</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 | <dd><t>A <tt>Matroska Reader</tt> with the primary purpose of playing audiovisua | |||
es, including <tt>Matroska</tt> documents.</dd> | l files, including Matroska documents.</t> | |||
</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><t>A data writer that creates Matroska documents.</t> | |||
</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>. | />. | |||
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 | <t>Because of an oversight, <xref target="RFC8794"/> reserved EBML ID 0x80, whic | |||
, which is used by deployed Matroska implementations. | h is used by deployed Matroska implementations. | |||
For this reason, this specification updates <xref target="RFC8794"></xref> to ma | For this reason, this specification updates <xref target="RFC8794"/> to make 0x8 | |||
ke 0x80 a legal EBML ID. | 0 a legal EBML ID. Additionally, this specification makes the following updates: | |||
Specifically, the following are changed in <xref target="RFC8794"></xref>:</t> | </t> | |||
<ul spacing="compact"> | <ul spacing="compact"> | |||
<li>From Errata 7189</li> | <li><xref target="RFC8794" sectionFormat="of" section="17.1"/> (per Erratum ID # 7189 <xref target="Err7189"/>)</li> | |||
</ul> | </ul> | |||
<t>In Section 17.1,</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 | |||
valuable because they are short, and they need to be used for | 0xFE. These items are valuable because they are short, and they need to be | |||
commonly repeated elements. Element IDs are to be allocated within | used for 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 | |||
valuable because they are short, and they need to be used for | 0xFE. These items are valuable because they are short, and they need to be | |||
commonly repeated elements. Element IDs are to be allocated within | used for 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> | ||||
<ul spacing="compact"> | <ul spacing="compact"> | |||
<li>From Errata 7191</li> | <li><xref target="RFC8794" sectionFormat="of" section="5"/> (per Erratum ID #719 1 <xref target="Err7191"/>)</li> | |||
</ul> | </ul> | |||
<t>In Section 5,</t> | ||||
<t>OLD:</t> | <t>OLD:</t> | |||
<artwork> +=========================+================+=================+ | <artwork> | |||
+=========================+================+=================+ | ||||
| Element ID Octet Length | Range of Valid | Number of Valid | | | Element ID Octet Length | Range of Valid | Number of Valid | | |||
| | Element IDs | Element IDs | | | | Element IDs | Element IDs | | |||
+=========================+================+=================+ | +=========================+================+=================+ | |||
| 1 | 0x81 - 0xFE | 126 | | | 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 ID Octet Length | Range of Valid | Number of Valid | | |||
| | Element IDs | Element IDs | | | | Element IDs | Element IDs | | |||
+=========================+================+=================+ | +=========================+================+=================+ | |||
| 1 | 0x80 - 0xFE | 127 | | | 1 | 0x80 - 0xFE | 127 | | |||
+-------------------------+----------------+-----------------+ | +-------------------------+----------------+-----------------+ | |||
</artwork> | </artwork> | |||
</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"/>:</t> | |||
<ul spacing="compact"> | <ul> | |||
<li>The <tt>docType</tt> of the <tt>EBML Header</tt> <bcp14>MUST</bcp14> be &quo | <li><t>The <tt>docType</tt> of the <tt>EBML Header</tt> <bcp14>MUST</bcp14> be " | |||
t;matroska".</li> | matroska".</t> | |||
<li>The <tt>EBMLMaxIDLength</tt> of the <tt>EBML Header</tt> <bcp14>MUST</bcp14> | </li> | |||
be 4.</li> | <li><t>The <tt>EBMLMaxIDLength</tt> of the <tt>EBML Header</tt> <bcp14>MUST</bcp | |||
<li>The <tt>EBMLMaxSizeLength</tt> of the <tt>EBML Header</tt> <bcp14>MUST</bcp1 | 14> be 4.</t> | |||
4> be between 1 and 8 inclusive.</li> | </li> | |||
<li><t>The <tt>EBMLMaxSizeLength</tt> of the <tt>EBML Header</tt> <bcp14>MUST</b | ||||
cp14> be between 1 and 8, inclusive.</t> | ||||
</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 | <t>The <tt>Root Element</tt> and all <tt>Top-Level Elements</tt> <bcp14>MUST</bc | |||
for their EBML Element ID -- i.e. Segment and direct children of Segment.</t> | p14> use 4 octets for their EBML Element ID -- i.e., <tt>Segment</tt> and direct | |||
<t>Legacy EBML/Matroska parsers did not handle Empty Elements properly, elements | children of <tt>Segment</tt>.</t> | |||
present in the file but with a length of zero. | <t>Legacy EBML/Matroska parsers did not handle Empty Elements properly; elements | |||
They always assumed the value was 0 for integers/dates or 0x0p+0, the textual ex | were present in the file but had a length of 0. | |||
pression of floats using the <xref target="ISO9899"></xref> format, no matter th | They always assumed the value was 0 for integers/dates or 0x0p+0, the textual ex | |||
e default value of the element which should have been used instead. | pression of floats using the format in <xref target="ISO9899"/>, no matter the d | |||
Therefore, Matroska writers <bcp14>MUST NOT</bcp14> use EBML Empty Elements, if | efault value of the element that should have been used instead. | |||
the element has a default value that is not 0 for integers/dates and 0x0p+0 for | Therefore, <tt>Matroska Writers</tt> <bcp14>MUST NOT</bcp14> use EBML Empty Elem | |||
floats.</t> | ents if the element has a default value that is not 0 for integers/dates and 0x0 | |||
p+0 for floats.</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 | <li><t>A non-mandatory integer/date Element <bcp14>MUST NOT</bcp14> have a defau | |||
value other than 0.</li> | lt value other than 0.</t> | |||
<li>A non-mandatory float Element <bcp14>MUST NOT</bcp14> have a default value o | </li> | |||
ther than 0x0p+0.</li> | <li><t>A non-mandatory float Element <bcp14>MUST NOT</bcp14> have a default valu | |||
<li>A non-mandatory string Element <bcp14>MUST NOT</bcp14> have a default value | e other than 0x0p+0.</t> | |||
, as empty string cannot be defined in the XML Schema.</li> | </li> | |||
<li><t>A non-mandatory string Element <bcp14>MUST NOT</bcp14> have a default va | ||||
lue, as empty strings cannot be defined in the XML Schema.</t> | ||||
</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</ | with an <tt>EBML Header</tt>, a <tt>Segment</tt> element (the <tt>Root Element</ | |||
tt>), and all eight Matroska | tt>), and all eight Matroska | |||
<tt>Top-Level Elements</tt>. In the following diagrams of this section, horizont | <tt>Top-Level Elements</tt>. In the diagrams in this section, horizontal spacing | |||
al spacing expresses | expresses | |||
a parent-child relationship between Matroska Elements (e.g., the <tt>Info Elemen | a parent-child relationship between Matroska elements (e.g., the <tt>Info</tt> e | |||
t</tt> is contained within | lement is contained within | |||
the <tt>Segment Element</tt>) whereas vertical alignment represents the storage | the <tt>Segment</tt> element), 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 212 ¶ | skipping to change at line 252 ¶ | |||
| | Chapters | | | | Chapters | | |||
| |-------------| | | |-------------| | |||
| | Cluster | | | | Cluster | | |||
| |-------------| | | |-------------| | |||
| | 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><t><tt>SeekHead</tt> (<xref target="seekhead"/>)</t> | |||
<li><tt>Info</tt> (<xref target="info"></xref>),</li> | </li> | |||
<li><tt>Tracks</tt> (<xref target="track-flags"></xref>),</li> | <li><t><tt>Info</tt> (<xref target="info"/>)</t> | |||
<li><tt>Chapters</tt> (<xref target="chapters"></xref>),</li> | </li> | |||
<li><tt>Cluster</tt> (<xref target="cluster-blocks"></xref>),</li> | <li><t><tt>Tracks</tt> (<xref target="track-flags"/>)</t> | |||
<li><tt>Cues</tt> (<xref target="cues"></xref>),</li> | </li> | |||
<li><tt>Attachments</tt> (<xref target="attachments-1"></xref>),</li> | <li><t><tt>Chapters</tt> (<xref target="chapters"/>)</t> | |||
<li>and <tt>Tags</tt> (<xref target="tags"></xref>).</li> | </li> | |||
<li><t><tt>Cluster</tt> (<xref target="cluster-blocks"/>)</t> | ||||
</li> | ||||
<li><t><tt>Cues</tt> (<xref target="cues"/>)</t> | ||||
</li> | ||||
<li><t><tt>Attachments</tt> (<xref target="attachments-1"/>)</t> | ||||
</li> | ||||
<li><t><tt>Tags</tt> (<xref target="tags"/>)</t> | ||||
</li> | ||||
</ul> | </ul> | |||
<t>The <tt>SeekHead Element</tt> (also known as <tt>MetaSeek</tt>) contains an i | <t>The <tt>SeekHead</tt> element (also known as <tt>MetaSeek</tt>) contains an | |||
ndex of <tt>Top-Level Elements</tt> | index of <tt>Top-Level Elements</tt> locations within the | |||
locations within the <tt>Segment</tt>. Use of the <tt>SeekHead Element</tt> is < | <tt>Segment</tt>. Use of the <tt>SeekHead</tt> element is | |||
bcp14>RECOMMENDED</bcp14>. Without a <tt>SeekHead Element</tt>, | <bcp14>RECOMMENDED</bcp14>. Without a <tt>SeekHead</tt> element, a Matroska | |||
a Matroska parser would have to search the entire file to find all of the other | parser would have to search the entire file to find all of the other | |||
<tt>Top-Level Elements</tt>. | <tt>Top-Level Elements</tt>. This is due to Matroska's flexible ordering | |||
This is due to Matroska's flexible ordering requirements; for instance, it is ac | requirements; for instance, it is acceptable for the <tt>Chapters</tt> element | |||
ceptable for | to be stored after the <tt>Cluster</tt> element(s).</t> | |||
the <tt>Chapters Element</tt> to be stored after the <tt>Cluster Elements</tt>.< | <figure><name>Representation of a <tt>SeekHead</tt> Element | |||
/t> | ||||
<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 | <t>The <tt>Info</tt> element contains vital information for identifying the whol | |||
e <tt>Segment</tt>. | 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</tt> elements.</t> | |||
<figure><name>Representation of an <tt>Info Element</tt> and its <tt>Child Eleme | <figure><name>Representation of an <tt>Info</tt> Element 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 274 ¶ | skipping to change at line 330 ¶ | |||
| | Duration | | | | Duration | | |||
| |------------------| | | |------------------| | |||
| | DateUTC | | | | DateUTC | | |||
| |------------------| | | |------------------| | |||
| | Title | | | | Title | | |||
| |------------------| | | |------------------| | |||
| | MuxingApp | | | | MuxingApp | | |||
| |------------------| | | |------------------| | |||
| | WritingApp | | | | WritingApp | | |||
|-------------------------| | |-------------------------| | |||
</artwork> | </artwork> | |||
</figure> | </figure> | |||
<t>The <tt>Tracks Element</tt> defines the technical details for each track and | <t>The <tt>Tracks</tt> element defines the technical details for each track and | |||
can store the name, | can store the name, | |||
number, unique identifier, language, and type (audio, video, subtitles, etc.) of | number, UID, language, and type (audio, video, subtitles, etc.) of each track. | |||
each track. | For example, the <tt>Tracks</tt> element <bcp14>MAY</bcp14> store information ab | |||
For example, the <tt>Tracks Element</tt> <bcp14>MAY</bcp14> store information ab | out the resolution of a video track | |||
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</tt> element <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 | For example, a <tt>Track</tt> element for uncompressed audio only requires the a | |||
udio bit rate to be present. | udio bit rate to be present. | |||
A codec such as AC-3 would require that the <tt>CodecID Element</tt> be present | A codec such as AC-3 would require that the <tt>CodecID</tt> element be present | |||
for all tracks, | 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</tt> Element and a Selection of I ts <tt>Descendant</tt> Elements | |||
</name> | </name> | |||
<artwork>+------------------------------------+ | <artwork> | |||
+------------------------------------+ | ||||
| Tracks | TrackEntry | TrackNumber | | | Tracks | TrackEntry | TrackNumber | | |||
| | |--------------| | | | |--------------| | |||
| | | TrackUID | | | | | TrackUID | | |||
| | |--------------| | | | |--------------| | |||
| | | TrackType | | | | | TrackType | | |||
| | |--------------| | | | |--------------| | |||
| | | Name | | | | | Name | | |||
| | |--------------| | | | |--------------| | |||
| | | Language | | | | | Language | | |||
| | |--------------| | | | |--------------| | |||
skipping to change at line 322 ¶ | skipping to change at line 380 ¶ | |||
| | | | PixelWidth | | | | | | PixelWidth | | |||
| | | |-------------------| | | | | |-------------------| | |||
| | | | PixelHeight | | | | | | PixelHeight | | |||
| | | |-------------------| | | | | |-------------------| | |||
| | | | DisplayWidth | | | | | | DisplayWidth | | |||
| | | |-------------------| | | | | |-------------------| | |||
| | | | DisplayHeight | | | | | | DisplayHeight | | |||
| | | |-------------------| | | | | |-------------------| | |||
| | | | AspectRatioType | | | | | | AspectRatioType | | |||
| | | |-------------------| | | | | |-------------------| | |||
| | | | Color | | | | | | Colour | | |||
| | |----------------------------------| | | | |----------------------------------| | |||
| | | 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</tt> element lists all of the chapters. <tt>Chapters</tt> ar e a way to 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 | <figure><name>Representation of the <tt>Chapters</tt> Element and a Selection of | |||
its <tt>Descendant Elements</tt>. | Its <tt>Descendant</tt> Elements | |||
</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 358 ¶ | skipping to change at line 418 ¶ | |||
| | | | ChapterTimeStart | | | | | | ChapterTimeStart | | |||
| | | |-------------------| | | | | |-------------------| | |||
| | | | ChapterTimeEnd | | | | | | ChapterTimeEnd | | |||
| | | |-------------------| | | | | |-------------------| | |||
| | | | 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 | <t><tt>Cluster</tt> elements contain the content for each track, e.g., video fra | |||
mes. A Matroska file | mes. A Matroska file | |||
<bcp14>SHOULD</bcp14> contain at least one <tt>Cluster Element</tt>. | <bcp14>SHOULD</bcp14> contain at least one <tt>Cluster</tt> element. | |||
In the rare case it doesn't, there should be a form of Segment linking with othe | In the rare case it doesn't, there should be a method for <tt>Segments</tt> to l | |||
r Segments, possibly using Chapters, see <xref target="linked-segments"></xref>. | ink | |||
</t> | together, possibly using <tt>Chapters</tt>; see <xref target="linked-segments"/> | |||
<t>The <tt>Cluster Element</tt> helps to break up | .</t> | |||
<tt>SimpleBlock</tt> or <tt>BlockGroup Elements</tt> and helps with seeking and | <t>The <tt>Cluster</tt> element helps to break up | |||
error protection. | <tt>SimpleBlock</tt> or <tt>BlockGroup</tt> elements and helps with seeking and | |||
Every <tt>Cluster Element</tt> <bcp14>MUST</bcp14> contain a <tt>Timestamp Eleme | error protection. | |||
nt</tt>. | Every <tt>Cluster</tt> element <bcp14>MUST</bcp14> contain a <tt>Timestamp</tt> | |||
This <bcp14>SHOULD</bcp14> be the <tt>Timestamp Element</tt> used to play the fi | element. | |||
rst <tt>Block</tt> in the <tt>Cluster Element</tt>, | This <bcp14>SHOULD</bcp14> be the <tt>Timestamp</tt> element used to play the fi | |||
unless a different value is needed to accommodate for more Blocks, see <xref tar | rst <tt>Block</tt> in the <tt>Cluster</tt> element, | |||
get="block-timestamps"></xref>.</t> | unless a different value is needed to accommodate for more <tt>Blocks</tt>; see | |||
<t><tt>Cluster Elements</tt> contain one or more block element, such as <tt>Bloc | <xref target="block-timestamps"/>.</t> | |||
kGroup</tt> or <tt>SimpleBlock</tt> elements. | <t><tt>Cluster</tt> elements contain one or more <tt>Block</tt> element, such as | |||
In some situations, a <tt>Cluster Element</tt> <bcp14>MAY</bcp14> contain no blo | <tt>BlockGroup</tt> or <tt>SimpleBlock</tt> elements. | |||
ck element, for example in a live recording | In some situations, a <tt>Cluster</tt> element <bcp14>MAY</bcp14> contain no <tt | |||
>Block</tt> 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 | <t>A <tt>BlockGroup</tt> element <bcp14>MAY</bcp14> contain a <tt>Block</tt> of | |||
data and any information relating directly to that <tt>Block</tt>.</t> | 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 | <figure><name>Representation of a <tt>Cluster</tt> Element and Its Immediate <tt | |||
>Child Elements</tt>. | >Child Elements</tt> | |||
</name> | </name> | |||
<artwork>+--------------------------+ | <artwork> | |||
+--------------------------+ | ||||
| Cluster | Timestamp | | | Cluster | Timestamp | | |||
| |----------------| | | |----------------| | |||
| | Position | | | | Position | | |||
| |----------------| | | |----------------| | |||
| | PrevSize | | | | PrevSize | | |||
| |----------------| | | |----------------| | |||
| | SimpleBlock | | | | SimpleBlock | | |||
| |----------------| | | |----------------| | |||
| | BlockGroup | | | | BlockGroup | | |||
+--------------------------+ | +--------------------------+ | |||
skipping to change at line 385 ¶ | skipping to change at line 449 ¶ | |||
| 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</tt> Element 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 | | |||
skipping to change at line 406 ¶ | skipping to change at line 472 ¶ | |||
| | |-------------| | | | |-------------| | |||
| | | 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 | <t>Each <tt>Cluster</tt> <bcp14>MUST</bcp14> contain exactly one <tt>Timestamp</ | |||
lement</tt>. The <tt>Timestamp Element</tt> value <bcp14>MUST</bcp14> | tt> element. The <tt>Timestamp</tt> element value <bcp14>MUST</bcp14> | |||
be stored once per <tt>Cluster</tt>. The <tt>Timestamp Element</tt> in the <tt>C | be stored once per <tt>Cluster</tt>. The <tt>Timestamp</tt> element in the <tt>C | |||
luster</tt> is relative to the entire <tt>Segment</tt>. | luster</tt> is relative to the entire <tt>Segment</tt>. | |||
The <tt>Timestamp Element</tt> <bcp14>SHOULD</bcp14> be the first <tt>Element</t | The <tt>Timestamp</tt> element <bcp14>SHOULD</bcp14> be the first element in the | |||
t> in the <tt>Cluster</tt> it belongs to, | <tt>Cluster</tt> it belongs to or the second element if that <tt>Cluster</tt> c | |||
or the second <tt>Element</tt> if that Cluster contains a CRC-32 element (<xref | ontains a <tt>CRC-32</tt> element (<xref target="crc-32"/>).</t> | |||
target="crc-32"></xref>)</t> | <t>Additionally, the <tt>Block</tt> contains an offset that, when added to the < | |||
<t>Additionally, the <tt>Block</tt> contains an offset that, when added to the < | tt>Cluster</tt>'s <tt>Timestamp</tt> element value, | |||
tt>Cluster</tt>'s <tt>Timestamp Element</tt> value, | yields the <tt>Block</tt>'s effective timestamp. Therefore, the timestamp in the | |||
yields the <tt>Block</tt>'s effective timestamp. Therefore, timestamp in the <tt | <tt>Block</tt> itself is relative to | |||
>Block</tt> itself is relative to | the <tt>Timestamp</tt> element in the <tt>Cluster</tt>. For example, if the <tt> | |||
the <tt>Timestamp Element</tt> in the <tt>Cluster</tt>. For example, if the <tt> | Timestamp</tt> element in the <tt>Cluster</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 | the <tt>Timestamp</tt> of the necessary <tt>Block</tt> is used. Because there ca | |||
n be as many <tt>ReferenceBlock Elements</tt> | n be as many <tt>ReferenceBlock</tt> elements | |||
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 | <t>The <tt>Cues</tt> element is used to seek when playing back a file by providi | |||
ng a temporal index | ng a temporal index | |||
for some of the <tt>Tracks</tt>. It is similar to the <tt>SeekHead Element</tt>, | for some of the <tt>Tracks</tt>. It is similar to the <tt>SeekHead</tt> element | |||
but used for seeking to | but is used for seeking to a specific time when playing back the file. It is pos | |||
a specific time when playing back the file. It is possible to seek without this | sible to seek without this element, | |||
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 to look for the correct timestamp.</t> | |||
through the file looking for the correct timestamp.</t> | <t>The <tt>Cues</tt> element <bcp14>SHOULD</bcp14> contain at least one <tt>CueP | |||
<t>The <tt>Cues Element</tt> <bcp14>SHOULD</bcp14> contain at least one <tt>CueP | oint</tt> element. Each <tt>CuePoint</tt> element | |||
oint Element</tt>. Each <tt>CuePoint Element</tt> | stores the position of the <tt>Cluster</tt> that contains the <tt>BlockGroup</tt | |||
stores the position of the <tt>Cluster</tt> that contains the <tt>BlockGroup</tt | > or <tt>SimpleBlock</tt> element. | |||
> or <tt>SimpleBlock Element</tt>. | The timestamp is stored in the <tt>CueTime</tt> element, and the location is sto | |||
The timestamp is stored in the <tt>CueTime Element</tt> and location is stored i | red in the <tt>CueTrackPositions</tt> element.</t> | |||
n the <tt>CueTrackPositions Element</tt>.</t> | <t>The <tt>Cues</tt> element is flexible. For instance, the <tt>Cues</tt> elemen | |||
<t>The <tt>Cues Element</tt> is flexible. For instance, <tt>Cues Element</tt> ca | t can be used to index every | |||
n 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</tt> Element and Two Levels of Its <t t>Descendant</tt> Elements | |||
</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</tt> element 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</tt> Element | |||
</name> | </name> | |||
<artwork>+------------------------------------------------+ | <artwork> | |||
+------------------------------------------------+ | ||||
| Attachments | AttachedFile | FileDescription | | | Attachments | AttachedFile | FileDescription | | |||
| | |-------------------| | | | |-------------------| | |||
| | | FileName | | | | | FileName | | |||
| | |-------------------| | | | |-------------------| | |||
| | | FileMediaType | | | | | FileMediaType | | |||
| | |-------------------| | | | |-------------------| | |||
| | | FileData | | | | | FileData | | |||
| | |-------------------| | | | |-------------------| | |||
| | | FileUID | | | | | FileUID | | |||
| | |-------------------| | ||||
| | | FileName | | ||||
| | |-------------------| | ||||
| | | FileReferral | | ||||
| | |-------------------| | ||||
| | | FileUsedStartTime | | ||||
| | |-------------------| | ||||
| | | 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</tt> element 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. <tt>Tags</tt> can contain their values in multiple languages. | |||
"title" <tt>Tag</tt> | For example, a movie's "TITLE" tag value might contain both the original | |||
might contain both the original English title as well as the title it was releas | English title as well as the German title.</t> | |||
ed as in Germany.</t> | <figure><name>Representation of a <tt>Tags</tt> Element and Three Levels of Its | |||
<figure><name>Representation of a <tt>Tags Element</tt> and three levels of its | <tt>Children Elements</tt> | |||
<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 502 ¶ | skipping to change at line 565 ¶ | |||
| | | | TagLanguage | | | | | | TagLanguage | | |||
| | | |------------------| | | | | |------------------| | |||
| | | | TagDefault | | | | | | TagDefault | | |||
| | | |------------------| | | | | |------------------| | |||
| | | | TagString | | | | | | TagString | | |||
| | | |------------------| | | | | |------------------| | |||
| | | | 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 | <t>This specification includes an <tt>EBML Schema</tt> that defines the elements | |||
ts and structure | and structure | |||
of Matroska using the EBML Schema elements and attributes defined in Section 11. | of Matroska using the EBML Schema elements and attributes defined in <xref targe | |||
1 of <xref target="RFC8794"></xref>. | t="RFC8794" sectionFormat="of" section="11.1"/>.</t> | |||
The EBML Schema defines every valid Matroska element in a manner defined by the | <t>Attributes using their default value (like <tt>minOccurs</tt>, <tt>minver</tt | |||
EBML specification.</t> | >, etc.) or attributes with undefined values (like <tt>length</tt>, <tt>maxver</ | |||
<t>Attributes using their default value like <tt>minOccurs</tt>, <tt>minver</tt> | tt>, etc.) are omitted.</t> | |||
, etc. or with undefined values like <tt>length</tt>, <tt>maxver</tt>, etc. are | <t>The definitions for each Matroska element are provided below.</t> | |||
omitted.</t> | ||||
<t>Here the definition of each Matroska Element is provided.</t> | ||||
<section anchor="segment-element"><name>Segment Element</name> | <section anchor="segment-element"><name>Segment Element</name> | |||
<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 <tt>Root Element</tt> that contains all other <tt>Top-Level Elements</tt >; see <xref target="data-layout"/>.</dd> | |||
</dl> | </dl> | |||
<section anchor="seekhead-element"><name>SeekHead Element</name> | <section anchor="seekhead-element"><name>SeekHead Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x114D9B74 / master</dd> | <dd>0x114D9B74 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\SeekHead</tt></dd> | <dd><tt>\Segment\SeekHead</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>2</dd> | <dd>2</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contains seeking information of Top-Level Elements; see <xref target="data-l ayout"></xref>.</dd> | <dd>Contains seeking information of <tt>Top-Level Elements</tt>; see <xref targe t="data-layout"/>.</dd> | |||
</dl> | </dl> | |||
<section anchor="seek-element"><name>Seek Element</name> | <section anchor="seek-element"><name>Seek Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x4DBB / master</dd> | <dd>0x4DBB / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\SeekHead\Seek</tt></dd> | <dd><tt>\Segment\SeekHead\Seek</tt></dd> | |||
<dt>minOccurs:</dt> | <dt>minOccurs:</dt> | |||
skipping to change at line 569 ¶ | skipping to change at line 630 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x53AB / binary</dd> | <dd>0x53AB / binary</dd> | |||
<dt>length:</dt> | <dt>length:</dt> | |||
<dd>4</dd> | <dd>4</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\SeekHead\Seek\SeekID</tt></dd> | <dd><tt>\Segment\SeekHead\Seek\SeekID</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 binary EBML ID of a Top-Level Element.</dd> | <dd>The binary EBML ID of a <tt>Top-Level Element</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="seekposition-element"><name>SeekPosition Element</name> | <section anchor="seekposition-element"><name>SeekPosition Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x53AC / uinteger</dd> | <dd>0x53AC / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\SeekHead\Seek\SeekPosition</tt></dd> | <dd><tt>\Segment\SeekHead\Seek\SeekPosition</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 Segment Position (<xref target="segment-position"></xref>) of a Top-Leve l Element.</dd> | <dd>The <tt>Segment Position</tt> (<xref target="segment-position"/>) of a <tt>T op-Level Element</tt>.</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> | |||
<t>recurring: True</t> | <dd>True</dd> | |||
<dl spacing="compact"> | ||||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contains general information about the Segment.</dd> | <dd>Contains general information about the <tt>Segment</tt>.</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 <tt>Segment</tt> amongst many o thers (128 bits). It is equivalent to a Universally Unique Identifier (UUID) v4 <xref target="RFC9562"/> with all bits randomly (or pseudorandomly) chosen. An actual UUID v4 value, where some bits are not random, <bcp14>MAY</bcp14> also be used.</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 | <dd>If the <tt>Segment</tt> is a part of a <tt>Linked Segment</tt>, then this el | |||
QUIRED</bcp14>. | ement is <bcp14>REQUIRED</bcp14>. | |||
The value of the unique ID <bcp14>MUST</bcp14> contain at least one bit set to 1 | The value of the UID <bcp14>MUST</bcp14> contain at least one bit set to 1.</dd> | |||
.</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> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A filename corresponding to this Segment.</dd> | <dd>A filename corresponding to this <tt>Segment</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="prevuuid-element"><name>PrevUUID Element</name> | <section anchor="prevuuid-element"><name>PrevUUID Element</name> | |||
<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 <tt>Segment</tt> of a <tt>Linked Segment< /tt>.</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 | <dd>If the <tt>Segment</tt> is a part of a <tt>Linked Segment</tt> that uses | |||
arget="hard-linking"></xref>), | Hard Linking (<xref target="hard-linking"/>), then either the | |||
then either the PrevUUID or the NextUUID Element is <bcp14>REQUIRED</bcp14>. If | <tt>PrevUUID</tt> or the <tt>NextUUID</tt> element is | |||
a Segment contains a PrevUUID but not a NextUUID, | <bcp14>REQUIRED</bcp14>. If a <tt>Segment</tt> contains a <tt>PrevUUID</tt> | |||
then it <bcp14>MAY</bcp14> be considered as the last Segment of the Linked Segme | but not a <tt>NextUUID</tt>, then it <bcp14>MAY</bcp14> be considered as the | |||
nt. The PrevUUID <bcp14>MUST NOT</bcp14> be equal to the SegmentUUID.</dd> | last <tt>Segment</tt> of the <tt>Linked Segment</tt>. The <tt>PrevUUID</tt> | |||
<bcp14>MUST NOT</bcp14> be equal to the <tt>SegmentUUID</tt>.</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"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x3C83AB / utf-8</dd> | <dd>0x3C83AB / utf-8</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\PrevFilename</tt></dd> | <dd><tt>\Segment\Info\PrevFilename</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A filename corresponding to the file of the previous Linked Segment.</dd> | <dd>A filename corresponding to the file of the previous <tt>Linked Segment</tt> .</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>Provision of the previous filename is for display convenience, | <dd>Provision of the previous filename is for display convenience, | |||
but PrevUUID <bcp14>SHOULD</bcp14> be considered authoritative for identifying t he previous Segment in a Linked Segment.</dd> | but <tt>PrevUUID</tt> <bcp14>SHOULD</bcp14> be considered authoritative for iden tifying the previous <tt>Segment</tt> in a <tt>Linked Segment</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="nextuuid-element"><name>NextUUID Element</name> | <section anchor="nextuuid-element"><name>NextUUID Element</name> | |||
<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 <tt>Segment</tt> of a <tt>Linked Segment</tt> .</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 | <dd>If the <tt>Segment</tt> is a part of a <tt>Linked Segment</tt> that uses Har | |||
arget="hard-linking"></xref>), | d Linking (<xref target="hard-linking"/>), | |||
then either the PrevUUID or the NextUUID Element is <bcp14>REQUIRED</bcp14>. If | then either the <tt>PrevUUID</tt> or the <tt>NextUUID</tt> element is <bcp14>REQ | |||
a Segment contains a NextUUID but not a PrevUUID, | UIRED</bcp14>. If a <tt>Segment</tt> contains a <tt>NextUUID</tt> but not a <tt> | |||
then it <bcp14>MAY</bcp14> be considered as the first Segment of the Linked Segm | PrevUUID</tt>, then it <bcp14>MAY</bcp14> be considered as the first <tt>Segment | |||
ent. The NextUUID <bcp14>MUST NOT</bcp14> be equal to the SegmentUUID.</dd> | </tt> of the <tt>Linked Segment</tt>. The <tt>NextUUID</tt> <bcp14>MUST NOT</bcp | |||
14> be equal to the <tt>SegmentUUID</tt>.</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"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x3E83BB / utf-8</dd> | <dd>0x3E83BB / utf-8</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\NextFilename</tt></dd> | <dd><tt>\Segment\Info\NextFilename</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A filename corresponding to the file of the next Linked Segment.</dd> | <dd>A filename corresponding to the file of the next <tt>Linked Segment</tt>.</d d> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>Provision of the next filename is for display convenience, | <dd>Provision of the next filename is for display convenience, | |||
but NextUUID <bcp14>SHOULD</bcp14> be considered authoritative for identifying t he Next Segment.</dd> | but <tt>NextUUID</tt> <bcp14>SHOULD</bcp14> be considered authoritative for iden tifying the Next <tt>Segment</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<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 <tt>Segments</tt> of a <tt>Linked Segment</tt> <bcp14>MUST</b cp14> share (128 bits). It is equivalent to a UUID v4 <xref target="RFC9562"/> w ith all bits randomly (or pseudorandomly) chosen. An actual UUID v4 value, where some bits are 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 <tt>Segment</tt> <tt>Info</tt> contains a <tt>ChapterTranslate</tt> e lement, this element 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> | |||
<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 | <dd>Chapter Codecs may need to address different segments, but they may not know | |||
of the way to identify such segment when stored in Matroska. | 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 | 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. | to the Chapter Codec to the <tt>SegmentUUID</tt>s in Matroska. | |||
This allows remuxing a file with Chapter Codec without changing the content of t | This allows remuxing a file with Chapter Codec without changing the content of t | |||
he codec data, just the Segment mapping.</dd> | he codec data, just the <tt>Segment</tt> 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> | |||
<dd>1 / 1</dd> | <dd>1 / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The binary value used to represent this Segment in the chapter codec data. | <dd>The binary value used to represent this <tt>Segment</tt> in the chapter code | |||
The format depends on the ChapProcessCodecID used; see <xref target="chapprocess | c data. | |||
codecid-element"></xref>.</dd> | The format depends on the <tt>ChapProcessCodecID</tt> used; see <xref target="ch | |||
approcesscodecid-element"/>.</dd> | ||||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="chaptertranslatecodec-element"><name>ChapterTranslateCodec Elem ent</name> | <section anchor="chaptertranslatecodec-element"><name>ChapterTranslateCodec Elem ent</name> | |||
<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 | <dd>Applies to the chapter codec of the given chapter edition(s); see <xref targ | |||
apter edition(s); see <xref target="chapprocesscodecid-element"></xref>.</dd> | et="chapprocesscodecid-element"/>.</dd> | |||
<dt>defined values:</dt> | ||||
<dd>See <xref target="ChapProcessCodecIDValues"/>. Additional values can be regi | ||||
stered in the "Matroska Chapter Codec | ||||
IDs" registry defined in <xref target="matroska-chapter-codec-ids-registry"/> | ||||
.</dd> | ||||
</dl> | </dl> | |||
<t>defined values:</t> | </section> | |||
<table anchor="ChapterTranslateCodecValues"><name>ChapterTranslateCodec values</ | ||||
name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">value</th> | ||||
<th align="left">label</th> | ||||
<th align="left">definition</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left"><tt>0</tt></td> | ||||
<td align="left">Matroska Script</td> | ||||
<td align="left">Chapter commands using the Matroska Script codec.</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left"><tt>1</tt></td> | ||||
<td align="left">DVD-menu</td> | ||||
<td align="left">Chapter commands using the DVD-like codec.</td> | ||||
</tr> | ||||
</tbody> | ||||
</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>Specifies a chapter edition UID to which this <tt>ChapterTranslate</tt> appl ies.</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 <tt>Segment</tt> 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> | |||
<dd>0x2AD7B1 / uinteger / 1000000</dd> | <dd>0x2AD7B1 / uinteger / 1000000</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0 (1-18446744073709551615)</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Info\TimestampScale</tt></dd> | <dd><tt>\Segment\Info\TimestampScale</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>Base unit for Segment Ticks and Track Ticks, in nanoseconds. A TimestampScal e value of 1000000 means scaled timestamps in the Segment are expressed in milli seconds; see <xref target="timestamps"></xref> on how to interpret timestamps.</ dd> | <dd>Base unit for Segment Ticks and Track Ticks, in nanoseconds. A <tt>Timestamp Scale</tt> value of 1000000 means scaled timestamps in the <tt>Segment</tt> are expressed in milliseconds; see <xref target="timestamps"/> on how to interpret t imestamps.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="duration-element"><name>Duration Element</name> | <section anchor="duration-element"><name>Duration Element</name> | |||
<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 <tt>Segment</tt>, expressed in <tt>Segment</tt> Ticks, which are based on <tt>TimestampScale</tt>; see <xref target="timestamp-ticks"/>.</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> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The date and time that the Segment was created by the muxing application or library.</dd> | <dd>The date and time that the <tt>Segment</tt> was created by the muxing applic ation or library.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="title-element"><name>Title Element</name> | <section anchor="title-element"><name>Title Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x7BA9 / utf-8</dd> | <dd>0x7BA9 / utf-8</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<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 <tt>Segment</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="muxingapp-element"><name>MuxingApp Element</name> | <section anchor="muxingapp-element"><name>MuxingApp Element</name> | |||
<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 <tt>Top-Level Element</tt> containing the (monolithic) <tt>Block</tt> st ructure.</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 <tt>TimestampScale</tt>; see <xref target="timestamp-ticks"/>.</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 <tt>Clu | |||
it belongs to, | ster</tt> it belongs to | |||
or the second if that Cluster contains a CRC-32 element (<xref target="crc-32">< | or the second if that <tt>Cluster</tt> contains a <tt>CRC-32</tt> element (<xref | |||
/xref>).</dd> | target="crc-32"/>).</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 <tt>Segment Position</tt> of the <tt>Cluster</tt> in the <tt>Segment</tt | |||
It might help to resynchronise offset on damaged streams.</dd> | > (0 in live streams). | |||
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> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Size of the previous Cluster, in octets. Can be useful for backward playing. </dd> | <dd>Size of the previous <tt>Cluster</tt>, in octets. Can be useful for backward playing.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<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 | <dd>Similar to <tt>Block</tt> (see <xref target="block-structure"/>) but without | |||
l the extra information, | all the extra information. | |||
mostly used to reduced overhead when no extra feature is needed; see <xref targe | Mostly used to reduce overhead when no extra feature is needed; see <xref target | |||
t="simpleblock-structure"></xref> on SimpleBlock Structure.</dd> | ="simpleblock-structure"/> on <tt>SimpleBlock</tt> 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> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Basic container of information containing a single Block and information spe cific to that Block.</dd> | <dd>Basic container of information containing a single <tt>Block</tt> and inform ation specific to that <tt>Block</tt>.</dd> | |||
</dl> | </dl> | |||
<section anchor="block-element"><name>Block Element</name> | <section anchor="block-element"><name>Block Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xA1 / binary</dd> | <dd>0xA1 / binary</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\Block</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\Block</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>Block containing the actual data to be rendered and a timestamp relative to | <dd><tt>Block</tt> containing the actual data to be rendered and a timestamp rel | |||
the Cluster Timestamp; | ative to the <tt>Cluster</tt> Timestamp; | |||
see <xref target="block-structure"></xref> on Block Structure.</dd> | see <xref target="block-structure"/> on <tt>Block</tt> Structure.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<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 | <dd>Contains additional binary data to complete the <tt>Block</tt> element; see | |||
tions section of <xref target="MatroskaCodec"></xref> for more information. | <xref target="I-D.ietf-cellar-codec" sectionFormat="of" section="4.1.5"/> for mo | |||
An EBML parser that has no knowledge of the Block structure could still see and | re information. | |||
use/skip these data.</dd> | An EBML parser that has no knowledge of the <tt>Block</tt> 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 <tt>BlockAdditional</tt> 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 <tt>BlockAddID</tt>).</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="blockaddid-element"><name>BlockAddID Element</name> | <section anchor="blockaddid-element"><name>BlockAddID Element</name> | |||
<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 (1-18446744073709551615)</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 <tt>BlockAdditional</tt> data; se | |||
Additions section of <xref target="MatroskaCodec"></xref> for more information. | e <xref target="I-D.ietf-cellar-codec" sectionFormat="of" section="4.1.5"/> for | |||
A value of 1 indicates that the meaning of the BlockAdditional data is defined b | more information. A value of 1 indicates that the <tt>BlockAdditional</tt> data | |||
y the codec. | is | |||
Any other value indicates the meaning of the BlockAdditional data is found in th | defined by the codec. Any other value indicates that the <tt>BlockAdditional</tt | |||
e BlockAddIDType found in the TrackEntry.</dd> | > data | |||
<dt>usage notes:</dt> | should be handled according to the <tt>BlockAddIDType</tt> that is located in th | |||
<dd>Each BlockAddID value <bcp14>MUST</bcp14> be unique between all BlockMore el | e | |||
ements found in a BlockAdditions.</dd> | <tt>TrackEntry</tt>.</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>Each <tt>BlockAddID</tt> value <bcp14>MUST</bcp14> be unique between all <tt >BlockMore</tt> elements found in a <tt>BlockAdditions</tt> element. To keep <tt >MaxBlockAdditionID</tt> as low as possible, small values <bcp14>SHOULD</bcp14> 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> | |||
<dd>see implementation notes / 1</dd> | <dd>See <xref target="BlockDurationNotes"/> / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The duration of the Block, expressed in Track Ticks; see <xref target="times | <dd>The duration of the <tt>Block</tt>, expressed in Track Ticks; see <xref | |||
tamp-ticks"></xref>. | target="timestamp-ticks"/>. The <tt>BlockDuration</tt> element can be useful | |||
The BlockDuration Element can be useful at the end of a Track to define the dura | at the end of a <tt>Track</tt> to define the duration of the last frame (as | |||
tion of the last frame (as there is no subsequent Block available), | there is no subsequent <tt>Block</tt> available) or when there is a break in a | |||
or when there is a break in a track like for subtitle tracks.</dd> | 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"><tt>BlockDuration</tt> <bcp14>MUST</bcp14> be set (minOccurs=1) if the associated <tt>TrackEntry</tt> stores a <tt>DefaultDuration</tt> 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 f the next Block in "display" order (not coding order).</td> | <td align="left">If a value is not present and no <tt>DefaultDuration</tt> is de fined, the value is assumed to be the difference between the timestamp of this < tt>Block</tt> and the timestamp of the next <tt>Block</tt> in "display" order (n ot 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 <tt>Block</tt> in this < tt>BlockGroup</tt>, expressed in Track Ticks; see <xref target="timestamp-ticks" />. | |||
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, <tt>Matroska Writers</tt> didn't write the actual <tt>Block(s)</tt | |||
Block</tt> depends on, but <em>some</em> <tt>Block</tt> in the past.</dd> | > that this <tt>Block</tt> depends on, but they did write <em>some</em> <tt>Bloc | |||
k(s)</tt> in the past.</dd> | ||||
</dl> | </dl> | |||
<t>The value "0" <bcp14>MAY</bcp14> also be used to signify this <tt>B | <t>The value "0" <bcp14>MAY</bcp14> also be used to signify that this <tt>Block< | |||
lock</tt> cannot be decoded on its own, but without knownledge of which <tt>Bloc | /tt> cannot be decoded on its own, but the necessary reference <tt>Block(s)</tt> | |||
k</tt> is necessary. In this case, other <tt>ReferenceBlock</tt> <bcp14>MUST NOT | is unknown. In this case, other <tt>ReferenceBlock</tt> elements <bcp14>MUST NO | |||
</bcp14> be found in the same <tt>BlockGroup</tt>.</t> | T</bcp14> be found in the same <tt>BlockGroup</tt>. If the <tt>BlockGroup</tt> d | |||
<t>If the <tt>BlockGroup</tt> doesn't have any <tt>ReferenceBlock</tt> element, | oesn't have a <tt>ReferenceBlock</tt> element, then the <tt>Block</tt> it contai | |||
then the <tt>Block</tt> it contains can be decoded without using any other <tt>B | ns can be decoded without using any other <tt>Block</tt> data.</t> | |||
lock</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 1170 ¶ | skipping to change at line 1214 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<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 | <dd>Duration of the silent data added to the <tt>Block</tt>, expressed in | |||
-- i.e., in nanoseconds; see <xref target="timestamp-ticks"></xref> | Matroska Ticks -- i.e., in nanoseconds; see <xref target="timestamp-ticks"/> | |||
(padding at the end of the Block for positive value, at the beginning of the Blo | (padding at the end of the <tt>Block</tt> for positive values and at the | |||
ck for negative value). | beginning of the <tt>Block</tt> for negative values). The duration of | |||
The duration of DiscardPadding is not calculated in the duration of the TrackEnt | <tt>DiscardPadding</tt> is not calculated in the duration of the | |||
ry and <bcp14>SHOULD</bcp14> be discarded during playback.</dd> | <tt>TrackEntry</tt> 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> | |||
<t>recurring: True</t> | <dd>True</dd> | |||
<dl spacing="compact"> | ||||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A Top-Level Element of information with many tracks described.</dd> | <dd>A <tt>Top-Level Element</tt> 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> | |||
<dd><tt>\Segment\Tracks\TrackEntry</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry</tt></dd> | |||
<dt>minOccurs:</dt> | <dt>minOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Describes a track with all Elements.</dd> | <dd>Describes a track with all elements.</dd> | |||
</dl> | </dl> | |||
<section anchor="tracknumber-element"><name>TrackNumber Element</name> | <section anchor="tracknumber-element"><name>TrackNumber Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xD7 / uinteger</dd> | <dd>0xD7 / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0 (1-18446744073709551615)</dd> | |||
<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 <tt>Block</tt> 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 (1-18446744073709551615)</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 <tt>Track</tt>.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x83 / uinteger</dd> | <dd>0x83 / uinteger</dd> | |||
<dt>range:</dt> | ||||
<dd>not 0 (1-18446744073709551615)</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 <tt>Track </tt>. | |||
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"/>. Additional values can be registered in | ||||
the "Matroska Track Types" registry defined in <xref target="matroska-track-typ | ||||
es-registry"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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> | |||
<tr> | <tr> | |||
<td align="left"><tt>2</tt></td> | <td align="left"><tt>2</tt></td> | |||
<td align="left">audio</td> | <td align="left">audio</td> | |||
<td align="left">Audio samples.</td> | <td align="left">Audio samples.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>3</tt></td> | <td align="left"><tt>3</tt></td> | |||
<td align="left">complex</td> | <td align="left">complex</td> | |||
<td align="left">A mix of different other TrackType. The codec needs to define h ow the <tt>Matroska Player</tt> should interpret such data.</td> | <td align="left">A mix of different other <tt>TrackType</tt>. The codec needs to define how the <tt>Matroska Player</tt> should interpret such data.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>16</tt></td> | <td align="left"><tt>16</tt></td> | |||
<td align="left">logo</td> | <td align="left">logo</td> | |||
<td align="left">An image to be rendered over the video track(s).</td> | <td align="left">An image to be rendered over the video track(s).</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>17</tt></td> | <td align="left"><tt>17</tt></td> | |||
skipping to change at line 1313 ¶ | skipping to change at line 1365 ¶ | |||
<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 ils.</dd> | <dd>Set to 1 if the track (audio, video, or subtitles) is eligible for automatic selection by the player; see <xref target="default-track-selection"/> for more details.</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 to 1 if the track is eligible for automatic s | |||
tion by the player if it matches the user's language preference, | election 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"/> 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"/> 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 (1-18446744073709551615)</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 | <dd>Number of nanoseconds per frame, expressed in Matroska Ticks -- i.e., in nan | |||
oseconds; see <xref target="timestamp-ticks"></xref> | oseconds; see <xref target="timestamp-ticks"/> | |||
(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"/>)</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 (1-18446744073709551615)</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 | <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 | ss, expressed in Matroska Ticks -- i.e., in nanoseconds; see <xref target="times | |||
tamp-ticks"></xref>. | tamp-ticks"/>. | |||
see <xref target="defaultdecodedfieldduration"></xref> for more information</dd> | See <xref target="defaultdecodedfieldduration"/> for more information.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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"/>)</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 <tt>BlockAddID</tt> (<xref target="blockaddid-element"/ | |||
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 <tt>BlockAdditions</tt> (<xref target="blockaddit | |||
ions-element"/>) 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 | <dd>Contains elements that extend the track format by adding content either to e | |||
each frame, | ach frame, | |||
with BlockAddID (<xref target="blockaddid-element"></xref>), or to the track as | with <tt>BlockAddID</tt> (<xref target="blockaddid-element"/>), or to the track | |||
a whole | as a whole | |||
with BlockAddIDExtraData.</dd> | with <tt>BlockAddIDExtraData</tt>.</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> | |||
<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 <tt>BlockAddID</tt> (<xref target="blockaddid-element"/> ) value 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 <tt>MaxBlockAdditionID</tt> as low as possible, small values <bcp14> SHOULD</bcp14> 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> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\BlockAdditionMapping\BlockAddIDName</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\BlockAdditionMapping\BlockAddIDName</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>A human-friendly name describing the type of BlockAdditional data, | <dd>A human-friendly name describing the type of <tt>BlockAdditional</tt> data, | |||
as defined by the associated Block Additional Mapping.</dd> | as defined by the associated <tt>Block Additional Mapping</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="blockaddidtype-element"><name>BlockAddIDType Element</name> | <section anchor="blockaddidtype-element"><name>BlockAddIDType Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x41E7 / uinteger / 0</dd> | <dd>0x41E7 / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\BlockAdditionMapping\BlockAddIDType</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\BlockAdditionMapping\BlockAddIDType</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>Stores the registered identifier of the Block Additional Mapping | <dd>Stores the registered identifier of the <tt>Block Additional Mapping</tt> | |||
to define how the BlockAdditional data should be handled.</dd> | to define how the <tt>BlockAdditional</tt> data should be handled.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>If BlockAddIDType is 0, the BlockAddIDValue and corresponding BlockAddID val ues <bcp14>MUST</bcp14> be 1.</dd> | <dd>If <tt>BlockAddIDType</tt> is 0, the <tt>BlockAddIDValue</tt> and correspond ing <tt>BlockAddID</tt> values <bcp14>MUST</bcp14> be 1.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="blockaddidextradata-element"><name>BlockAddIDExtraData Element< /name> | <section anchor="blockaddidextradata-element"><name>BlockAddIDExtraData Element< /name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x41ED / binary</dd> | <dd>0x41ED / binary</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\BlockAdditionMapping\BlockAddIDExtraData</tt> </dd> | <dd><tt>\Segment\Tracks\TrackEntry\BlockAdditionMapping\BlockAddIDExtraData</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>Extra binary data that the BlockAddIDType can use to interpret the BlockAddi | <dd>Extra binary data that the <tt>BlockAddIDType</tt> can use to interpret the | |||
tional data. | <tt>BlockAdditional</tt> data. | |||
The interpretation of the binary data depends on the BlockAddIDType value and th | The interpretation of the binary data depends on the <tt>BlockAddIDType</tt> val | |||
e corresponding Block Additional Mapping.</dd> | ue and the corresponding <tt>Block Additional Mapping</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="name-element"><name>Name Element</name> | <section anchor="name-element"><name>Name Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x536E / utf-8</dd> | <dd>0x536E / utf-8</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
skipping to change at line 1663 ¶ | skipping to change at line 1719 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x22B59C / string / eng</dd> | <dd>0x22B59C / string / eng</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Language</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Language</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 language of the track, | <dd>The language of the track, | |||
in the Matroska languages form; see <xref target="language-codes"></xref> on lan | in the Matroska languages form; see <xref target="language-codes"/> on language | |||
guage codes. | codes. | |||
This Element <bcp14>MUST</bcp14> be ignored if the LanguageBCP47 Element is used | This element <bcp14>MUST</bcp14> be ignored if the <tt>LanguageBCP47</tt> elemen | |||
in the same TrackEntry.</dd> | t is used in the same <tt>TrackEntry</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="languagebcp47-element"><name>LanguageBCP47 Element</name> | <section anchor="languagebcp47-element"><name>LanguageBCP47 Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<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 | in the form defined in <xref target="RFC5646"/>; see <xref target="language-code | |||
ef> on language codes. | s"/> on language codes. | |||
If this Element is used, then any Language Elements used in the same TrackEntry | If this element is used, then any <tt>Language</tt> elements used in the same <t | |||
<bcp14>MUST</bcp14> be ignored.</dd> | t>TrackEntry</tt> <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"/> for more info.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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"/>)</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 1737 ¶ | skipping to change at line 1795 ¶ | |||
<dd>A human-readable string specifying the codec.</dd> | <dd>A human-readable string specifying the codec.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="attachmentlink-element"><name>AttachmentLink Element</name> | <section anchor="attachmentlink-element"><name>AttachmentLink Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x7446 / uinteger</dd> | <dd>0x7446 / uinteger</dd> | |||
<dt>range:</dt> | <dt>range:</dt> | |||
<dd>not 0</dd> | <dd>not 0 (1-18446744073709551615)</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\AttachmentLink</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\AttachmentLink</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>maxver:</dt> | <dt>maxver:</dt> | |||
<dd>3</dd> | <dd>3</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The UID of an attachment that is used by this codec.</dd> | <dd>The UID of an attachment that is used by this codec.</dd> | |||
<dt>usage notes:</dt> | <dt>usage notes:</dt> | |||
<dd>The value <bcp14>MUST</bcp14> match the <tt>FileUID</tt> value of an attachm ent found in this Segment.</dd> | <dd>The value <bcp14>MUST</bcp14> match the <tt>FileUID</tt> value of an attachm ent found in this <tt>Segment</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="codecdelay-element"><name>CodecDelay Element</name> | <section anchor="codecdelay-element"><name>CodecDelay Element</name> | |||
<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"/>. | |||
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 | The value <bcp14>SHOULD</bcp14> be small so the muxing of tracks with the same a | |||
ctual timestamp are in the same Cluster.</dd> | ctual timestamp are in the same <tt>Cluster</tt>.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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"/>.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 Codecs 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> | |||
<dd><tt>\Segment\Tracks\TrackEntry\TrackTranslate\TrackTranslateTrackID</tt></dd > | <dd><tt>\Segment\Tracks\TrackEntry\TrackTranslate\TrackTranslateTrackID</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 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"/>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="tracktranslatecodec-element"><name>TrackTranslateCodec Element< /name> | <section anchor="tracktranslatecodec-element"><name>TrackTranslateCodec Element< /name> | |||
<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>Applies to the chapter codec of the given chapter edition(s); see <xref targ | |||
ter edition(s); see <xref target="chapprocesscodecid-element"></xref>.</dd> | et="chapprocesscodecid-element"/>.</dd> | |||
<dt>defined values:</dt> | ||||
<dd>See <xref target="ChapProcessCodecIDValues"/>. Additional values can be regi | ||||
stered in the "Matroska Chapter Codec IDs" registry defined in <xref target="mat | ||||
roska-chapter-codec-ids-registry"/>.</dd> | ||||
</dl> | </dl> | |||
<t>defined values:</t> | </section> | |||
<table anchor="TrackTranslateCodecValues"><name>TrackTranslateCodec values</name | ||||
> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">value</th> | ||||
<th align="left">label</th> | ||||
<th align="left">definition</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left"><tt>0</tt></td> | ||||
<td align="left">Matroska Script</td> | ||||
<td align="left">Chapter commands using the Matroska Script codec.</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left"><tt>1</tt></td> | ||||
<td align="left">DVD-menu</td> | ||||
<td align="left">Chapter commands using the DVD-like codec.</td> | ||||
</tr> | ||||
</tbody> | ||||
</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 <tt>Segment</tt> 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> | |||
<dd>0xE0 / master</dd> | <dd>0xE0 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
skipping to change at line 1896 ¶ | skipping to change at line 1935 ¶ | |||
<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>restrictions:</dt> | ||||
<dd>See <xref target="FlagInterlacedValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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>restrictions:</dt> | ||||
<dd>See <xref target="FieldOrderValues"/>.</dd> | ||||
<dt>usage notes:</dt> | ||||
<dd>If <tt>FlagInterlaced</tt> is not set to 1, this element <bcp14>MUST</bcp14> | ||||
be ignored.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 <tt>FlagInterlaced</tt> 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> | |||
<td align="left">bff(swapped)</td> | <td align="left">tff (interleaved)</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> | <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">bff (interleaved)</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"/> for mo | |||
nar-and-3d-videos"></xref>.</dd> | re details.</dd> | |||
<dt>defined values:</dt> | ||||
<dd>See <xref target="StereoModeValues"/>. Additional values can be registered i | ||||
n the "Matroska Stereo Modes" registry defined in <xref target="matroska-stereo- | ||||
modes-registry"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 2143 ¶ | |||
<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> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Indicate whether the BlockAdditional Element with BlockAddID of "1" | <dd>Indicates whether the <tt>BlockAdditional</tt> element with <tt>BlockAddID</ | |||
; contains Alpha data, as defined by to the Codec Mapping for the <tt>CodecID</t | tt> of "1" | |||
t>. | contains Alpha data as defined by the Codec Mapping for the <tt>CodecID</tt>. | |||
Undefined values <bcp14>SHOULD NOT</bcp14> be used as the behavior of known impl | Undefined values (i.e., values other than 0 or 1) <bcp14>SHOULD NOT</bcp14> be u | |||
ementations is different (considered either as 0 or 1).</dd> | sed, as the | |||
behavior of known implementations is different.</dd> | ||||
<dt>defined values:</dt> | ||||
<dd>See <xref target="AlphaModeValues"/>. Additional values can be registered in | ||||
the "Matroska Alpha Modes" registry defined in <xref target="matroska-alpha-mod | ||||
es-registry"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 <tt>BlockAdditional</tt> element with <tt>BlockAddID</tt> o f "1" does not exist or <bcp14>SHOULD NOT</bcp14> be considered as containing su ch 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 <tt>BlockAdditional</tt> element with <tt>BlockAddID</tt> o f "1" contains alpha 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 <tt>StereoMode</tt> value used in old versions of <xref target="libmat | |||
roska"/>.</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 2239 ¶ | |||
<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 (1-18446744073709551615)</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"/>)</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 (1-18446744073709551615)</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"/>)</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"/>)</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"/>)</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"/>)</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"/>)</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 (1-18446744073709551615)</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"/>)</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 <tt>TrackEntry</tt> is 0, then t he default value for <tt>DisplayWidth</tt> is equal to <tt>PixelWidth</tt> - <tt >PixelCropLeft</tt> - <tt>PixelCropRight</tt>; 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 (1-18446744073709551615)</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"/>)</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 <tt>TrackEntry</tt> is 0, then t he default value for <tt>DisplayHeight</tt> is equal to <tt>PixelHeight</tt> - < tt>PixelCropTop</tt> - <tt>PixelCropBottom</tt>; 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 <tt>DisplayWidth</tt> and <tt>DisplayHeight</tt> are interpreted.</dd> | |||
<dt>defined values:</dt> | ||||
<dd>See <xref target="DisplayUnitValues"/>. Additional values can be registered | ||||
in the "Matroska Display Units" registry defined in <xref target="matroska-displ | ||||
ay-units-registry"/>.</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 2459 ¶ | |||
<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 <xref target="UncompressedFourCCNotes"/> / 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 <tt>Track</tt>'s data a | |||
This value is similar in scope to the biCompression value of AVI's <tt>BITMAPINF | s a FourCC. | |||
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"/>. There is neither a definitive list of FourCC | |||
found at <xref target="MSYUV8"></xref>, <xref target="MSYUV16"></xref> and <xre | values nor an official registry. Some common values for YUV pixel formats can be | |||
f target="FourCC-YUV"></xref>. Some common values for uncompressed RGB pixel for | found at <xref target="MSYUV8"/>, <xref target="MSYUV16"/>, and <xref target="F | |||
mats can be found at <xref target="MSRGB"></xref> and <xref target="FourCC-RGB"> | ourCC-YUV"/>. Some common values for uncompressed RGB pixel formats can be found | |||
</xref>.</dd> | at <xref target="MSRGB"/> and <xref target="FourCC-RGB"/>.</dd> | |||
<dt>notes:</dt> | ||||
<dd>See <xref target="UncompressedFourCCNotes"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 <tt>TrackEntry</tt> when the <tt>CodecID</tt> element of the <tt>TrackEntry</tt> 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 color format.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 | For clarity, the value and meanings for <tt>MatrixCoefficients</tt> are adopted | |||
e 4 of <xref target="ITU-H.273"></xref>.</dd> | from Table 4 of <xref target="ITU-H.273"/>.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="MatrixCoefficientsValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 2619 ¶ | |||
<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 | <dd>Number of decoded bits per channel. A value of 0 indicates that the <tt>Bits | |||
hannel is unspecified.</dd> | PerChannel</tt> is unspecified.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 <tt | |||
Example: For video with 4:2:0 chroma subsampling, the ChromaSubsamplingHorz <bcp | >ChromaSubsamplingHorz</tt> | |||
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"/>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </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 ChromaSubsamplingVert <bcp | Example: For video with 4:2:0 chroma subsampling, the <tt>ChromaSubsamplingVert< | |||
14>SHOULD</bcp14> be set to 1.</dd> | /tt> | |||
<bcp14>SHOULD</bcp14> be set to 1.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 <tt>ChromaSubsamplingHorz</tt>. | |||
a subsampling, | Example: For video with 4:2:1 chroma | |||
the ChromaSubsamplingHorz <bcp14>SHOULD</bcp14> be set to 1 and CbSubsamplingHor | subsampling, the <tt>ChromaSubsamplingHorz</tt> <bcp14>SHOULD</bcp14> be set to | |||
z <bcp14>SHOULD</bcp14> be set to 1.</dd> | 1, and <tt>CbSubsamplingHorz</tt> <bcp14>SHOULD</bcp14> be set to 1.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </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 | <dd>The number of pixels to remove in the Cb channel for every pixel not removed | |||
vertically. | vertically. | |||
This is additive with ChromaSubsamplingVert.</dd> | This is additive with <tt>ChromaSubsamplingVert</tt>.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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>defined values:</dt> | ||||
<dd>See <xref target="ChromaSitingHorzValues"/>. Additional values can be regist | ||||
ered in the "Matroska Horizontal Chroma Sitings" registry defined in <xref targe | ||||
t="matroska-horizontal-chroma-sitings-registry"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 2761 ¶ | |||
<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>defined values:</dt> | ||||
<dd>See <xref target="ChromaSitingVertValues"/>. Additional values can be regist | ||||
ered in the "Matroska Vertical Chroma Sitings" registry defined in <xref target= | ||||
"matroska-vertical-chroma-sitings-registry"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 2806 ¶ | |||
<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="color-range-element"><name>Color 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>defined values:</dt> | ||||
<dd>See <xref target="RangeValues"/>. Additional values can be registered in the | ||||
"Matroska Color Ranges" registry defined in <xref target="matroska-color-ranges | ||||
-registry"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 2856 ¶ | |||
<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 < | the value and meanings for <tt>TransferCharacteristics</tt> are adopted from Tab | |||
xref target="ITU-H.273"></xref>.</dd> | le 3 of <xref target="ITU-H.273"/>.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="TransferCharacteristicsValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 2982 ¶ | |||
<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 color primaries of the video. For clarity, | |||
the value and meanings for Primaries are adopted from Table 2 of <xref target="I | the value and meanings for <tt>Primaries</tt> are adopted from Table 2 of <xref | |||
TU-H.273"></xref>.</dd> | target="ITU-H.273"/>.</dd> | |||
<dt>restrictions:</dt> | ||||
<dd>See <xref target="PrimariesValues"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 3083 ¶ | |||
<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"/>)</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"/>)</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"/>)</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>Red X chromaticity coordinate, as defined by <xref target="CIE-1931"/>.</dd> | |||
.</dd> | <dt>stream copy:</dt> | |||
<dd>True (<xref target="stream-copy"/>)</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>Red Y chromaticity coordinate, as defined by <xref target="CIE-1931"/>.</dd> | |||
.</dd> | <dt>stream copy:</dt> | |||
<dd>True (<xref target="stream-copy"/>)</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 | <dd>Green X chromaticity coordinate, as defined by <xref target="CIE-1931"/>.</d | |||
f>.</dd> | d> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 | <dd>Green Y chromaticity coordinate, as defined by <xref target="CIE-1931"/>.</d | |||
f>.</dd> | d> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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>Blue X chromaticity coordinate, as defined by <xref target="CIE-1931"/>.</dd | |||
>.</dd> | > | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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>Blue Y chromaticity coordinate, as defined by <xref target="CIE-1931"/>.</dd | |||
>.</dd> | > | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 | <dd>White X chromaticity coordinate, as defined by <xref target="CIE-1931"/>.</d | |||
f>.</dd> | d> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 | <dd>White Y chromaticity coordinate, as defined by <xref target="CIE-1931"/>.</d | |||
f>.</dd> | d> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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"/>)</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"/>)</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 | <dd>Describes the video projection details. Used to render spherical or VR video | |||
or flipping videos horizontally/vertically.</dd> | s or to flip videos horizontally or vertically.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </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>defined values:</dt> | ||||
<dd>See <xref target="ProjectionTypeValues"/>. Additional values can be register | ||||
ed in the "Matroska Projection Types" registry defined in <xref target="matroska | ||||
-projection-types-registry"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 3407 ¶ | |||
<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>Private data that only applies to a specific projection.</dd> | |||
</dl> | </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> | |||
<dl spacing="compact"> | <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"/>)</dd> | ||||
</dl> | </dl> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</section> | </section> | |||
<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. Value represents a clockwise rot | |||
</dl> | ation, 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 | The value of this element <bcp14>MUST</bcp14> be in the -180 to 180 degree range | |||
, both included.</t> | , both inclusive.</dd> | |||
<t>Setting <tt>ProjectionPoseYaw</tt> to 180 or -180 degrees, with the <tt>Proje | </dl> | |||
ctionPoseRoll</tt> and <tt>ProjectionPosePitch</tt> set to 0 degrees flips the i | <t>Setting <tt>ProjectionPoseYaw</tt> to 180 or -180 degrees with <tt>Projection | |||
mage horizontally.</t> | PoseRoll</tt> and <tt>ProjectionPosePitch</tt> set to 0 degrees flips the image | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | horizontally.</t> | |||
<dl spacing="compact"> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Projection\ProjectionPosePitch</tt></dd > | <dd><tt>\Segment\Tracks\TrackEntry\Video\Projection\ProjectionPosePitch</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 pitch rotation to the projection.</dd> | <dd>Specifies a pitch rotation to the projection. Value represents a counter-clo | |||
</dl> | ckwise rotation, in degrees, around the right vector. This rotation must be appl | |||
<t>Value represents a counter-clockwise rotation, in degrees, around the right v | ied | |||
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, | The value of this element <bcp14>MUST</bcp14> be in the -90 to 90 degree range, | |||
both included.</t> | both inclusive.</dd> | |||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | <dt>stream copy:</dt> | |||
<dd>True (<xref target="stream-copy"/>)</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> | |||
<dd><tt>\Segment\Tracks\TrackEntry\Video\Projection\ProjectionPoseRoll</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\Video\Projection\ProjectionPoseRoll</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 roll rotation to the projection.</dd> | <dd>Specifies a roll rotation to the projection. 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. The value of this element | ||||
<bcp14>MUST</bcp14> be in the -180 to 180 degree range, both inclusive. Setting | ||||
<tt>ProjectionPoseRoll</tt> to 180 or -180 degrees and | ||||
<tt>ProjectionPoseYaw</tt> to 180 or -180 degrees with | ||||
<tt>ProjectionPosePitch</tt> set to 0 degrees flips the image vertically. | ||||
Setting <tt>ProjectionPoseRoll</tt> to 180 or -180 degrees with | ||||
<tt>ProjectionPoseYaw</tt> and <tt>ProjectionPosePitch</tt> set to 0 degrees | ||||
flips the image horizontally and vertically.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</dd> | ||||
</dl> | </dl> | |||
<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. | ||||
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 | ||||
nPoseYaw</tt> to 180 or -180 degrees with <tt>ProjectionPosePitch</tt> set to 0 | ||||
degrees flips the image vertically.</t> | ||||
<t>Setting <tt>ProjectionPoseRoll</tt> to 180 or -180 degrees, with the <tt>Proj | ||||
ectionPoseYaw</tt> and <tt>ProjectionPosePitch</tt> set to 0 degrees flips the i | ||||
mage horizontally and vertically.</t> | ||||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</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 3550 ¶ | |||
<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"/>)</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> | |||
<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 that is used for Spectral Band Replicat | |||
ion (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 <tt>OutputSamplingFrequency</tt> of the s ame <tt>TrackEntry</tt> is equal to the <tt>SamplingFrequency</tt>.</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 (1-18446744073709551615)</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"/>)</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 (1-18446744073709551615)</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"/>)</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"/>.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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"/>)</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"/>)</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 (1-18446744073709551615)</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 <tt>TrackUID</tt> number of the track representing the plane.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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>defined values:</dt> | ||||
<dd>See <xref target="TrackPlaneTypeValues"/>. Additional values can be register | ||||
ed in the "Matroska Track Plane Types" registry defined in <xref target="matrosk | ||||
a-track-plane-types-registry"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 3740 ¶ | |||
<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 <tt>Blocks</tt> need to be combined to | |||
his virtual track</dd> | create this virtual track.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 (1-18446744073709551615)</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 | <dd>The <tt>TrackUID</tt> number of a track whose blocks are used to create this | |||
track.</dd> | virtual track.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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"/>)</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"/>)</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> | |||
<dd>Tell in which order to apply each <tt>ContentEncoding</tt> of the <tt>Conten tEncodings</tt>. | <dd>Defines the order to apply each <tt>ContentEncoding</tt> of the <tt>ContentE ncodings</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"/>)</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>range:</dt> | ||||
<dd>not 0 (0x1-0x8000000000000000)</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. Va | |||
Values (big-endian) can be OR'ed.</dd> | lues (big-endian) can be OR'ed.</dd> | |||
<dt>defined values:</dt> | ||||
<dd>See <xref target="ContentEncodingScopeValues"/>. Additional values can be re | ||||
gistered in the "Matroska Content Encoding Scopes" registry defined in <xref tar | ||||
get="matroska-content-encoding-scopes-registry"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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> | |||
<td align="left"><tt>1</tt></td> | <td align="left"><tt>0x1</tt></td> | |||
<td align="left">Block</td> | <td align="left">Block</td> | |||
<td align="left">All frame contents, excluding lacing data.</td> | <td align="left">All frame contents, excluding lacing data.</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<td align="left"><tt>2</tt></td> | <td align="left"><tt>0x2</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>0x4</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>defined values:</dt> | ||||
<dd>See <xref target="ContentEncodingTypeValues"/>. Additional values can be reg | ||||
istered in the "Matroska Content Encoding Types" registry defined in <xref targe | ||||
t="matroska-content-encoding-types-registry"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 | This element <bcp14>MUST</bcp14> be present if the value of <tt>ContentEncodingT | |||
is 0 and absent otherwise. | ype</tt> 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"/>)</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"/>. Additional values can be registe | ||||
red in the "Matroska Compression Algorithms" registry defined in <xref target="m | ||||
atroska-compression-algorithms-registry"/>.</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 <tt>Matroska Writer</tt> <bcp14>SHOULD NOT</bc | ||||
p14> use these compression methods by default. A <tt>Matroska Reader</tt> <bcp14 | ||||
>MAY</bcp14> support methods "1" and "2" and <bcp14>SHOULD</bcp14> support other | ||||
methods.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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"/>.</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"/> <bcp14>SHOULD NOT</bcp 14> 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"/> <bcp14>SH OULD 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"/>) have been stripped from each frame.</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table> | </table> | |||
<dl spacing="compact"> | ||||
<dt>usage notes:</dt> | ||||
<dd>Compression method "1" (bzlib) and "2" (lzo1x) are lacki | ||||
ng proper documentation on the format which limits implementation possibilities. | ||||
Due to licensing conflicts on commonly available libraries compression methods & | ||||
quot;2" (lzo1x) does not offer widespread interoperability. | ||||
A Matroska Writer <bcp14>SHOULD NOT</bcp14> use these compression methods by def | ||||
ault. | ||||
A Matroska Reader <bcp14>MAY</bcp14> support methods "1" and "2&q | ||||
uot; as possible, and <bcp14>SHOULD</bcp14> support other methods.</dd> | ||||
</dl> | ||||
<t>stream copy: True (<xref target="stream-copy"></xref>)</t> | ||||
</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"/>)</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 | 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. | ype</tt> is 1 (encryption) and <bcp14>MUST</bcp14> be ignored otherwise. | |||
A Matroska Player <bcp14>MAY</bcp14> support encryption.</dd> | A <tt>Matroska Player</tt> <bcp14>MAY</bcp14> support encryption.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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"/>. Additional values can be register | ||||
ed in the "Matroska Encryption Algorithms" registry defined in <xref target="mat | ||||
roska-encryption-algorithms-registry"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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"/>. 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"/>. Thi s 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"/>.</td> | |||
</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"/>. This v alue <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"/>.</t d> | |||
</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"/>)</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"/>)</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>range:</dt> | ||||
<dd>not 0 (1-18446744073709551615)</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"/>. Additional values can be r | ||||
egistered in the "Matroska AES Cipher Modes" registry defined in <xref target="m | ||||
atroska-aes-cipher-modes-registry"/>.</dd> | ||||
<dt>notes:</dt> | ||||
<dd>See <xref target="AESSettingsCipherModeNotes"/>.</dd> | ||||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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"/></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"/></td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>notes:</t> | </table><table anchor="AESSettingsCipherModeNotes"><name>AESSettingsCipherMode I | |||
<table anchor="AESSettingsCipherModeNotes"><name>AESSettingsCipherMode implement | mplementation 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">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 <xref target="CuesNotes"/> / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A Top-Level Element to speed seeking access. | <dd>A <tt>Top-Level Element</tt> to speed seeking access. All entries are | |||
All entries are local to the Segment.</dd> | local to the <tt>Segment</tt>.</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> | |||
<td align="left">This Element <bcp14>SHOULD</bcp14> be set when the Segment is n ot transmitted as a live stream; see <xref target="livestreaming"></xref>.</td> | <td align="left">This element <bcp14>SHOULD</bcp14> be set when the <tt>Segment< /tt> is not transmitted as a live stream; see <xref target="livestreaming"/>.</t d> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table> | </table> | |||
<section anchor="cuepoint-element"><name>CuePoint Element</name> | <section anchor="cuepoint-element"><name>CuePoint Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xBB / master</dd> | <dd>0xBB / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cues\CuePoint</tt></dd> | <dd><tt>\Segment\Cues\CuePoint</tt></dd> | |||
<dt>minOccurs:</dt> | <dt>minOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contains all information relative to a seek point in the Segment.</dd> | <dd>Contains all information relative to a seek point in the <tt>Segment</tt>.</ dd> | |||
</dl> | </dl> | |||
<section anchor="cuetime-element"><name>CueTime Element</name> | <section anchor="cuetime-element"><name>CueTime Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xB3 / uinteger</dd> | <dd>0xB3 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cues\CuePoint\CueTime</tt></dd> | <dd><tt>\Segment\Cues\CuePoint\CueTime</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 seek point, expressed in Matroska Ticks -- i.e., i n nanoseconds; see <xref target="timestamp-ticks"></xref>.</dd> | <dd>Absolute timestamp of the seek point, expressed in Segment Ticks, which are based on <tt>TimestampScale</tt>; see <xref target="timestamp-ticks"/>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<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 (1-18446744073709551615)</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueTrack</tt></dd> | <dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueTrack</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 for which a position is given.</dd> | <dd>The track for which a position is given.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="cueclusterposition-element"><name>CueClusterPosition Element</n ame> | <section anchor="cueclusterposition-element"><name>CueClusterPosition Element</n ame> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xF1 / uinteger</dd> | <dd>0xF1 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueClusterPosition</tt></dd> | <dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueClusterPosition</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 Segment Position (<xref target="segment-position"></xref>) of the Cluste r containing the associated Block.</dd> | <dd>The <tt>Segment Position</tt> (<xref target="segment-position"/>) of the <tt >Cluster</tt> containing the associated <tt>Block</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="cuerelativeposition-element"><name>CueRelativePosition Element< /name> | <section anchor="cuerelativeposition-element"><name>CueRelativePosition Element< /name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xF0 / uinteger</dd> | <dd>0xF0 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueRelativePosition</tt></dd> | <dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueRelativePosition</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 relative position inside the Cluster of the referenced SimpleBlock or Bl | <dd>The relative position inside the <tt>Cluster</tt> of the referenced <tt>Simp | |||
ockGroup | leBlock</tt> or <tt>BlockGroup</tt> | |||
with 0 being the first possible position for an Element inside that Cluster.</dd | with 0 being the first possible position for an element inside that <tt>Cluster< | |||
> | /tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="cueduration-element"><name>CueDuration Element</name> | <section anchor="cueduration-element"><name>CueDuration Element</name> | |||
<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 | <dd>The duration of the block, expressed in Segment Ticks, which are based on <t | |||
stampScale; see <xref target="timestamp-ticks"></xref>. | t>TimestampScale</tt>; see <xref target="timestamp-ticks"/>. | |||
If missing, the track's DefaultDuration does not apply and no duration informati | If missing, the track's <tt>DefaultDuration</tt> does not apply and no duration | |||
on is available in terms of the cues.</dd> | information 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> | |||
<dd>not 0</dd> | <dd>not 0 (1-18446744073709551615)</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueBlockNumber</tt></dd> | <dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueBlockNumber</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Number of the Block in the specified Cluster.</dd> | <dd>Number of the <tt>Block</tt> in the specified <tt>Cluster</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="cuecodecstate-element"><name>CueCodecState Element</name> | <section anchor="cuecodecstate-element"><name>CueCodecState Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0xEA / uinteger / 0</dd> | <dd>0xEA / uinteger / 0</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueCodecState</tt></dd> | <dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueCodecState</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>The Segment Position (<xref target="segment-position"></xref>) of the Codec | <dd>The <tt>Segment Position</tt> (<xref target="segment-position"/>) of the | |||
State corresponding to this Cue Element. | Codec State corresponding to this <tt>Cues</tt> element. 0 means that the | |||
0 means that the data is taken from the initial Track Entry.</dd> | data is taken from the initial <tt>TrackEntry</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="cuereference-element"><name>CueReference Element</name> | <section anchor="cuereference-element"><name>CueReference Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0xDB / master</dd> | <dd>0xDB / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueReference</tt></dd> | <dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueReference</tt></dd> | |||
<dt>minver:</dt> | <dt>minver:</dt> | |||
<dd>2</dd> | <dd>2</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The Clusters containing the referenced Blocks.</dd> | <dd>The <tt>Clusters</tt> containing the referenced <tt>Blocks</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="cuereftime-element"><name>CueRefTime Element</name> | <section anchor="cuereftime-element"><name>CueRefTime Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x96 / uinteger</dd> | <dd>0x96 / uinteger</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueReference\CueRefTime</tt></d d> | <dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueReference\CueRefTime</tt></d d> | |||
<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>Timestamp of the referenced Block, expressed in Matroska Ticks -- i.e., in n anoseconds; see <xref target="timestamp-ticks"></xref>.</dd> | <dd>Timestamp of the referenced <tt>Block</tt>, expressed in Segment Ticks which is based on <tt>TimestampScale</tt>; see <xref target="timestamp-ticks"/>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<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 4471 ¶ | |||
<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"/>.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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"/>)</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 (1-18446744073709551615)</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"/>)</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> | |||
<t>recurring: True</t> | <dd>True</dd> | |||
<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"/>.</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> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contains all information about a Segment edition.</dd> | <dd>Contains all information about a <tt>Segment</tt> edition.</dd> | |||
</dl> | </dl> | |||
<section anchor="editionuid-element"><name>EditionUID Element</name> | <section anchor="editionuid-element"><name>EditionUID Element</name> | |||
<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 (1-18446744073709551615)</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 that identifies the edition. It's useful for tagging an edition.</dd> | |||
> | <dt>stream copy:</dt> | |||
<dd>True (<xref target="stream-copy"/>)</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 4431 ¶ | skipping to change at line 4588 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x45DD / uinteger / 0</dd> | <dd>0x45DD / 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\EditionFlagOrdered</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\EditionFlagOrdered</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 chapters can be defined multiple times and the order to play them is enforced; see <xref target="editionflagordered"></xref>.</dd> | <dd>Set to 1 if the chapters can be defined multiple times and the order to play them is enforced; see <xref target="editionflagordered"/>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<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> | |||
<t>recursive: True</t> | <dd>True</dd> | |||
<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 (1-18446744073709551615)</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 that identifies the <tt>Chapter</tt>.</dd> | |||
<dt>stream copy:</dt> | ||||
<dd>True (<xref target="stream-copy"/>)</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 that identifies the <tt>Chapter</tt>. | |||
For example it is used as the storage for <xref target="WebVTT"></xref> cue iden | For example, it is used as the storage for cue identifier values <xref target="W | |||
tifier values.</dd> | ebVTT"/>.</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 <tt>Chapter</tt>, expressed in Matroska Ticks -- i .e., in nanoseconds; see <xref target="timestamp-ticks"/>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="chaptertimeend-element"><name>ChapterTimeEnd Element</name> | <section anchor="chaptertimeend-element"><name>ChapterTimeEnd Element</name> | |||
<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 <xref target="ChapterTimeEndNotes"/> / 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 <tt>Chapter</tt> (timestamp excluded), expressed in Matroska Ticks -- i.e., in nanoseconds; see <xref target="timestamp-ticks"/>. | |||
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 <tt>Edition</tt> is an ordered edition; see <xref target="editionflagordered"/>. If it's a <tt>Parent Chapter</tt>, see <xref target="nested-chapters"/>.</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 | Hidden chapters <bcp14>SHOULD NOT</bcp14> be available to the user interface | |||
(but still to Control Tracks; see <xref target="chapterflaghidden"></xref> on Ch | (but still be available to Control Tracks; see <xref target="chapterflaghidden"/ | |||
apter flags).</dd> | > on <tt>Chapter</tt> 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 <xref target="ChapterSegmentUUIDNotes"/> / 1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The SegmentUUID of another Segment to play during this chapter.</dd> | <dd>The <tt>SegmentUUID</tt> of another <tt>Segment</tt> to play during this cha pter.</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"><tt>ChapterSegmentUUID</tt> <bcp14>MUST</bcp14> be set (minOccu rs=1) if <tt>ChapterSegmentEditionUID</tt> is used; see <xref target="medium-lin king"/> on Medium-Linking <tt>Segments</tt>.</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 (1-18446744073709551615)</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 <tt>EditionUID</tt> to play from the <tt>Segment</tt> linked in <tt>Chap | |||
If ChapterSegmentEditionUID is undeclared, then no Edition of the linked Segment | terSegmentUUID</tt>. | |||
is used; see <xref target="medium-linking"></xref> on medium-linking Segments.< | If <tt>ChapterSegmentEditionUID</tt> is undeclared, then no <tt>Edition</tt> of | |||
/dd> | the <tt>Linked Segment</tt> is used; see <xref target="medium-linking"/> on Medi | |||
um-Linking <tt>Segments</tt>.</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 | <dd>Specifies the physical equivalent of this <tt>ChapterAtom</tt>, e.g., "DVD" | |||
) or "SIDE" (50); | (60) or "SIDE" (50); | |||
see <xref target="physical-types"></xref> for a complete list of values.</dd> | see <xref target="physical-types"/> 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> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterDisplay</tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterDisplay</tt></dd> | |||
skipping to change at line 4652 ¶ | skipping to change at line 4814 ¶ | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type / default:</dt> | <dt>id / type / default:</dt> | |||
<dd>0x437C / string / eng</dd> | <dd>0x437C / string / eng</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterDisplay\ChapLanguage< /tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterDisplay\ChapLanguage< /tt></dd> | |||
<dt>minOccurs:</dt> | <dt>minOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A language corresponding to the string, | <dd>A language corresponding to the string, | |||
in the Matroska languages form; see <xref target="language-codes"></xref> on lan | in the Matroska languages form; see <xref target="language-codes"/> on language | |||
guage codes. | codes. | |||
This Element <bcp14>MUST</bcp14> be ignored if a ChapLanguageBCP47 Element is us | This element <bcp14>MUST</bcp14> be ignored if a <tt>ChapLanguageBCP47</tt> elem | |||
ed within the same ChapterDisplay Element.</dd> | ent is used within the same <tt>ChapterDisplay</tt> element.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="chaplanguagebcp47-element"><name>ChapLanguageBCP47 Element</nam e> | <section anchor="chaplanguagebcp47-element"><name>ChapLanguageBCP47 Element</nam e> | |||
<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 <tt>ChapString</tt>, | |||
in the <xref target="BCP47"></xref> form; see <xref target="language-codes"></xr | in the form defined in <xref target="RFC5646"/>; see <xref target="language-code | |||
ef> on language codes. | s"/> on language codes. | |||
If a ChapLanguageBCP47 Element is used, then any ChapLanguage and ChapCountry El | If a <tt>ChapLanguageBCP47</tt> element is used, then any <tt>ChapLanguage</tt> | |||
ements used in the same ChapterDisplay <bcp14>MUST</bcp14> be ignored.</dd> | and <tt>ChapCountry</tt> elements used in the same <tt>ChapterDisplay</tt> <bcp1 | |||
4>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> | |||
<dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterDisplay\ChapCountry</ tt></dd> | <dd><tt>\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterDisplay\ChapCountry</ tt></dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>A country corresponding to the string, | <dd>A country corresponding to the string, | |||
in the Matroska countries form; see <xref target="country-codes"></xref> on coun | in the Matroska countries form; see <xref target="country-codes"/> on country co | |||
try codes. | des. | |||
This Element <bcp14>MUST</bcp14> be ignored if a ChapLanguageBCP47 Element is us | This element <bcp14>MUST</bcp14> be ignored if a <tt>ChapLanguageBCP47</tt> elem | |||
ed within the same ChapterDisplay Element.</dd> | ent is used within the same <tt>ChapterDisplay</tt> element.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="chapprocess-element"><name>ChapProcess Element</name> | <section anchor="chapprocess-element"><name>ChapProcess Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<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 with 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> | |||
<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.</dd> | |||
A value of 0 means built-in Matroska processing (to be defined), a value of 1 me | <dt>defined values:</dt> | |||
ans the DVD command set is used; see <xref target="menu-features"></xref> on DVD | <dd>See <xref target="ChapProcessCodecIDValues"/>. Additional values can be regi | |||
menus. | stered in the "Matroska Chapter Codec IDs" registry defined in <xref target="mat | |||
More codec IDs can be added later.</dd> | roska-chapter-codec-ids-registry"/>.</dd> | |||
</dl> | </dl> | |||
<table anchor="ChapProcessCodecIDValues"><name>ChapProcessCodecID Values</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">value</th> | ||||
<th align="left">label</th> | ||||
<th align="left">definition</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left"><tt>0</tt></td> | ||||
<td align="left">Matroska Script</td> | ||||
<td align="left">Chapter commands using the Matroska Script codec.</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left"><tt>1</tt></td> | ||||
<td align="left">DVD-menu</td> | ||||
<td align="left">Chapter commands using the DVD-like codec.</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</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 <tt>ChapProcessCodecID</tt> information. | |||
For ChapProcessCodecID = 1, it is the "DVD level" equivalent; see <xre | For <tt>ChapProcessCodecID</tt> = 1, it is the "DVD level" equivalent; see <xref | |||
f target="menu-features"></xref> on DVD menus.</dd> | target="menu-features"/> 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 4965 ¶ | |||
<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> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>Contains the command information. | <dd>Contains the command information. | |||
The data <bcp14>SHOULD</bcp14> be interpreted depending on the ChapProcessCodecI | The data <bcp14>SHOULD</bcp14> be interpreted depending on the <tt>ChapProcessCo | |||
D value. For ChapProcessCodecID = 1, | decID</tt> value. For <tt>ChapProcessCodecID</tt> = 1, | |||
the data correspond to the binary DVD cell pre/post commands; see <xref target=" | the data correspond to the binary DVD cell pre/post commands; see <xref target=" | |||
menu-features"></xref> on DVD menus.</dd> | menu-features"/> on DVD menus.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<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 | <dd>Element containing metadata describing <tt>Tracks</tt>, <tt>Editions</tt>, < | |||
ts, or the Segment as a whole. | tt>Chapters</tt>, <tt>Attachments</tt>, or the <tt>Segment</tt> 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"/>.</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 4835 ¶ | skipping to change at line 5022 ¶ | |||
<section anchor="targets-element"><name>Targets Element</name> | <section anchor="targets-element"><name>Targets Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x63C0 / master</dd> | <dd>0x63C0 / master</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tags\Tag\Targets</tt></dd> | <dd><tt>\Segment\Tags\Tag\Targets</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 which other elements the metadata represented by the Tag applies t | <dd>Specifies which other elements the metadata represented by the tag value app | |||
o. | lies to. | |||
If empty or omitted, then the Tag describes everything in the Segment.</dd> | If empty or omitted, then the tag value describes everything in the <tt>Segment< | |||
/tt>.</dd> | ||||
</dl> | </dl> | |||
<section anchor="targettypevalue-element"><name>TargetTypeValue Element</name> | <section anchor="targettypevalue-element"><name>TargetTypeValue Element</name> | |||
<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>range:</dt> | ||||
<dd>not 0 (1-18446744073709551615)</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"/>. Additional values can be registe | ||||
red in the "Matroska Tags Target Types" registry defined in <xref target="matros | ||||
ka-tags-target-types-registry"/>.</dd> | ||||
<dt>usage notes:</dt> | ||||
<dd>The <tt>TargetTypeValue</tt> values are meant to be compared. | ||||
Higher values <bcp14>MUST</bcp14> correspond to a logical level that contains th | ||||
e lower logical level <tt>TargetTypeValue</tt> values.</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 5070 ¶ | |||
<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 5228 ¶ | |||
<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 that identifies the <tt>Track(s)</tt> 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 <tt>Seg | |||
. | ment</tt>. | |||
If set to any other value, it <bcp14>MUST</bcp14> match the <tt>TrackUID</tt> va | 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> | lue of a track found in this <tt>Segment</tt>.</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 that identifies the <tt>EditionEntry(s)</tt> 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 | <dd>If the value is 0 at this level, the tags apply to all editions in the <tt>S | |||
nt. | egment</tt>. | |||
If set to any other value, it <bcp14>MUST</bcp14> match the <tt>EditionUID</tt> | If set to any other value, it <bcp14>MUST</bcp14> match the <tt>EditionUID</tt> | |||
value of an edition found in this Segment.</dd> | value of an edition found in this <tt>Segment</tt>.</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 that identifies the <tt>Chapter(s)</tt> 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 | <dd>If the value is 0 at this level, the tags apply to all chapters in the <tt>S | |||
nt. | egment</tt>. | |||
If set to any other value, it <bcp14>MUST</bcp14> match the <tt>ChapterUID</tt> | If set to any other value, it <bcp14>MUST</bcp14> match the <tt>ChapterUID</tt> | |||
value of a chapter found in this Segment.</dd> | value of a chapter found in this <tt>Segment</tt>.</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 that identifies 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 | <dd>If the value is 0 at this level, the tags apply to all the attachments in | |||
e Segment. | the <tt>Segment</tt>. If set to any other value, it <bcp14>MUST</bcp14> match | |||
If set to any other value, it <bcp14>MUST</bcp14> match the <tt>FileUID</tt> val | the <tt>FileUID</tt> value of an attachment found in this <tt>Segment</tt>.</dd> | |||
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> | |||
<t>recursive: True</t> | <dd>True</dd> | |||
<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> | |||
<dd><tt>\Segment\Tags\Tag\+SimpleTag\TagName</tt></dd> | <dd><tt>\Segment\Tags\Tag\+SimpleTag\TagName</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 name of the Tag that is going to be stored.</dd> | <dd>The name of the tag value that is going to be stored.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<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"/> on language codes. | |||
guage codes. | This element <bcp14>MUST</bcp14> be ignored if the <tt>TagLanguageBCP47</tt> ele | |||
This Element <bcp14>MUST</bcp14> be ignored if the TagLanguageBCP47 Element is u | ment is used within the same <tt>SimpleTag</tt> element.</dd> | |||
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 <tt>TagString</tt>, | |||
in the <xref target="BCP47"></xref> form; see <xref target="language-codes"></xr | in the form defined in <xref target="RFC5646"/>; see <xref target="language-code | |||
ef> on language codes. | s"/> on language codes. | |||
If this Element is used, then any TagLanguage Elements used in the same SimpleTa | If this element is used, then any <tt>TagLanguage</tt> elements used in the same | |||
g <bcp14>MUST</bcp14> be ignored.</dd> | <tt>SimpleTag</tt> <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> | |||
<dd>0-1</dd> | <dd>0-1</dd> | |||
skipping to change at line 5187 ¶ | skipping to change at line 5381 ¶ | |||
<section anchor="tagstring-element"><name>TagString Element</name> | <section anchor="tagstring-element"><name>TagString Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>id / type:</dt> | <dt>id / type:</dt> | |||
<dd>0x4487 / utf-8</dd> | <dd>0x4487 / utf-8</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tags\Tag\+SimpleTag\TagString</tt></dd> | <dd><tt>\Segment\Tags\Tag\+SimpleTag\TagString</tt></dd> | |||
<dt>maxOccurs:</dt> | <dt>maxOccurs:</dt> | |||
<dd>1</dd> | <dd>1</dd> | |||
<dt>definition:</dt> | <dt>definition:</dt> | |||
<dd>The value of the Tag.</dd> | <dd>The tag value.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<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 tag value if it is binary. Note that this cannot be used in the same <tt >SimpleTag</tt> as <tt>TagString</tt>.</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</tt> | |||
specification does not | element, the EBML specification <xref target="RFC8794"/> does not require any | |||
require any particular storage order for <tt>Elements</tt>. This specification h | particular storage order for elements. However, this specification defines | |||
owever | mandates and recommendations for ordering certain elements to facilitate | |||
defines mandates and recommendations for ordering certain <tt>Elements</tt> in o | better playback, seeking, and editing efficiency. This section describes and | |||
rder to facilitate | offers rationale for ordering requirements and recommendations for | |||
better playback, seeking, and editing efficiency. This section describes and off | 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 | <t>The <tt>Info</tt> element is the only <bcp14>REQUIRED</bcp14> <tt>Top-Level E | |||
lement</tt> in a Matroska file. | lement</tt> in a Matroska file. | |||
To be playable, Matroska <bcp14>MUST</bcp14> also contain at least one <tt>Track | To be playable, Matroska <bcp14>MUST</bcp14> also contain at least one <tt>Track | |||
s Element</tt> and <tt>Cluster Element</tt>. | s</tt> element and <tt>Cluster</tt> element. | |||
The first <tt>Info Element</tt> and the first <tt>Tracks Element</tt> <bcp14>MUS | The first <tt>Info</tt> element and the first <tt>Tracks</tt> element 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</tt> element or <bcp14>SHALL</bcp14> both be referenced by a <tt>See | |||
kHead Element</tt> occurring before the first <tt>Cluster Element</tt>.</t> | kHead</tt> element occurring before the first <tt>Cluster</tt> element.</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 <tt>Segments< | |||
lay in a given order <xref target="medium-linking"></xref>. | /tt> to play in a given order (see <xref target="medium-linking"/>). | |||
A Segment containing these linked Chapters does not require a <tt>Track</tt> Ele | A <tt>Segment</tt> containing these <tt>Linked Chapters</tt> does not require a | |||
ment or a <tt>Cluster</tt> Element.</t> | <tt>Tracks</tt> element or a <tt>Cluster</tt> element.</t> | |||
<t>It is possible to edit a Matroska file after it has been created. For example | <t>It is possible to edit a Matroska file after it has been created. For | |||
, chapters, | example, chapters, tags, or attachments can be added. When new <tt>Top-Level | |||
tags, or attachments can be added. When new <tt>Top-Level Elements</tt> are adde | Elements</tt> are added to a Matroska file, the <tt>SeekHead</tt> element(s) | |||
d to a Matroska file, | <bcp14>MUST</bcp14> be updated so that the <tt>SeekHead</tt> element(s) | |||
the <tt>SeekHead</tt> Element(s) <bcp14>MUST</bcp14> be updated so that the <tt> | itemizes the identity and position of all <tt>Top-Level Elements</tt>.</t> | |||
SeekHead</tt> Element(s) itemize | <t>Editing, removing, or adding elements to a Matroska file often requires | |||
the identity and position of all <tt>Top-Level Elements</tt>.</t> | that some existing elements be voided or extended. Transforming the existing | |||
<t>Editing, removing, or adding | elements into <tt>Void</tt> elements as padding can be used as a method to | |||
<tt>Elements</tt> to a Matroska file often requires that some existing <tt>Eleme | avoid moving large amounts of data around.</t> | |||
nts</tt> be voided | ||||
or extended. | ||||
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> | ||||
</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 | <t>As noted by the EBML specification <xref target="RFC8794"/>, if a <tt>CRC-32< | |||
n the <tt>CRC-32 Element</tt> | /tt> element is used, then the <tt>CRC-32</tt> element | |||
<bcp14>MUST</bcp14> be the first ordered <tt>Element</tt> within its <tt>Parent | <bcp14>MUST</bcp14> be the first ordered element within its <tt>Parent Element</ | |||
Element</tt>.</t> | tt>.</t> | |||
<t>In Matroska all <tt>Top-Level Elements</tt> of an EBML Document <bcp14>SHOULD | <t>In Matroska, all <tt>Top-Level Elements</tt> of an EBML Document <bcp14>SHOUL | |||
</bcp14> include a <tt>CRC-32 Element</tt> | D</bcp14> include a <tt>CRC-32</tt> element | |||
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</tt> element, which is the <tt>Root Element</tt>, <bcp14>SHOULD NOT</bcp14> have a <tt>CRC-32</tt> element.</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 | <t>If used, the first <tt>SeekHead</tt> element <bcp14>MUST</bcp14> be the first | |||
non-<tt>CRC-32 Child Element</tt> | non-<tt>CRC-32 Child</tt> element | |||
of the <tt>Segment Element</tt>. If a second <tt>SeekHead Element</tt> is used, | of the <tt>Segment</tt> element. If a second <tt>SeekHead</tt> element is used, | |||
then the first | then the first | |||
<tt>SeekHead Element</tt> <bcp14>MUST</bcp14> reference the identity and positio | <tt>SeekHead</tt> element <bcp14>MUST</bcp14> reference the identity and positio | |||
n of the second <tt>SeekHead</tt>.</t> | n of the second <tt>SeekHead</tt> element.</t> | |||
<t>Additionally, the second <tt>SeekHead Element</tt> <bcp14>MUST</bcp14> only r | <t>Additionally, the second <tt>SeekHead</tt> element <bcp14>MUST</bcp14> only r | |||
eference <tt>Cluster</tt> Elements | eference <tt>Cluster</tt> elements | |||
and not any other <tt>Top-Level Element</tt> already contained within the first | and not any other <tt>Top-Level Element</tt> already contained within the first | |||
<tt>SeekHead Element</tt>.</t> | <tt>SeekHead</tt> element.</t> | |||
<t>The second <tt>SeekHead Element</tt> <bcp14>MAY</bcp14> be stored in any orde | <t>The second <tt>SeekHead</tt> element <bcp14>MAY</bcp14> be stored in any orde | |||
r relative to the other <tt>Top-Level Elements</tt>. | 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 | Whether one or two <tt>SeekHead</tt> elements are used, the <tt>SeekHead</tt> el | |||
nt(s)</tt> <bcp14>MUST</bcp14> | ement(s) <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</tt> element.</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 | <t>The <tt>Cues</tt> element is <bcp14>RECOMMENDED</bcp14> to optimize seeking a | |||
ccess in Matroska. It is | ccess in Matroska. It is | |||
programmatically simpler to add the <tt>Cues Element</tt> after all <tt>Cluster | programmatically simpler to add the <tt>Cues</tt> element after all <tt>Cluster< | |||
Elements</tt> | /tt> elements | |||
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 | reserve before writing the <tt>Cluster</tt> elements. However, storing the <tt>C | |||
ues Element</tt> | ues</tt> element | |||
before the <tt>Cluster Elements</tt> can provide some seeking advantages. If the | before the <tt>Cluster</tt> elements can provide some seeking advantages. If the | |||
<tt>Cues Element</tt> | <tt>Cues</tt> element | |||
is present, then it <bcp14>SHOULD</bcp14> either be stored before the first <tt> | is present, then it <bcp14>SHOULD</bcp14> either be stored before the first <tt> | |||
Cluster Element</tt> | Cluster</tt> element | |||
or be referenced by a <tt>SeekHead Element</tt>.</t> | or be referenced by a <tt>SeekHead</tt> element.</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 | <t>The first <tt>Info</tt> element <bcp14>SHOULD</bcp14> occur before the first | |||
<tt>Tracks Element</tt> and first | <tt>Tracks</tt> element and first | |||
<tt>Cluster Element</tt> except when referenced by a <tt>SeekHead Element</tt>.< | <tt>Cluster</tt> element except when referenced by a <tt>SeekHead</tt> element.< | |||
/t> | /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> | <t>The <tt>Chapters</tt> element <bcp14>SHOULD</bcp14> be placed before the <tt> | |||
Cluster Element(s)</tt>. The | Cluster</tt> element(s). The | |||
<tt>Chapters Element</tt> can be used during playback even if the user does not | <tt>Chapters</tt> element can be used during playback even if the user does not | |||
need to seek. | 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.</t> | |||
MENDED</bcp14> to evaluate | <t>In the case of <tt>Ordered Chapters</tt>, it is <bcp14>RECOMMENDED</bcp14> to | |||
the logical linking even before playing. The <tt>Chapters Element</tt> <bcp14>SH | evaluate | |||
OULD</bcp14> be placed before | the logical linking before playing. The <tt>Chapters</tt> element <bcp14>SHOULD< | |||
the first <tt>Tracks Element</tt> and after the first <tt>Info Element</tt>.</t> | /bcp14> be placed before | |||
the first <tt>Tracks</tt> element and after the first <tt>Info</tt> element.</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</tt> element 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</tt> element <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> | the first <tt>Cluster</tt> element; however, if the <tt>Attachments</tt> element | |||
is likely to be edited, | is likely to be edited, | |||
then it <bcp14>SHOULD</bcp14> be placed after the last <tt>Cluster Element</tt>. | then it <bcp14>SHOULD</bcp14> be placed after the last <tt>Cluster</tt> element. | |||
</t> | </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 | <t>The <tt>Tags</tt> element is most subject to changes after the file was origi | |||
nally created. | nally created. | |||
For easier editing, the <tt>Tags Element</tt> can be placed at the end of the <t | For easier editing, the <tt>Tags</tt> element can be placed at the end of the <t | |||
t>Segment Element</tt>, | t>Segment</tt> element, | |||
even after the <tt>Attachments Element</tt>. On the other hand, it is inconvenie | even after the <tt>Attachments</tt> element. On the other hand, it is inconvenie | |||
nt to have to | nt to have to | |||
seek in the <tt>Segment</tt> for tags, especially for network streams. So it's b | seek in the <tt>Segment</tt> for tags, especially for network streams; thus, it' | |||
etter if the | s better if the | |||
<tt>Tags Element</tt> is found early in the stream. When editing the <tt>Tags El | <tt>Tags</tt> element is found early in the stream. When editing the <tt>Tags</t | |||
ement</tt>, the original | t> element, the original | |||
<tt>Tags Element</tt> at the beginning can be overwritten with a <tt>Void Elemen | <tt>Tags</tt> element at the beginning can be overwritten with a <tt>Void</tt> e | |||
t</tt> and a | lement and a | |||
new <tt>Tags Element</tt> written at the end of the <tt>Segment Element</tt>. Th | new <tt>Tags</tt> element written at the end of the <tt>Segment</tt> element. Th | |||
e file and Segment sizes will only marginally change.</t> | e file and <tt>Segment</tt> 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 | <t>It is possible and valid to have the version fields indicate that the file | |||
ntains | contains Matroska elements from a higher specification version number while | |||
Matroska <tt>Elements</tt> from a higher specification version number while sign | signaling that a reading application <bcp14>MUST</bcp14> only support a lower | |||
aling that a | version number properly in order to play it back (possibly with a reduced | |||
reading application <bcp14>MUST</bcp14> only support a lower version number prop | feature set).</t> | |||
erly in order to play | <t>The <tt>EBML Header</tt> of each Matroska document informs the reading | |||
it back (possibly with a reduced feature set).</t> | application on what version of Matroska to expect. The elements within the | |||
<t>The <tt>EBML Header</tt> of each Matroska document informs the reading applic | <tt>EBML Header</tt> with jurisdiction over this information are | |||
ation on what | <tt>DocTypeVersion</tt> and <tt>DocTypeReadVersion</tt>.</t> | |||
version of Matroska to expect. The <tt>Elements</tt> within <tt>EBML Header</tt> | ||||
with jurisdiction | ||||
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 | any element present in the Matroska file. For example, a file using the <tt>Simp | |||
<tt>SimpleBlock Element</tt> (<xref target="simpleblock-element"></xref>) | leBlock</tt> element (<xref target="simpleblock-element"/>) <bcp14>MUST</bcp14> | |||
<bcp14>MUST</bcp14> have a <tt>DocTypeVersion</tt> equal to or greater than 2. A | have a <tt>DocTypeVersion</tt> equal to or greater than 2. A file containing <tt | |||
file containing <tt>CueRelativePosition</tt> | >CueRelativePosition</tt> | |||
Elements (<xref target="cuerelativeposition-element"></xref>) <bcp14>MUST</bcp1 | elements (<xref target="cuerelativeposition-element"/>) <bcp14>MUST</bcp14> hav | |||
4> have a <tt>DocTypeVersion</tt> equal to or greater than 4.</t> | e 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 | |||
can minimally support in order to play the file back -- optionally with a reduce | version number that a reading application can minimally support in order to | |||
d feature | play the file back -- optionally with a reduced feature set. For example, if a | |||
set. For example, if a file contains only <tt>Elements</tt> of version 2 or lowe | file contains only elements of version 2 or lower except for | |||
r except for | <tt>CueRelativePosition</tt> (which is a version 4 Matroska element), then | |||
<tt>CueRelativePosition</tt> (which is a version 4 Matroska <tt>Element</tt>), t | <tt>DocTypeReadVersion</tt> <bcp14>SHOULD</bcp14> still be set to 2 and not 4 | |||
hen <tt>DocTypeReadVersion</tt> | because evaluating <tt>CueRelativePosition</tt> is not necessary for standard | |||
<bcp14>SHOULD</bcp14> still be set to 2 and not 4 because evaluating <tt>CueRela | playback -- it makes seeking more precise if used.</t> | |||
tivePosition</tt> is not | ||||
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> and | |||
supporting at least Matroska version <tt>V</tt> reading a file whose <tt>DocType | reading a file whose <tt>DocTypeReadVersion</tt> field is equal to or lower | |||
ReadVersion</tt> | than <tt>V</tt> <bcp14>MUST</bcp14> skip Matroska/EBML elements it encounters | |||
field is equal to or lower than <tt>V</tt> <bcp14>MUST</bcp14> skip Matroska/EBM | but does not know about if that unknown element fits into the size constraints | |||
L <tt>Elements</tt> it encounters | set by the current <tt>Parent Element</tt>.</t> | |||
but does not know about if that unknown element fits into the size constraints s | ||||
et | ||||
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 | For example, the <tt>SamplingFrequency</tt> of an audio track wouldn't change be | |||
two files. | tween 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 <tt>TrackNu | |||
of an audio track when another track has been added.</t> | mber</tt> 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 | <t>An element is marked with a property "<tt>stream copy: True</tt>" when the va | |||
ues of that Element need to be kept identical between the source and destination | lues of that element need to be kept identical between the source and destinatio | |||
file. | n files. | |||
If that property is not set, elements may or may not keep the same value between | If that property is not set, elements may or may not keep the same value between | |||
the source and destination.</t> | 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 | <t>The <tt>DefaultDecodedFieldDuration</tt> element can signal to the | |||
application how | displaying application how often fields of a video sequence will be available | |||
often fields of a video sequence will be available for displaying. It can be use | for displaying. It can be used for both interlaced and progressive | |||
d for both | content.</t> | |||
interlaced and progressive content.</t> | <t>If the video sequence is signaled as interlaced (<xref target="flaginterlaced | |||
<t>If the video sequence is signaled as interlaced <xref target="flaginterlaced- | -element"/>), then <tt>DefaultDecodedFieldDuration</tt> equals | |||
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><t>Blu-ray movie: 1000000000 ns/(48/1.001) = 20854167 ns</t> | |||
<li>PAL broadcast/DVD: 1000000000 ns/(50/1.000) = 20000000 ns</li> | </li> | |||
<li>N/ATSC broadcast: 1000000000 ns/(60/1.001) = 16683333 ns</li> | <li><t>PAL broadcast/DVD: 1000000000 ns/(50/1.000) = 20000000 ns</t> | |||
<li>hard-telecined DVD: 1000000000 ns/(60/1.001) = 16683333 ns (60 encoded inter | </li> | |||
laced fields per second)</li> | <li><t>N/ATSC broadcast: 1000000000 ns/(60/1.001) = 16683333 ns</t> | |||
<li>soft-telecined DVD: 1000000000 ns/(60/1.001) = 16683333 ns (48 encoded inter | </li> | |||
laced fields per second, with "repeat_first_field = 1")</li> | <li><t>Hard-telecined DVD: 1000000000 ns/(60/1.001) = 16683333 ns (60 encoded in | |||
terlaced fields per second)</t> | ||||
</li> | ||||
<li><t>Soft-telecined DVD: 1000000000 ns/(60/1.001) = 16683333 ns (48 encoded in | ||||
terlaced fields per second, with "repeat_first_field = 1")</t> | ||||
</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 | <t>Frames using references <bcp14>SHOULD</bcp14> be stored in "coding order" (i. | |||
". That means the references first, and then | e., the references first and then | |||
the frames referencing them. A consequence is that timestamps might not be conse | the frames referencing them). A consequence is that timestamps might not be cons | |||
cutive. | ecutive. | |||
But a frame with a past timestamp <bcp14>MUST</bcp14> reference a frame already | However, a frame with a past timestamp <bcp14>MUST</bcp14> reference a frame alr | |||
known, otherwise it's considered bad/void.</t> | 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><t>in a <tt>Block</tt> that is contained inside a <tt>BlockGroup</tt></t> | |||
<li>or in a <tt>SimpleBlock</tt> which is directly in the <tt>Cluster</tt>.</li> | </li> | |||
<li><t>in a <tt>SimpleBlock</tt> that is directly in the <tt>Cluster</tt></t> | ||||
</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 <tt>Matroska Reader</tt> <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><t>a variable-length header</t> | |||
<li>optionally the lacing information,</li> | </li> | |||
<li>the consecutive frame(s)</li> | <li><t>the lacing information (optional)</t> | |||
</li> | ||||
<li><t>the consecutive frame(s)</t> | ||||
</li> | ||||
</ul> | </ul> | |||
<t>The block header starts with the number of the Track it corresponds to. | <t>The block header starts with the number of the <tt>Track</tt> it corresponds | |||
The value <bcp14>MUST</bcp14> corresponding to the <tt>TrackNumber</tt> (<xref t | to. | |||
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"/>) of a <tt>TrackEntry</tt> of the <tt>Segment</tt>.</t | |||
<t>The <tt>TrackNumber</tt> is coded using the VINT mechanism described in Secti | > | |||
on 4 of <xref target="RFC8794"></xref>. | <t>The <tt>TrackNumber</tt> is coded using the Variable-Size Integer (VINT) mech | |||
To save space, the shortest VINT form <bcp14>SHOULD</bcp14> be used. The value c | anism described in <xref target="RFC8794" sectionFormat="of" section="4"/>. | |||
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 using 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" />. | |||
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"/>). 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 | ||||
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 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| | | | | |I|LAC|U| | |||
| Track Number | Timestamp | Rsvrd |N|ING|N| | | Track Number | Timestamp | Rsvrd |N|ING|N| | |||
| | | |V| |U| | | | | |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 | ||||
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 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| | | |I|LAC|U| | |||
| Rsvrd |N|ING|N| ... | | Rsvrd |N|ING|N| ... | |||
| |V| |U| | | |V| |U| | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
</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>an EBML VINT coded track number</dd> | <dd>8, 16, 24, 32, 40, 48, or 56 bits. An EBML VINT-coded track number.</dd> | |||
<dt>Timestamp: 16 bits</dt> | <dt>Timestamp:</dt> | |||
<dd>signed timestamp in Track Ticks</dd> | <dd>16 bits. Signed timestamp in Track Ticks.</dd> | |||
<dt>Rsvrd: 4 bits</dt> | <dt>Rsvrd:</dt> | |||
<dd>Reserved bits <bcp14>MUST</bcp14> be set to 0</dd> | <dd>4 bits. Reserved bits <bcp14>MUST</bcp14> be set to 0.</dd> | |||
<dt>INV: 1 bit</dt> | <dt>INV:</dt> | |||
<dd>Invisible, the codec <bcp14>SHOULD</bcp14> decode this frame but not display | <dd>1 bit. Invisible; The codec <bcp14>SHOULD</bcp14> decode this frame but not | |||
it</dd> | display it.</dd> | |||
<dt>LACING: 2 bits</dt> | <dt>LACING:</dt> | |||
<dd><t>using lacing mode</t> | <dd><t>2 bits. Uses lacing mode.</t> | |||
<ul spacing="compact"> | <dl spacing="compact"> | |||
<li>00b : no lacing (<xref target="no-lacing"></xref>)</li> | <dt>00b:</dt> | |||
<li>01b : Xiph lacing (<xref target="xiph-lacing"></xref>)</li> | <dd>no lacing (<xref target="no-lacing"/>)</dd> | |||
<li>11b : EBML lacing (<xref target="ebml-lacing"></xref>)</li> | <dt>01b:</dt><dd>Xiph lacing (<xref target="xiph-lacing"/>)</dd> | |||
<li>10b : fixed-size lacing (<xref target="fixed-size-lacing"></xref>)</li> | <dt>11b:</dt><dd>EBML lacing (<xref target="ebml-lacing"/>)</dd> | |||
</ul></dd> | <dt>10b:</dt><dd>fixed-size lacing (<xref target="fixed-size-lacing"/>)</dd> | |||
<dt>UNU: 1 bit</dt> | </dl></dd> | |||
<dd>unused bit</dd> | <dt>UNU:</dt> | |||
<dd>1 bit. 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 remaining data in the <tt>Block</tt> corresponds to the lacing data and f rames usage as described in each respective lacing mode (see <xref target="block -lacing"/>).</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"/>). Bit 0 is the most significant bi | |||
t bit.</t> | t.</t> | |||
<t>The <tt>SimpleBlock</tt> is inspired by the Block structure; see <xref target | ||||
="block-structure"></xref>. | <t>The <tt>SimpleBlock</tt> structure is inspired by the <tt>Block</tt> structur | |||
e; see <xref target="block-structure"/>. | ||||
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 | ||||
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 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| | | | |K| |I|LAC|D| | |||
| Track Number | Timestamp |E|Rsvrd|N|ING|I| | | Track Number | Timestamp |E|Rsvrd|N|ING|I| | |||
| | |Y| |V| |S| | | | |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 | ||||
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 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| | |K| |I|LAC|D| | |||
|E|Rsvrd|N|ING|I| ... | |E|Rsvrd|N|ING|I| ... | |||
|Y| |V| |S| | |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>an EBML VINT coded track number</dd> | <dd>8, 16, 24, 32, 40, 48, or 56 bits. An EBML VINT-coded track number.</dd> | |||
<dt>Timestamp: 16 bits</dt> | <dt>Timestamp:</dt> | |||
<dd>signed timestamp in Track Ticks</dd> | <dd>16 bits. Signed timestamp in Track Ticks.</dd> | |||
<dt>KEY: 1 bit</dt> | <dt>KEY:</dt> | |||
<dd>Keyframe, set when the Block contains only keyframes</dd> | <dd>1 bit. Keyframe; Set when the <tt>Block</tt> contains only keyframes.</dd> | |||
<dt>Rsvrd: 3 bits</dt> | <dt>Rsvrd:</dt> | |||
<dd>Reserved bits <bcp14>MUST</bcp14> be set to 0</dd> | <dd>3 bits. Reserved bits <bcp14>MUST</bcp14> be set to 0.</dd> | |||
<dt>INV: 1 bit</dt> | <dt>INV:</dt> | |||
<dd>Invisible, the codec <bcp14>SHOULD</bcp14> decode this frame but not display | <dd>1 bit. Invisible; the codec <bcp14>SHOULD</bcp14> decode this frame but not | |||
it</dd> | display it.</dd> | |||
<dt>LACING: 2 bits</dt> | <dt>LACING:</dt> | |||
<dd><t>using lacing mode</t> | <dd><t>2 bits. Uses lacing mode.</t> | |||
<ul spacing="compact"> | <dl spacing="compact"> | |||
<li>00b : no lacing (<xref target="no-lacing"></xref>)</li> | <dt>00b:</dt> | |||
<li>01b : Xiph lacing (<xref target="xiph-lacing"></xref>)</li> | <dd>no lacing (<xref target="no-lacing"/>)</dd> | |||
<li>11b : EBML lacing (<xref target="ebml-lacing"></xref>)</li> | <dt>01b:</dt><dd>Xiph lacing (<xref target="xiph-lacing"/>)</dd> | |||
<li>10b : fixed-size lacing (<xref target="fixed-size-lacing"></xref>)</li> | <dt>11b:</dt><dd>EBML lacing (<xref target="ebml-lacing"/>)</dd> | |||
</ul></dd> | <dt>10b:</dt><dd>fixed-size lacing (<xref target="fixed-size-lacing"/>)</dd> | |||
<dt>DIS: 1 bit</dt> | </dl></dd> | |||
<dd>Discardable, the frames of the Block can be discarded during playing if need | <dt>DIS:</dt> | |||
ed</dd> | <dd>1 bit. Discardable; The frames of the <tt>Block</tt> can be discarded during | |||
playing if needed.</dd> | ||||
</dl> | </dl> | |||
<t>The following data in the <tt>SimpleBlock</tt> correspond to the lacing data and frames usage as described in each respective lacing mode.</t> | <t>The remaining data in the <tt>SimpleBlock</tt> corresponds to the lacing data and frames usage as described in each respective lacing mode (see <xref target= "block-lacing"/>).</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><t>Xiph, which is inspired by what is found in the Ogg container <xref targe | |||
</xref></li> | t="RFC3533"/></t> | |||
<li>EBML, which is the same with sizes coded differently</li> | </li> | |||
<li>fixed-size, where the size is not coded</li> | <li><t>EBML, which is the same with sizes coded differently</t> | |||
</ol> | </li> | |||
<t>When lacing is not used, i.e. to store a single frame, the lacing bits 5 and | <li><t>Fixed-size, where the size is not coded</t> | |||
6 of the <tt>Block</tt> or <tt>SimpleBlock</tt> <bcp14>MUST</bcp14> be set to ze | </li> | |||
ro.</t> | </ul> | |||
<t>For example, a user wants to store 3 frames of the same track. The first fram | <t>When lacing is not used, i.e., to store a single frame, the lacing bits (bits | |||
e is 800 octets long, | 5 and 6) of the <tt>Block</tt> or <tt>SimpleBlock</tt> <bcp14>MUST</bcp14> be s | |||
the second is 500 octets long and the third is 1000 octets long. As these data a | et to zero.</t> | |||
re small, | <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. | ||||
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 <tt>FlagLacing</tt> (<xref target="flaglacing-element"/>) is set to 0, | |||
uot;0" all blocks of that track <bcp14>MUST NOT</bcp14> use lacing.</t> | all 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 omitted, and only | |||
one frame can be stored in the Block. | one frame can be stored in the <tt>Block</tt>. The LACING bits of the <tt>Block | |||
The bits 5-6 of the Block Header flags are set to <tt>0b00</tt>.</t> | </tt> Header flags are set to <tt>00b</tt>.</t> | |||
<t>The Block for an 800 octets frame is as follows:</t> | <t>The <tt>Block</tt> 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 No lacing mode.</t> | </table><t>When a <tt>Block</tt> contains a single frame, it <bcp14>MUST</bcp14> use this "no lacing" 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 | <t>The Xiph lacing uses the same coding of size as found in the Ogg container <x | |||
ref target="RFC3533"></xref>. | ref target="RFC3533"/>. | |||
The bits 5-6 of the Block Header flags are set to <tt>0b01</tt>.</t> | The LACING bits of the <tt>Block</tt> Header flags are set to <tt>01b</tt>.</t> | |||
<t>The Block data with laced frames is stored as follows:</t> | <t>The <tt>Block</tt> 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><t>Lacing Head on 1 Octet: Number of frames in the lace minus 1.</t> | |||
<li>Lacing size of each frame except the last one.</li> | </li> | |||
<li>Binary data of each frame consecutively.</li> | <li><t>Lacing size of each frame except the last one.</t> | |||
</li> | ||||
<li><t>Binary data of each frame consecutively.</t> | ||||
</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 <tt>Bloc k</tt> after 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 <tt>Block</tt> 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 5833 ¶ | |||
<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 <tt>Block</tt> is 2311 octets, and the last frame starts at 1311, so we can 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>The EBML lacing encodes the frame size with an EBML-like encoding <xref targe | |||
t="RFC8794"></xref>. | t="RFC8794"/>. | |||
The bits 5-6 of the Block Header flags are set to <tt>0b11</tt>.</t> | The LACING bits of the <tt>Block</tt> Header flags are set to <tt>11b</tt>.</t> | |||
<t>The Block data with laced frames is stored as follows:</t> | <t>The <tt>Block</tt> 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><t>Lacing Head on 1 Octet: Number of frames in the lace minus 1.</t> | |||
<li>Lacing size of each frame except the last one.</li> | </li> | |||
<li>Binary data of each frame consecutively.</li> | <li><t>Lacing size of each frame except the last one.</t> | |||
</li> | ||||
<li><t>Binary data of each frame consecutively.</t> | ||||
</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 5887 ¶ | |||
<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 <tt>Block</tt> 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 5934 ¶ | |||
<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 <tt>Block</tt> is 2308 octets, and the last frame starts at 1308, so we can 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 | Each frame <bcp14>MUST</bcp14> have the same size. The frame size of each frame | |||
is deduced from the total size of the Block. | is deduced from the total size of the <tt>Block</tt>. | |||
The bits 5-6 of the Block Header flags are set to <tt>0b10</tt>.</t> | The LACING bits of the <tt>Block</tt> Header flags are set to <tt>10b</tt>.</t> | |||
<t>The Block data with laced frames is stored as follows:</t> | <t>The <tt>Block</tt> 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><t>Lacing Head on 1 Octet: Number of frames in the lace minus 1.</t> | |||
<li>Binary data of each frame consecutively.</li> | </li> | |||
<li><t>Binary data of each frame consecutively.</t> | ||||
</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 5984 ¶ | |||
<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 | </table><t>This gives a <tt>Block</tt> of 2405 octets. When reading the <tt>Bloc | |||
t there are 3 frames (Octet 4). | k</tt>, we find that there are three frames (Octet 4). The data start at Octet 5 | |||
The data start at Octet 5, so the size of each frame is (2405 - 5) / 3 = 800.</t | , 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 <tt>Block</tt> only contains a single timestamp value. But when lacing is u sed, it contains 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 | However, each of these frames <bcp14>MUST</bcp14> be contiguous -- i.e., the dec | |||
ata <bcp14>MUST NOT</bcp14> contain any gap | 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> | 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> | MUST NOT</bcp14> be in the same <tt>Block</tt>.</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 | <t>Random Access Points (RAPs) are positions where the parser can seek to and | |||
rt playback without decoding | start playback without decoding what was before. In Matroska, | |||
of what was before. In Matroska <tt>BlockGroups</tt> and <tt>SimpleBlocks</tt> c | <tt>BlockGroups</tt> and <tt>SimpleBlocks</tt> can be RAPs. To seek to these | |||
an be RAPs. | elements, it is still necessary to seek to the <tt>Cluster</tt> containing | |||
To seek to these elements it is still necessary to seek to the <tt>Cluster</tt> | them, read the <tt>Cluster</tt> Timestamp, and start playback from the | |||
containing them, | <tt>BlockGroup</tt> or <tt>SimpleBlock</tt> that is a RAP.</t> | |||
read the Cluster Timestamp | ||||
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 into account. Usually, all audio and subtitle <tt>BlockGroups</tt> or <tt> | ||||
SimpleBlocks</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 | |||
ames for better | frames for better coding efficiency. Frames with such references | |||
coding efficiency. Frames with such reference <bcp14>MUST</bcp14> either contain | <bcp14>MUST</bcp14> either contain one or more <tt>ReferenceBlock</tt> | |||
one or more | elements in their <tt>BlockGroup</tt> or <bcp14>MUST</bcp14> be marked as | |||
<tt>ReferenceBlock</tt> Elements in their <tt>BlockGroup</tt> or <bcp14>MUST</bc | non-keyframe in a <tt>SimpleBlock</tt>; see <xref | |||
p14> be marked | target="simpleblock-structure"/>.</t> | |||
as non-keyframe in a <tt>SimpleBlock</tt>; see <xref target="simpleblock-structu | <figure><name>BlockGroup with a Frame That References Another Frame, with the EB | |||
re"></xref>.</t> | ML Tree Shown as XML | |||
</name> | ||||
<ul spacing="compact"> | <sourcecode type="xml"> | |||
<li>BlockGroup with a frame that references another frame, with the EBML tree sh | <Cluster> | |||
own as XML:</li> | ||||
</ul> | ||||
<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> | ||||
<ul spacing="compact"> | ||||
<li>SimpleBlock with a frame that references another frame, with the EBML tree s | ||||
hown as XML:</li> | ||||
</ul> | ||||
<sourcecode type="xml"><Cluster> | </sourcecode> | |||
</figure> | ||||
<figure><name>SimpleBlock with a Frame That References Another Frame, with the E | ||||
BML Tree Shown as XML | ||||
</name> | ||||
<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< | </figure> | |||
/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> | |||
<figure><name>BlockGroup with a Frame That References No Other Frame, with the E | ||||
<ul spacing="compact"> | BML Tree Shown as XML | |||
<li>BlockGroup with a frame that references no other frame, with the EBML tree s | </name> | |||
hown as XML:</li> | <sourcecode type="xml"> | |||
</ul> | <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> | ||||
<ul spacing="compact"> | </sourcecode> | |||
<li>SimpleBlock with a frame that references no other frame, with the EBML tree | </figure> | |||
shown as XML:</li> | <figure><name>SimpleBlock with a Frame That References No Other Frame, with the | |||
</ul> | EBML Tree Shown as XML | |||
</name> | ||||
<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> | |||
</figure> | ||||
<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 those 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> | |||
<figure><name>SimpleBlock with a Frame That References Another Frame, with the E | ||||
<ul spacing="compact"> | BML Tree Shown as XML | |||
<li>SimpleBlock with a frame that references another frame, with the EBML tree s | </name> | |||
hown as XML:</li> | <sourcecode type="xml"> | |||
</ul> | <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> | ||||
<ul spacing="compact"> | ||||
<li>Same frame that references another frame put inside a BlockGroup to add <tt> | ||||
BlockDuration</tt>, with the EBML tree shown as XML:</li> | ||||
</ul> | ||||
<sourcecode type="xml"><Cluster> | </sourcecode> | |||
</figure> | ||||
<figure><name>Same Frame That References Another Frame Put inside a <tt>BlockGro | ||||
up</tt> to Add <tt>BlockDuration</tt>, with the EBML Tree Shown as XML | ||||
</name> | ||||
<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> | |||
</figure> | ||||
<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><t>each reference frame listed as a <tt>ReferenceBlock</tt>,</t> | |||
<li>some referenced frame listed as a <tt>ReferenceBlock</tt>, even if the times | </li> | |||
tamp value is accurate,</li> | <li><t>some referenced frames listed as a <tt>ReferenceBlock</tt>, even if the t | |||
<li>or one <tt>ReferenceBlock</tt> with the timestamp value "0" corres | imestamp value is accurate, or</t> | |||
ponding to a self or unknown reference.</li> | </li> | |||
</ul> | <li><t>one <tt>ReferenceBlock</tt> with the timestamp value "0" corresponding to | |||
<t>The lack of <tt>ReferenceBlock</tt> would mean such a frame is a RAP and seek | a self or unknown reference.</t> | |||
ing on that | </li> | |||
frame that actually depends on other frames may create bogus output or even cras | ||||
h.</t> | ||||
<ul spacing="compact"> | ||||
<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:</li> | ||||
</ul> | </ul> | |||
<t>The lack of <tt>ReferenceBlock</tt> would mean such a frame is a RAP, and see | ||||
<sourcecode type="xml"><Cluster> | king on that | |||
frame that actually depends on other frames may create a bogus output or even cr | ||||
ash.</t> | ||||
<figure><name>Same Frame That References Another Frame Put inside a <tt>BlockGro | ||||
up</tt>, but the Reference Could Not Be Recovered, with the EBML Tree Shown as X | ||||
ML | ||||
</name> | ||||
<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> | ||||
<ul spacing="compact"> | </sourcecode> | |||
<li>BlockGroup with a frame that references two other frames, with the EBML tree | </figure> | |||
shown as XML:</li> | <figure><name><tt>BlockGroup</tt> with a Frame That References Two Other Frames, | |||
</ul> | with the EBML Tree Shown as XML | |||
</name> | ||||
<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> | |||
skipping to change at line 5912 ¶ | skipping to change at line 6148 ¶ | |||
<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> | |||
</figure> | ||||
<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> | |||
<figure><name>Intra-Only Frame (Not a RAP), with the EBML Tree Shown as XML | ||||
<ul spacing="compact"> | </name> | |||
<li>Intra-only frame not an RAP, with the EBML tree shown as XML:</li> | <sourcecode type="xml"> | |||
</ul> | <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 | </figure> | |||
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 | <t>Historically, timestamps in Matroska were mistakenly called timecodes. The <t | |||
>Timestamp Element</tt> | t>Timestamp</tt> element | |||
was called Timecode, the <tt>TimestampScale Element</tt> was called TimecodeScal | was called Timecode, the <tt>TimestampScale</tt> element was called TimecodeScal | |||
e, the | e, the | |||
<tt>TrackTimestampScale Element</tt> was called TrackTimecodeScale and the | <tt>TrackTimestampScale</tt> element was called TrackTimecodeScale, and the | |||
<tt>ReferenceTimestamp Element</tt> was called ReferenceTimeCode.</t> | <tt>ReferenceTimestamp</tt> element 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> | |||
<t>For such elements, the timestamp value is stored directly in nanoseconds.</t> | <t>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 | <li><t><tt>TrackEntry\DefaultDuration</tt>; defined in <xref target="defaultdura | |||
n-element"></xref></li> | tion-element"/></t> | |||
<li><tt>TrackEntry\DefaultDecodedFieldDuration</tt>; defined in <xref target="de | </li> | |||
faultdecodedfieldduration-element"></xref></li> | <li><t><tt>TrackEntry\DefaultDecodedFieldDuration</tt>; defined in <xref target= | |||
<li><tt>TrackEntry\SeekPreRoll</tt>; defined in <xref target="seekpreroll-elemen | "defaultdecodedfieldduration-element"/></t> | |||
t"></xref></li> | </li> | |||
<li><tt>TrackEntry\CodecDelay</tt>; defined in <xref target="codecdelay-element" | <li><t><tt>TrackEntry\SeekPreRoll</tt>; defined in <xref target="seekpreroll-ele | |||
></xref></li> | ment"/></t> | |||
<li><tt>BlockGroup\DiscardPadding</tt>; defined in <xref target="discardpadding- | </li> | |||
element"></xref></li> | <li><t><tt>TrackEntry\CodecDelay</tt>; defined in <xref target="codecdelay-eleme | |||
<li><tt>ChapterAtom\ChapterTimeStart</tt>; defined in <xref target="chaptertimes | nt"/></t> | |||
tart-element"></xref></li> | </li> | |||
<li><tt>ChapterAtom\ChapterTimeEnd</tt>; defined in <xref target="chaptertimeend | <li><t><tt>BlockGroup\DiscardPadding</tt>; defined in <xref target="discardpaddi | |||
-element"></xref></li> | ng-element"/></t> | |||
<li><tt>CuePoint\CueTime</tt>; defined in <xref target="cuetime-element"></xref> | </li> | |||
</li> | <li><t><tt>ChapterAtom\ChapterTimeStart</tt>; defined in <xref target="chapterti | |||
<li><tt>CueReference\CueRefTime</tt>; defined in <xref target="cuetime-element"> | mestart-element"/></t> | |||
</xref></li> | </li> | |||
<li><t><tt>ChapterAtom\ChapterTimeEnd</tt>; defined in <xref target="chaptertime | ||||
end-element"/></t> | ||||
</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</ | <t>Elements in Segment Ticks involve the use of the <tt>TimestampScale</tt> elem | |||
tt> of the Segment to get the timestamp | ent of the <tt>Segment</tt> to get the timestamp in nanoseconds of the element, | |||
in nanoseconds of the element, with the following formula:</t> | 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>When using the default value of <tt>TimestampScale</tt> of "1,000,000&qu | <t>This allows for storage of smaller integer values in the elements.</t> | |||
ot;, one Segment Tick represents one millisecond.</t> | <t>When using the default value of "1,000,000" for <tt>TimestampScale</tt>, one | |||
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 | <li><t><tt>Cluster\Timestamp</tt>; defined in <xref target="timestamp-element"/> | |||
ef></li> | </t> | |||
<li><tt>Info\Duration</tt> is stored as a floating-point but the same formula ap | </li> | |||
plies; defined in <xref target="duration-element"></xref></li> | <li><t><tt>Info\Duration</tt> is stored as a floating-point, but the same formul | |||
<li><tt>CuePoint\CueTrackPositions\CueDuration</tt>; defined in <xref target="cu | a applies; defined in <xref target="duration-element"/></t> | |||
eduration-element"></xref></li> | </li> | |||
<li><t><tt>CuePoint\CueTime</tt>; defined in <xref target="cuetime-element"/></t | ||||
> | ||||
</li> | ||||
<li><t><tt>CuePoint\CueTrackPositions\CueDuration</tt>; defined in <xref target= | ||||
"cueduration-element"/></t> | ||||
</li> | ||||
<li><t><tt>CueReference\CueRefTime</tt>; defined in <xref target="cuetime-elemen | ||||
t"/></t> | ||||
</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 | <t>Elements in Track Ticks involve the use of the <tt>TimestampScale</tt> | |||
> of the Segment and the <tt>TrackTimestampScale Element</tt> of the Track | element of the <tt>Segment</tt> and the <tt>TrackTimestampScale</tt> element | |||
to get the timestamp in nanoseconds of the element, with the following formula:< | of the <tt>Track</tt> to get the timestamp in nanoseconds of the element, with | |||
/t> | 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 | <li><t><tt>Cluster\BlockGroup\Block</tt> and <tt>Cluster\SimpleBlock</tt> timest | |||
s; detailed in <xref target="block-timestamps"></xref></li> | amps; detailed in <xref target="block-timestamps"/></t> | |||
<li><tt>Cluster\BlockGroup\BlockDuration</tt>; defined in <xref target="blockdur | </li> | |||
ation-element"></xref></li> | <li><t><tt>Cluster\BlockGroup\BlockDuration</tt>; defined in <xref target="block | |||
<li><tt>Cluster\BlockGroup\ReferenceBlock</tt>; defined in <xref target="referen | duration-element"/></t> | |||
ceblock-element"></xref></li> | </li> | |||
<li><t><tt>Cluster\BlockGroup\ReferenceBlock</tt>; defined in <xref target="refe | ||||
renceblock-element"/></t> | ||||
</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 | <t>A value of <tt>TrackTimestampScale</tt> other than "1.0" <bcp14>MAY</bcp14> | |||
</bcp14> be used | be used to scale the timestamps more in tune with each <tt>Track</tt> sampling | |||
to scale the timestamps more in tune with each Track sampling frequency. | frequency. For historical reasons, a lot of <tt>Matroska Readers</tt> don't | |||
For historical reasons, a lot of Matroska readers don't take the <tt>TrackTimest | take the <tt>TrackTimestampScale</tt> value into account. Thus, using a value | |||
ampScale</tt> value in account. | other than "1.0" might not work in many places.</t> | |||
So using a value other than "1.0" might not 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 | <t>A <tt>Block</tt> element and <tt>SimpleBlock</tt> element timestamp is the | |||
me when the decoded data of the first | time when the decoded data of the first frame in the | |||
frame in the Block/SimpleBlock <bcp14>MUST</bcp14> be presented, if the track of | <tt>Block</tt>/<tt>SimpleBlock</tt> <bcp14>MUST</bcp14> be presented if the | |||
that Block/SimpleBlock is selected for playback. | track of that <tt>Block</tt>/<tt>SimpleBlock</tt> 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 | <t>The <tt>Block</tt> element and <tt>SimpleBlock</tt> element store their | |||
tamps as signed integers, relative | timestamps as signed integers, relative to the <tt>Cluster\Timestamp</tt> | |||
to the <tt>Cluster\Timestamp</tt> value of the <tt>Cluster</tt> they are stored | value of the <tt>Cluster</tt> they are stored in. To get the timestamp of a | |||
in. | <tt>Block</tt> or <tt>SimpleBlock</tt> in nanoseconds, the following formula | |||
To get the timestamp of a <tt>Block</tt> or <tt>SimpleBlock</tt> in nanoseconds | is used:</t> | |||
you have to use the following formula:</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</tt> element and <tt>SimpleBlock</tt> element 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</tt> element is set, its value <bcp14>MUST</bcp14> be s ubtracted from each <tt>Block</tt> 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. | <t>The <tt>TimestampScale</tt> is a floating-point value that is usually | |||
But when it's not, the multiplied | "1.0". But when it's not, the multiplied <tt>Block</tt> Timestamp is a | |||
Block Timestamp is a floating-point value in nanoseconds. | floating-point value in nanoseconds. The <tt>Matroska Reader</tt> | |||
The <tt>Matroska Reader</tt> <bcp14>SHOULD</bcp14> use the nearest rounding valu | <bcp14>SHOULD</bcp14> use the nearest rounding value in nanoseconds to get the | |||
e in nanosecond to get | proper nanosecond timestamp of a <tt>Block</tt>. This allows some clever | |||
the proper nanosecond timestamp of a Block. This allows some clever <tt>Timestam | <tt>TimestampScale</tt> values to have a more refined timestamp precision per | |||
pScale</tt> values | frame.</t> | |||
to have 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 | <t>Matroska versions 1 through 3 use language codes that can be either the three | |||
3 letters | -letter | |||
bibliographic ISO-639-2 form <xref target="ISO639-2"></xref> (like "fre&quo | bibliographic ISO 639-2 form <xref target="ISO639-2"/> (like "fre" for French) | |||
t; for French), | or such a language code followed by a dash and a country code for specialities i | |||
or such a language code followed by a dash and a country code for specialities i | n languages (like "fre-ca" for Canadian French). | |||
n languages (like "fre-ca" for Canadian French). | The <tt>ISO 639-2 Language</tt> elements are <tt>Language</tt> element, <tt>TagL | |||
The <tt>ISO 639-2 Language Elements</tt> are "Language Element", " | anguage</tt> element, and <tt>ChapLanguage</tt> element.</t> | |||
;TagLanguage Element", and "ChapLanguage Element".</t> | <t>Starting in Matroska version 4, the forms defined in either <xref target="ISO | |||
<t>Starting in Matroska version 4, either <xref target="ISO639-2"></xref> or <xr | 639-2"/> or | |||
ef target="BCP47"></xref> <bcp14>MAY</bcp14> be used, | <xref target="RFC5646"/> <bcp14>MAY</bcp14> be used, although the form in <xref | |||
although <tt>BCP 47</tt> is <bcp14>RECOMMENDED</bcp14>. The <tt>BCP 47 Language | target="RFC5646"/> is <bcp14>RECOMMENDED</bcp14>. The <tt>Language</tt> elements | |||
Elements</tt> are "LanguageBCP47 Element", | in the <xref target="RFC5646"/> form | |||
"TagLanguageBCP47 Element", and "ChapLanguageBCP47 Element". | are <tt>LanguageBCP47</tt> element, <tt>TagLanguageBCP47</tt> element, and | |||
If a <tt>BCP 47 Language Element</tt> and an <tt>ISO 639-2 Language Element</tt | <tt>ChapLanguageBCP47</tt> element. If both an <xref target="ISO639-2"/> Languag | |||
> | e element and an <xref target="RFC5646"/> Language element are used within the s | |||
are used within the same <tt>Parent Element</tt>, then the <tt>ISO 639-2 Languag | ame | |||
e Element</tt> <bcp14>MUST</bcp14> be ignored and precedence given to the <tt>BC | <tt>Parent Element</tt>, then the <tt>Language</tt> element in the <xref target= | |||
P 47 Language Element</tt>.</t> | "ISO639-2"/> form <bcp14>MUST</bcp14> | |||
be ignored and precedence given to the <tt>Language</tt> element in the <xref ta | ||||
rget="RFC5646"/> form.</t> | ||||
<t>In this document, "BCP47" in element names refers specifically to <xref | ||||
target="RFC5646"/>, which is part of BCP 47.</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"/> two-letter region subtags, wit hout the UK exception.</t> | |||
</section> | </section> | |||
<section anchor="encryption"><name>Encryption</name> | <section anchor="encryption"><name>Encryption</name> | |||
<t>This Matroska specification provides no interoperable solution for securing t | <t>This Matroska specification provides no interoperable solution for securing | |||
he | the data container with any assurances of confidentiality, integrity, | |||
data container with any assurances of confidentiality, integrity, authenticity, | authenticity, or authorization. The <tt>ContentEncryption</tt> element (<xref | |||
or to provide authorization. The <tt>ContentEncryption Element</tt> (<xref targe | target="contentencryption-element"/>) and associated sub-fields (<xref | |||
t="contentencryption-element"></xref>) | target="contentencalgo-element"/> to <xref | |||
and associated sub-fields (<xref target="contentencalgo-element"></xref> to <xre | target="aessettingsciphermode-element"/>) are defined only for the benefit of | |||
f target="aessettingsciphermode-element"></xref>) are defined | implementers to construct their own proprietary solution or as the basis for | |||
only for the benefit of implementers to construct their own proprietary solution | further standardization activities. How to use these fields to secure a | |||
or as the basis for further standardization activities. How to use these | Matroska data container is out of scope, as are any related issues such as key | |||
fields to secure a Matroska data container is out of scope, as are any related | 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 | |||
<t>A <tt>Matroska Reader</tt> who encounters containers that use the fields defi | defined in this section <bcp14>MUST</bcp14> rely on out-of-scope guidance to | |||
ned in this | decode the associated content.</t> | |||
section <bcp14>MUST</bcp14> rely on out-of-scope guidance to decode the associat | <t>Because encryption occurs within the <tt>Block</tt> element, it is possible | |||
ed content.</t> | to manipulate encrypted streams without decrypting them. The streams could | |||
<t>Because encryption occurs within the <tt>Block Element</tt>, it is possible t | potentially be copied, deleted, cut, appended, or any number of other possible | |||
o manipulate | editing techniques without decryption. The data can be used without having to | |||
encrypted streams without decrypting them. The streams could potentially be copi | expose it or go through the decrypting process.</t> | |||
ed, | ||||
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> | ||||
<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 | <t>Encryption information is stored in the <tt>ContentEncodings</tt> element und | |||
er the <tt>ContentEncryption Element</tt>.</t> | er the <tt>ContentEncryption</tt> element.</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"/> support | |||
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</tt> element gives an idea of which part of | |||
track are encrypted. | the track is encrypted, but each <tt>ContentEncAlgo</tt> element and its | |||
But each <tt>ContentEncAlgo Element</tt> and its sub elements like <tt>AESSettin | sub-elements (like <tt>AESSettingsCipherMode</tt>) define exactly how the | |||
gsCipherMode</tt> really | 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 | |||
<t>An example of an extension that builds upon these security-related fields in | this specification is <xref target="WebM-Enc"/>. | |||
this specification is <xref target="WebM-Enc"></xref>. | It uses AES-CTR, <tt>ContentEncAlgo</tt> = 5 (<xref target="contentencalgo-eleme | |||
It uses AES-CTR, <tt>ContentEncAlgo</tt> = 5 (<xref target="contentencalgo-eleme | nt"/>), and <tt>AESSettingsCipherMode</tt> = 1 (<xref target="aessettingscipherm | |||
nt"></xref>) and <tt>AESSettingsCipherMode</tt> = 1 (<xref target="aessettingsci | ode-element"/>).</t> | |||
phermode-element"></xref>).</t> | <t>A <tt>Matroska Writer</tt> <bcp14>MUST NOT</bcp14> use insecure | |||
<t>A <tt>Matroska Writer</tt> <bcp14>MUST NOT</bcp14> use insecure cryptographic | cryptographic algorithms to create new archives or streams, but a <tt>Matroska | |||
algorithms to create new | Reader</tt> <bcp14>MAY</bcp14> support these algorithms to read previously | |||
archives or streams, but a <tt>Matroska Reader</tt> <bcp14>MAY</bcp14> support t | made archives or streams.</t> | |||
hese algorithms to read | ||||
previously made archives or stream.</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</ | <t>The <tt>PixelCrop</tt> elements (<tt>PixelCropTop</tt>, | |||
tt>, <tt>PixelCropRight</tt>, and <tt>PixelCropLeft</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 | |||
ropped for display. | cropped for display. These elements allow edges of the frame that are not | |||
These Elements allow edges of the frame that are not intended for display, such | intended for display (such as the sprockets of a full-frame film scan or the | |||
as the | Video ANCillary (VANC) area of a digitized analog videotape) to be stored but | |||
sprockets of a full-frame film scan or the VANC area of a digitized analog video | hidden. <tt>PixelCropTop</tt> and <tt>PixelCropBottom</tt> store an integer | |||
tape, | of how many rows of pixels <bcp14>SHOULD</bcp14> be cropped from the top and | |||
to be stored but hidden. <tt>PixelCropTop</tt> and <tt>PixelCropBottom</tt> stor | bottom of the image, respectively. <tt>PixelCropLeft</tt> and | |||
e an integer of how many | <tt>PixelCropRight</tt> store an integer of how many columns of pixels | |||
rows of pixels <bcp14>SHOULD</bcp14> be cropped from the top and bottom of the i | <bcp14>SHOULD</bcp14> be cropped from the left and right of the image, | |||
mage (respectively). | respectively.</t> | |||
<tt>PixelCropLeft</tt> and <tt>PixelCropRight</tt> store an integer of how many | <t>For example, a pillar-boxed video that stores a 1440x1080 visual image | |||
columns of pixels | within the center of a padded 1920x1080 encoded image may set both | |||
<bcp14>SHOULD</bcp14> be cropped from the left and right of the image (respecti | <tt>PixelCropLeft</tt> and <tt>PixelCropRight</tt> to "240", so a <tt>Matroska | |||
vely).</t> | Player</tt> should crop off 240 columns of pixels from the left and right of | |||
<t>For example, | the encoded image to present the image with the pillar-boxes hidden.</t> | |||
a pillar-boxed video that stores a 1440x1080 visual image within the center of | <t>Cropping has to be performed before resizing and the display dimensions | |||
a padded | given by <tt>DisplayWidth</tt>, <tt>DisplayHeight</tt>, and | |||
1920x1080 encoded image may set both <tt>PixelCropLeft</tt> and <tt>PixelCropRi | <tt>DisplayUnit</tt> apply to the already-cropped image.</t> | |||
ght</tt> to "240", | ||||
so that a <tt>Matroska Player</tt> should crop off 240 columns of pixels from t | ||||
he left and | ||||
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 | ||||
<tt>DisplayWidth</tt>, <tt>DisplayHeight</tt> and <tt>DisplayUnit</tt> apply to | ||||
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" | <t>The <tt>ProjectionPoseRoll</tt> element (<xref | |||
></xref>) can be used to indicate | target="projectionposeroll-element"/>) can be used to indicate that the image | |||
that the image from the associated video track <bcp14>SHOULD</bcp14> be rotated | from the associated video track <bcp14>SHOULD</bcp14> be rotated for | |||
for presentation. | presentation. For instance, the following example of the <tt>Projection</tt> | |||
For instance, the following representation of the Projection Element <xref targe | element (<xref target="projection-element"/>) and the | |||
t="projection-element"></xref>) | <tt>ProjectionPoseRoll</tt> element represents a video track where the image | |||
and the ProjectionPoseRoll Element represents a video track where the image <bcp | <bcp14>SHOULD</bcp14> be presented with a 90-degree counter-clockwise | |||
14>SHOULD</bcp14> be | rotation, with the EBML tree shown as XML:</t> | |||
presented with a 90-degree counter-clockwise rotation, with the EBML tree shown | <figure><name>Rotation Example | |||
as XML :</t> | ||||
<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> | |||
<t>The <tt>Segment Position</tt> of an <tt>Element</tt> refers to the position o | <t>The <tt>Segment Position</tt> of an element refers to the position of the | |||
f the first octet of the | first octet of the <tt>Element ID</tt> of that element, measured in octets, | |||
<tt>Element ID</tt> of that <tt>Element</tt>, measured in octets, from the begin | from the beginning of the <tt>Element Data</tt> section of the containing | |||
ning of the <tt>Element Data</tt> | <tt>Segment</tt> element. In other words, the <tt>Segment Position</tt> of an | |||
section of the containing <tt>Segment Element</tt>. In other words, the <tt>Segm | element is the distance in octets from the beginning of its containing | |||
ent Position</tt> of an | <tt>Segment</tt> element minus the size of the <tt>Element ID</tt> and | |||
<tt>Element</tt> is the distance in octets from the beginning of its containing | <tt>Element Data Size</tt> of that <tt>Segment</tt> element. The <tt>Segment | |||
<tt>Segment Element</tt> | Position</tt> of the first <tt>Child Element</tt> of the <tt>Segment</tt> | |||
minus the size of the <tt>Element ID</tt> and <tt>Element Data Size</tt> of that | element is 0. An element that is not stored within a <tt>Segment</tt> | |||
<tt>Segment Element</tt>. | element, such as the elements of the <tt>EBML Header</tt>, do not have a | |||
The <tt>Segment Position</tt> of the first <tt>Child Element</tt> of the <tt>Seg | <tt>Segment Position</tt>.</t> | |||
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 | ||||
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>Elements that are defined to store a <tt>Segment Position</tt> <bcp14>MAY</bc p14> 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" | a <tt>Segment</tt> element with an <tt>Element ID</tt> of "0x18538067" and a <tt | |||
and a <tt>MuxingApp Element</tt> with an <tt>Element ID</tt> of "0x4D80&qu | >MuxingApp</tt> element with an <tt>Element ID</tt> of "0x4D80".</t> | |||
ot;.</t> | <artwork> | |||
0 1 2 | ||||
<artwork> 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 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| | 0 |1A|45|DF|A3|8B|42|82|88|6D|61|74|72|6F|73|6B|61| | |||
^ EBML Header | ^ EBML Header | |||
0 | |18|53|80|67| | 0 | |18|53|80|67| | |||
^ Segment ID | ^ Segment ID | |||
20 |93| | 20 |93| | |||
^ Segment Data Size | ^ Segment Data Size | |||
20 | |15|49|A9|66|8E|4D|80|84|69|65|74|66|57|41|84|69|65|74|66| | 20 | |15|49|A9|66|8E|4D|80|84|69|65|74|66|57|41|84|69|65|74|66| | |||
^ Start of Segment data | ^ Start of Segment data | |||
20 | |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| | |||
^ MuxingApp start | ^ MuxingApp start | |||
</artwork> | </artwork> | |||
<t>In the above example, the <tt>Element ID</tt> of the <tt>Segment Element</tt> | <t>In the above example, the <tt>Element ID</tt> of the <tt>Segment</tt> element | |||
is stored at offset 16, | is stored at offset 16, | |||
the <tt>Element Data Size</tt> of the <tt>Segment Element</tt> is stored at offs | the <tt>Element Data Size</tt> of the <tt>Segment</tt> element is stored at offs | |||
et 20, and the | 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</tt> element is stored at offset 21.</t | |||
> | > | |||
<t>The <tt>MuxingApp Element</tt> is stored at offset 26. Since the <tt>Segment | <t>The <tt>MuxingApp</tt> element is stored at offset 26. Since the <tt>Segment | |||
Position</tt> of | Position</tt> of | |||
an <tt>Element</tt> is calculated by subtracting the position of the <tt>Element | an element is calculated by subtracting the position of the <tt>Element Data</tt | |||
Data</tt> of | > of | |||
the containing <tt>Segment Element</tt> from the position of that <tt>Element</t | the containing <tt>Segment</tt> element from the position of that element, the < | |||
t>, the <tt>Segment Position</tt> | tt>Segment Position</tt> | |||
of <tt>MuxingApp Element</tt> in the above example is '26 - 21' or '5'.</t> | of the <tt>MuxingApp</tt> element 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>Matroska provides several methods to link two or more <tt>Segment</tt> | |||
t> together to create | elements together to create a <tt>Linked Segment</tt>. A <tt>Linked | |||
a <tt>Linked Segment</tt>. A <tt>Linked Segment</tt> is a set of multiple <tt>Se | Segment</tt> is a set of multiple <tt>Segments</tt> linked together into a | |||
gments</tt> linked together into | 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> | ||||
elements <bcp14>MAY</bcp14> also give hints on | <t>The <tt>SegmentFilename</tt>, <tt>PrevFilename</tt>, and <tt>NextFilename</tt | |||
the original filenames that were used when the Segment links were created, in ca | > elements <bcp14>MAY</bcp14> also give hints on | |||
se some <tt>SegmentUUID</tt> are damaged.</t> | the original filenames that were used when the <tt>Segment</tt> links were creat | |||
ed, in case 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 | <t>Hard Linking, also called "splitting", is the process of creating a <tt>Linke | |||
Segment</tt> | d Segment</tt> | |||
by linking multiple <tt>Segment Elements</tt> using the <tt>NextUUID</tt> and <t | by linking multiple <tt>Segment</tt> elements using the <tt>NextUUID</tt> and <t | |||
t>PrevUUID</tt> Elements.</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 | <t>The first <tt>Segment</tt> of a <tt>Linked Segment</tt> <bcp14>MUST NOT</bcp1 | |||
4> have a <tt>PrevUUID Element</tt>. | 4> have a <tt>PrevUUID</tt> element. | |||
The last <tt>Segment</tt> of a <tt>Linked Segment</tt> <bcp14>MUST NOT</bcp14> h | The last <tt>Segment</tt> of a <tt>Linked Segment</tt> <bcp14>MUST NOT</bcp14> h | |||
ave a <tt>NextUUID Element</tt>.</t> | ave a <tt>NextUUID</tt> element.</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 <tt>Linked Segment</tt>.</t> | |||
UID</tt>, then the Matroska Player | <t>If SegmentB has a <tt>PrevUUID</tt> to SegmentA, but SegmentA has no <tt>Next | |||
<bcp14>MAY</bcp14> consider these two Segments linked as SegmentA followed by Se | UUID</tt>, then the <tt>Matroska Player</tt> | |||
gmentB.</t> | <bcp14>MAY</bcp14> consider these two <tt>Segments</tt> linked as SegmentA follo | |||
wed by SegmentB.</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 6536 ¶ | |||
<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 6272 ¶ | skipping to change at line 6570 ¶ | |||
<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">n/a</td> | <td align="left">n/a</td> | |||
<td align="left">Invalid</td> | <td align="left">Invalid</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table><t>An example where only the <tt>PrevUUID</tt> Element is used:</t> | </table><t>An example where only the <tt>PrevUUID</tt> element is used:</t> | |||
<table anchor="hardLinkingWoNextUUID"><name>Hard Linking without NextUUID</name> | <table anchor="hardLinkingWoNextUUID"><name>Hard Linking without NextUUID</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 6604 ¶ | |||
<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 | ||||
me> | <table anchor="hardLinkingMixedUIDs"><name>Hard Linking with Mixed UID Links</na | |||
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 6338 ¶ | skipping to change at line 6638 ¶ | |||
<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">n/a</td> | <td align="left">n/a</td> | |||
<td align="left">Invalid</td> | <td align="left">Invalid</td> | |||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</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 | <t>Medium Linking creates relationships between <tt>Segments</tt> using | |||
Chapters (<xref target="editionflagordered"></xref>) and the | <tt>Ordered Chapters</tt> (<xref target="editionflagordered"/>) and the | |||
<tt>ChapterSegmentUUID Element</tt>. A <tt>Chapter Edition</tt> with Ordered Cha | <tt>ChapterSegmentUUID</tt> element. A <tt>Chapter Edition</tt> with | |||
pters <bcp14>MAY</bcp14> contain | <tt>Ordered Chapters</tt> <bcp14>MAY</bcp14> contain <tt>Chapters</tt> | |||
Chapter elements that reference timestamp ranges from other <tt>Segments</tt>. T | elements that reference timestamp ranges from other <tt>Segments</tt>. The | |||
he <tt>Segment</tt> | <tt>Segment</tt> referenced by the <tt>Ordered Chapter</tt> via the | |||
referenced by the Ordered Chapter via the <tt>ChapterSegmentUUID Element</tt> <b | <tt>ChapterSegmentUUID</tt> element <bcp14>SHOULD</bcp14> be played as part of | |||
cp14>SHOULD</bcp14> be played as | a <tt>Linked Segment</tt>.</t> | |||
part of a Linked Segment.</t> | <t>The timestamps of <tt>Segment</tt> content referenced by <tt>Ordered Chapters | |||
<t>The timestamps of Segment content referenced by Ordered Chapters | </tt> | |||
<bcp14>MUST</bcp14> be adjusted according to the cumulative duration of the prev | <bcp14>MUST</bcp14> be adjusted according to the cumulative duration of the prev | |||
ious Ordered Chapters.</t> | ious <tt>Ordered Chapters</tt>.</t> | |||
<t>As an example a file named <tt>intro.mkv</tt> could have a <tt>SegmentUUID</t | <t>As an example, a file named <tt>intro.mkv</tt> could have a | |||
t> of "0xb16a58609fc7e60653a60c984fc11ead". | <tt>SegmentUUID</tt> of "0xb16a58609fc7e60653a60c984fc11ead". Another file | |||
Another file called <tt>program.mkv</tt> could use a Chapter Edition that contai | called <tt>program.mkv</tt> could use a <tt>Chapter Edition</tt> that contains | |||
ns two Ordered Chapters. | two <tt>Ordered Chapters</tt>. The first chapter references the | |||
The first chapter references the <tt>Segment</tt> of <tt>intro.mkv</tt> with the | <tt>Segment</tt> of <tt>intro.mkv</tt> with the use of a | |||
use of a <tt>ChapterSegmentUUID</tt>, | <tt>ChapterSegmentUUID</tt>, <tt>ChapterSegmentEditionUID</tt>, | |||
<tt>ChapterSegmentEditionUID</tt>, <tt>ChapterTimeStart</tt>, and optionally a < | <tt>ChapterTimeStart</tt>, and an optional <tt>ChapterTimeEnd</tt> element. | |||
tt>ChapterTimeEnd</tt> element. | The second chapter references content within the <tt>Segment</tt> of | |||
The second chapter references content within the <tt>Segment</tt> of <tt>program | <tt>program.mkv</tt>. A <tt>Matroska Player</tt> <bcp14>SHOULD</bcp14> | |||
.mkv</tt>. A <tt>Matroska Player</tt> | recognize the <tt>Linked Segment</tt> created by the use of | |||
<bcp14>SHOULD</bcp14> recognize the <tt>Linked Segment</tt> created by the use o | <tt>ChapterSegmentUUID</tt> in an enabled <tt>Edition</tt> and present the | |||
f <tt>ChapterSegmentUUID</tt> in an enabled | 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> | <t>The <tt>ChapterSegmentUUID</tt> represents the <tt>Segment</tt> that holds th | |||
as a single presentation.</t> | e 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 | <t>A <tt>Matroska Player</tt> <bcp14>MUST</bcp14> play the content of the | |||
Segment | <tt>Linked Segment</tt> from the <tt>ChapterTimeStart</tt> until the | |||
from the <tt>ChapterTimeStart</tt> until <tt>ChapterTimeEnd</tt> timestamp in pl | <tt>ChapterTimeEnd</tt> timestamp in place of the <tt>Linked Chapter</tt>.</t> | |||
ace of the <tt>Linked Chapter</tt>.</t> | <t><tt>ChapterTimeStart</tt> and <tt>ChapterTimeEnd</tt> represent timestamps in | |||
<t><tt>ChapterTimeStart</tt> and <tt>ChapterTimeEnd</tt> represent timestamps in | the <tt>Linked Segment</tt> matching the value of <tt>ChapterSegmentUUID</tt>. | |||
the Linked Segment matching the value of <tt>ChapterSegmentUUID</tt>. | Their values <bcp14>MUST</bcp14> be in the range of the <tt>Linked Segment</tt> | |||
Their values <bcp14>MUST</bcp14> be in the range of the linked Segment duration. | duration.</t> | |||
</t> | <t>The <tt>ChapterTimeEnd</tt> value <bcp14>MUST</bcp14> be set when using Linke | |||
<t>The <tt>ChapterTimeEnd</tt> value <bcp14>MUST</bcp14> be set when using linke | d-Duration chapter linking. | |||
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 | <t>A <tt>Matroska Player</tt> <bcp14>MUST</bcp14> play the whole <tt>Linked Edit | |||
ion</tt> of the linked Segment in place of the <tt>Linked Chapter</tt>.</t> | ion</tt> of the <tt>Linked Segment</tt> in place of the <tt>Linked Chapter</tt>. | |||
<t><tt>ChapterSegmentEditionUID</tt> represents a valid Edition from the Linked | </t> | |||
Segment matching the value of <tt>ChapterSegmentUUID</tt>.</t> | ||||
<t>When using linked-edition chapter linking. <tt>ChapterTimeEnd</tt> is <bcp14> | <t><tt>ChapterSegmentEditionUID</tt> represents a valid <tt>Edition</tt> from th | |||
OPTIONAL</bcp14>.</t> | e <tt>Linked Segment</tt> matching the value of <tt>ChapterSegmentUUID</tt>.</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> | <section anchor="default-flag"><name>Default Flag</name> | |||
<t>The "default track" flag is a hint for a <tt>Matroska Player</tt> i | <t>The Default flag is a hint for a <tt>Matroska Player</tt> indicating that a | |||
ndicating that a given track | given track <bcp14>SHOULD</bcp14> be eligible to be automatically selected as | |||
<bcp14>SHOULD</bcp14> be eligible to be automatically selected as the default tr | the default track for a given language. If no tracks in a given language have | |||
ack for a given | the Default flag set, then all tracks in that language are eligible for | |||
language. If no tracks in a given language have the default track flag set, then | automatic selection. This can be used to indicate that a track provides | |||
all tracks | "regular service" that is suitable for users with default settings, as opposed | |||
in that language are eligible for automatic selection. This can be used to indic | to specialized services, such as commentary, captions for users with hearing | |||
ate that | impairments, or descriptive audio.</t> | |||
a track provides "regular service" suitable for users with default set | <t>The <tt>Matroska Player</tt> <bcp14>MAY</bcp14> override the Default flag | |||
tings, as opposed to | for any reason, including user preferences to prefer tracks providing | |||
specialized services, such as commentary, hearing-impaired captions, or descript | accessibility services.</t> | |||
ive audio.</t> | ||||
<t>The <tt>Matroska Player</tt> <bcp14>MAY</bcp14> override the "default tr | ||||
ack" flag for any reason, including | ||||
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 | |||
>SHOULD</bcp14> display this subtitle track, | <bcp14>SHOULD</bcp14> display this subtitle track, even if user preferences | |||
even if user preferences usually would not call for any subtitles to be displaye | usually would not call for any subtitles to be displayed alongside the audio | |||
d alongside | track that is currently selected. This can be used to indicate that a track | |||
the current selected audio track. This can be used to indicate that a track cont | contains translations of on-screen text or dialogue spoken in a different | |||
ains translations | language than the track's primary language.</t> | |||
of onscreen text, or of dialogue spoken in a different language than the track's | ||||
primary one.</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 | |||
it <bcp14>SHOULD</bcp14> prefer this track | <bcp14>SHOULD</bcp14> prefer this track when selecting a default track for a | |||
when selecting a default track for a hearing-impaired user, and that it <bcp14>M | user with a hearing impairment and that it <bcp14>MAY</bcp14> prefer to select | |||
AY</bcp14> prefer to select | a different track when selecting a default track for a user that is not | |||
a different track when selecting a default track for a non-hearing-impaired user | hearing impaired.</t> | |||
.</t> | ||||
</section> | </section> | |||
<section anchor="visual-impaired-flag"><name>Visual-impaired flag</name> | <section anchor="visual-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 | |||
it <bcp14>SHOULD</bcp14> prefer this track | <bcp14>SHOULD</bcp14> prefer this track when selecting a default track for a | |||
when selecting a default track for a visually-impaired user, and that it <bcp14> | user with a visual impairment and that it <bcp14>MAY</bcp14> prefer to select | |||
MAY</bcp14> prefer to select | a different track when selecting a default track for a user that is not | |||
a different track when selecting a default track for a non-visually-impaired use | visually impaired.</t> | |||
r.</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 is | |||
s track is suitable to play via | suitable to play via a text-to-speech system for a user with a visual | |||
a text-to-speech system for a visually-impaired user, and that it <bcp14>SHOULD | impairment and that it <bcp14>SHOULD NOT</bcp14> automatically select this | |||
NOT</bcp14> automatically | track when selecting a default track for a user that is not visually | |||
select this track when selecting a default track for a non-visually-impaired use | impaired.</t> | |||
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 | |||
ack is in the original language, | the original language and that it <bcp14>SHOULD</bcp14> prefer this track if | |||
and that it <bcp14>SHOULD</bcp14> prefer it if configured to prefer original-lan | configured to prefer original-language tracks of this track's type.</t> | |||
guage tracks of this | ||||
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 | |||
track contains commentary on | contains 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</tt> elements corres | |||
tt> corresponding to such | ponding to such | |||
a virtual track <bcp14>SHOULD</bcp14> be the union of the <tt>Cues Elements</tt> | a virtual track <bcp14>SHOULD</bcp14> be the union of the <tt>Cues</tt> elements | |||
for each of the tracks it's composed of (when the <tt>Cues</tt> are defined per | for each of the tracks it's composed of (when the <tt>Cues</tt> are defined per | |||
track).</t> | track).</t> | |||
<t>In the case of <tt>TrackJoinBlocks</tt>, the <tt>Block Elements</tt> (from <t | <t>In the case of <tt>TrackJoinBlocks</tt>, the <tt>Block</tt> elements (from | |||
t>BlockGroup</tt> and <tt>SimpleBlock</tt>) | <tt>BlockGroup</tt> and <tt>SimpleBlock</tt>) of all the tracks | |||
of all the tracks <bcp14>SHOULD</bcp14> be used as if they were defined for this | <bcp14>SHOULD</bcp14> be used as if they were defined for this new virtual | |||
new virtual <tt>Track</tt>. | <tt>Track</tt>. When two <tt>Block</tt> elements have overlapping start or | |||
When two <tt>Block Elements</tt> have overlapping start or end timestamps, it's | end timestamps, it's up to the underlying system to either drop some of these | |||
up to the underlying | frames or render them the way they overlap. This situation | |||
system to either drop some of these frames or render them the way they overlap. | <bcp14>SHOULD</bcp14> be avoided when creating such tracks, as you can never | |||
This situation <bcp14>SHOULD</bcp14> be avoided when creating such tracks as you | be sure of the end result on different platforms.</t> | |||
can never be sure | ||||
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> | |||
<t>Overlay tracks <bcp14>SHOULD</bcp14> be rendered in the same channel as the t rack it's linked to. | <t>An overlay track <bcp14>SHOULD</bcp14> be rendered in the same channel as the track 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 | <t>For the single-track variant, there is the <tt>StereoMode</tt> element, | |||
defines how planes are | which defines how planes are assembled in the track (mono or left-right | |||
assembled in the track (mono or left-right combined). Odd values of StereoMode m | combined). Odd values of <tt>StereoMode</tt> means the left plane comes first | |||
eans the left | for more convenient reading. The pixel count of the track | |||
plane comes first for more convenient reading. The pixel count of the track (<tt | (<tt>PixelWidth</tt>/<tt>PixelHeight</tt>) is the raw number of pixels (for | |||
>PixelWidth</tt>/<tt>PixelHeight</tt>) | example, 3840x1080 for full HD side by side), and the | |||
is the raw amount of pixels, for example 3840x1080 for full HD side by side, and | <tt>DisplayWidth</tt>/<tt>DisplayHeight</tt> in pixels is the number of pixels | |||
the <tt>DisplayWidth</tt>/<tt>DisplayHeight</tt> | for one plane (1920x1080 for that full HD stream). Old stereo 3D movies were | |||
in pixels is the amount of pixels for one plane (1920x1080 for that full HD stre | displayed using anaglyph (cyan and red colors separated). For compatibility | |||
am). | with such movies, there is a value of the <tt>StereoMode</tt> that corresponds | |||
Old stereo 3D were displayed using anaglyph (cyan and red colors separated). | to anaglyph.</t> | |||
For compatibility with such movies, there is a value of the StereoMode that corr | <t>There is also a "packed" mode (values 13 and 14) that consists of packing two | |||
esponds to AnaGlyph.</t> | frames together | |||
<t>There is also a "packed" mode (values 13 and 14) which consists of | in a <tt>Block</tt> that uses lacing. The first frame is the left eye and the ot | |||
packing two frames together | her frame is the right eye | |||
in a <tt>Block</tt> using lacing. The first frame is the left eye and the other | ||||
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 | <tt>TrackOperation</tt> with <tt>TrackCombinePlanes</tt> does that. For more det | |||
ls look at | ails, see | |||
<xref target="track-operation"></xref> on how TrackOperation works.</t> | <xref target="track-operation"/> on how <tt>TrackOperation</tt> 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 | <t>The <tt>StereoMode</tt> used to be part of Matroska v2, but it didn't meet th | |||
ent | e | |||
for multiple tracks. There was also a bug in libmatroska prior to 0.9.0 that wou | requirement for multiple tracks. There was also a bug in | |||
ld save/read | <xref target="libmatroska"/> prior to 0.9.0 that would save/read it as | |||
it as <tt>0x53B9</tt> instead of <tt>0x53B8</tt>; see OldStereoMode (<xref targe | <tt>0x53B9</tt> instead of <tt>0x53B8</tt>; see <tt>OldStereoMode</tt> (<xref ta | |||
t="oldstereomode-element"></xref>). <tt>Matroska Readers</tt> <bcp14>MAY</bcp14> | rget="oldstereomode-element"/>). <tt>Matroska Readers</tt> | |||
support these legacy files by checking | <bcp14>MAY</bcp14> support these legacy files by checking Matroska v2 or | |||
Matroska v2 or <tt>0x53B9</tt>. | <tt>0x53B9</tt>. The older values of <tt>StereoMode</tt> were 0 (mono), 1 (righ | |||
The older values of StereoMode were 0: mono, 1: right eye, 2: left eye, 3: both | t eye), | |||
eyes, the only values that can be found in OldStereoMode. | 2 (left eye), and 3 (both eyes); these are the only values that can be found | |||
They are not compatible with the StereoMode values found in Matroska v3 and abov | in <tt>OldStereoMode</tt>. They are not compatible with the <tt>StereoMode</tt> | |||
e.</t> | values found in | |||
Matroska v3 and above.</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 | <t>This section provides some example sets of <tt>Tracks</tt> and hypothetical | |||
ngs, along with | user settings, along with indications of which ones a similarly configured | |||
indications of which ones a similarly-configured <tt>Matroska Player</tt> <bcp14 | <tt>Matroska Player</tt> <bcp14>SHOULD</bcp14> automatically select for | |||
>SHOULD</bcp14> automatically | playback by default in such a situation. A player <bcp14>MAY</bcp14> provide | |||
select for playback by default in such a situation. A player <bcp14>MAY</bcp14> | additional settings with more detailed controls for more nuanced | |||
provide additional settings | scenarios. These examples are provided as guidelines to illustrate the | |||
with more detailed controls for more nuanced scenarios. These examples are provi | intended usages of the various supported <tt>Track</tt> flags and their | |||
ded as guidelines | expected behaviors.</t> | |||
to illustrate the intended usages of the various supported Track flags, and thei | <t><tt>Track</tt> names are shown in English for illustrative purposes; actual | |||
r expected behaviors.</t> | files may have titles in the language of each track or provide titles in | |||
<t>Track names are shown in English for illustrative purposes; actual files may | multiple languages.</t> | |||
have titles | ||||
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 6883 ¶ | |||
<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 6905 ¶ | |||
<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 6931 ¶ | |||
<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. | |||
If configured to specifically prefer audio tracks in English or Spanish, the pla | If the user has configured to specifically prefer audio tracks in English or | |||
yer should select one of | Spanish, the player should select one of the tracks in the corresponding | |||
the tracks in the corresponding language. The player may also wish to prefer an | language. The player may also wish to prefer a track with the Original flag if | |||
Original-flagged track | no tracks matching any of the user's explicitly preferred languages are | |||
if no tracks matching any of the user's explicitly-preferred languages are avail | available.</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 | individuals with visual impairments (which has its own flag and may be automatic | |||
by user configuration, | ally selected 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> | |||
</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 6691 ¶ | skipping to change at line 7028 ¶ | |||
<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 users with hearing impairments</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> | |||
<td>None</td> | <td>None</td> | |||
skipping to change at line 6724 ¶ | skipping to change at line 7061 ¶ | |||
<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 <tt>Chapters</tt> system can have multiple <tt>Editions</tt>, an | |||
>Edition</tt> can consist of | d each <tt>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 | used or much more complex with <tt>Linked Chapters</tt>. The Matroska <tt>Chapte | |||
ystem can also have a menu | rs</tt> system can also have a menu | |||
structure, borrowed from the DVD menu system <xref target="DVD-Video"></xref>, o | structure borrowed from the DVD-menu system <xref target="DVD-Video"/> or have i | |||
r have its own built-in Matroska menu structure.</t> | ts 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 | 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>. | p14> contain at least one <tt>ChapterAtom</tt> element. | |||
Chapters are always inside an <tt>Edition</tt> (or a Chapter itself part of an < | ||||
tt>Edition</tt>). | <tt>Chapters</tt> are always inside an <tt>Edition</tt> (or a <tt>Chapter</tt> i | |||
Multiple Editions are allowed. Some of these Editions <bcp14>MAY</bcp14> be orde | tself is part of an <tt>Edition</tt>). | |||
red and others not.</t> | Multiple <tt>Editions</tt> are allowed. Some of these <tt>Editions</tt> <bcp14>M | |||
AY</bcp14> be ordered 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 7138 ¶ | |||
<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 7166 ¶ | |||
<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 6855 ¶ | skipping to change at line 7194 ¶ | |||
<td align="left">true</td> | <td align="left">true</td> | |||
<td align="left">X</td> | <td align="left">X</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></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 | |||
n <tt>Edition</tt> | enables an <tt>Edition</tt> of <tt>Ordered Chapters</tt> that defines and | |||
of <tt>Ordered Chapters</tt> which defines and arranges a virtual timeline rathe | arranges a virtual timeline rather than simply labeling points within the | |||
r than simply | timeline. For example, with <tt>Editions</tt> of <tt>Ordered Chapters</tt>, a | |||
labeling points within the timeline. For example, with <tt>Editions</tt> of <tt> | single <tt>Matroska file</tt> can present multiple edits of a film without | |||
Ordered Chapters</tt> | duplicating content. Alternatively, if a videotape is digitized in full, one | |||
a single <tt>Matroska file</tt> can present multiple edits of a film without dup | <tt>Ordered Edition</tt> could present the full content (including colorbars, | |||
licating content. | countdown, slate, a feature presentation, and black frames), while another | |||
Alternatively, if a videotape is digitized in full, one <tt>Ordered Edition</tt> | <tt>Edition</tt> of <tt>Ordered Chapters</tt> can use <tt>Chapters</tt> that | |||
could present | only mark the intended presentation with the colorbars and other ancillary | |||
the full content (including colorbars, countdown, slate, a feature presentation, | visual information excluded. If an <tt>Edition</tt> of <tt>Ordered | |||
and | Chapters</tt> is enabled, then the <tt>Matroska Player</tt> | |||
black frames), while another <tt>Edition</tt> of <tt>Ordered Chapters</tt> can u | <bcp14>MUST</bcp14> play those <tt>Chapters</tt> in their stored order from | |||
se <tt>Chapters</tt> that only | the timestamp marked in the <tt>ChapterTimeStart</tt> element to the timestamp | |||
mark the intended presentation with the colorbars and other ancillary visual inf | marked in to <tt>ChapterTimeEnd</tt> element.</t> | |||
ormation | ||||
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 | ||||
<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 | ||||
e Chapters</tt> are used and | ||||
only the <tt>ChapterTimeStart</tt> of a <tt>Chapter</tt> is used as chapter mark | ||||
to jump to the | ||||
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> | ||||
<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> | <t>If the <tt>EditionFlagOrdered</tt> flag evaluates to "0", <tt>Simple | |||
<td align="left">TrackEntry/TrackTranslate</td> | Chapters</tt> are used and only the <tt>ChapterTimeStart</tt> of a | |||
</tr> | <tt>Chapter</tt> is used as a chapter mark to jump to the predefined point in | |||
</tbody> | the timeline. With <tt>Simple Chapters</tt>, a <tt>Matroska Player</tt> | |||
</table><t>Furthermore, there are other EBML <tt>Elements</tt> which could be us | <bcp14>MUST</bcp14> ignore certain elements inside a <tt>Chapters</tt> | |||
ed if the <tt>EditionFlagOrdered</tt> | element. In that case, these elements are informational only.</t> | |||
evaluates to "1".</t> | ||||
<section anchor="ordered-edition-and-matroska-segment-linking"><name>Ordered-Edi tion and Matroska Segment-Linking</name> | <t>The following list shows the different <tt>Chapters</tt> elements only found in <tt>Ordered Chapters</tt>.</t> | |||
<ul> | <ul> | |||
<li><t>Hard Linking: <tt>Ordered-Chapters</tt> supersedes the <tt>Hard Linking</ tt>.</t> | <li><t><tt>ChapterAtom\ChapterSegmentUUID</tt></t> | |||
</li> | </li> | |||
<li><t>Medium Linking: <tt>Ordered Chapters</tt> are used in a normal way and ca | <li><t><tt>ChapterAtom\ChapterSegmentEditionUID</tt></t> | |||
n be combined | </li> | |||
with the <tt>ChapterSegmentUUID</tt> element which establishes a link to another | <li><t><tt>ChapterAtom\ChapProcess</tt></t> | |||
Segment.</t> | </li> | |||
<li><t><tt>Info\ChapterTranslate</tt></t> | ||||
</li> | ||||
<li><t><tt>TrackEntry\TrackTranslate</tt></t> | ||||
</li> | </li> | |||
</ul> | </ul> | |||
<t>See <xref target="linked-segments"></xref> on the Linked Segments for more in | <t>Furthermore, there are other EBML elements that could be used if the <tt>Edit | |||
formation | ionFlagOrdered</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><t><tt>Ordered Chapters</tt> supersede the <tt>Hard Linking</tt>.</t> | ||||
</dd> | ||||
<dt>Medium Linking:</dt> | ||||
<dd><t><tt>Ordered Chapters</tt> are used in a normal way and can be combined | ||||
with the <tt>ChapterSegmentUUID</tt> element, which establishes a link to anothe | ||||
r <tt>Segment</tt>.</t> | ||||
</dd> | ||||
</dl> | ||||
<t>See <xref target="linked-segments"/> on <tt>Linked Segment</tt>s for more inf | ||||
ormation | ||||
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 <tt>TimestampScale</tt>. | |||
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 | <t><tt>ChapterTimeEnd</tt> is the timestamp of the end of <tt>Chapter</tt> | |||
aled by TimestampScale. | with nanosecond accuracy and is not scaled by <tt>TimestampScale</tt>. The | |||
The timestamp defined by the <tt>ChapterTimeEnd</tt> is not part of the <tt>Chap | timestamp defined by the <tt>ChapterTimeEnd</tt> is not part of the | |||
ter</tt>. | <tt>Chapter</tt>. A <tt>Matroska Player</tt> calculates the duration of this | |||
A <tt>Matroska Player</tt> calculates the duration of this <tt>Chapter</tt> usin | <tt>Chapter</tt> using the difference between the <tt>ChapterTimeEnd</tt> and | |||
g the difference between the | <tt>ChapterTimeStart</tt>. The end timestamp <bcp14>MUST</bcp14> be greater | |||
<tt>ChapterTimeEnd</tt> and <tt>ChapterTimeStart</tt>. | than or equal to the start timestamp.</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"/>.</t> | |||
<table anchor="ChapterTimeEndUsage"><name>ChapterTimeEnd usage possibilities</na | <table anchor="ChapterTimeEndUsage"><name>ChapterTimeEnd Usage Possibilities</na | |||
me> | me> | |||
<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 6981 ¶ | skipping to change at line 7314 ¶ | |||
<td align="left">0</td> | <td align="left">0</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<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 | That element is a <tt>Parent Chapter</tt>, and the <tt>ChapterAtom</tt> elements | |||
it contains are <tt>Nested Chapters</tt>.</t> | it contains are <tt>Nested Chapters</tt>.</t> | |||
<t>Nested Chapters can be useful to tag small parts of a Segment that already ha | <t><tt>Nested Chapters</tt> can be useful to tag small parts of a <tt>Segment</t | |||
ve tags or | t> that already have tags or | |||
add Chapter Codec commands on smaller parts of a Segment that already have Chapt | add Chapter Codec commands on smaller parts of a <tt>Segment</tt> that already h | |||
er Codec commands.</t> | ave Chapter Codec commands.</t> | |||
<t>The <tt>ChapterTimeStart</tt> of a <tt>Nested Chapter</tt> <bcp14>MUST</bcp14 | <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 | > be greater than or equal to the <tt>ChapterTimeStart</tt> of its <tt>Parent Ch | |||
er</tt>.</t> | 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> < | <t>The <tt>ChapterTimeEnd</tt> of the lowest level of <tt>Nested Chapters</tt> < | |||
bcp14>MUST</bcp14> be set for Ordered Chapters.</t> | bcp14>MUST</bcp14> be set for <tt>Ordered Chapters</tt>.</t> | |||
<t>When used with Ordered Chapters, the <tt>ChapterTimeEnd</tt> value of a <tt>P | <t>When used with <tt>Ordered Chapters</tt>, the <tt>ChapterTimeEnd</tt> value o | |||
arent Chapter</tt> is useless for playback | f a <tt>Parent 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> | |||
<t>Each Chapter | <t>Each <tt>Chapter</tt>'s <tt>ChapterFlagHidden</tt> flag works independently o | |||
<tt>ChapterFlagHidden</tt> flag works independently of parent chapters. | f <tt>Parent Chapters</tt>. | |||
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 | |||
<tt>Parent Chapter</tt> <tt>ChapterFlagHidden</tt> flag is set to "1". | "0" remains visible in the user interface even if the <tt>Parent Chapter</tt>'s | |||
</t> | <tt>ChapterFlagHidden</tt> flag is set to "1".</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 7051 ¶ | skipping to change at line 7385 ¶ | |||
<td align="left">0</td> | <td align="left">0</td> | |||
<td align="left">yes</td> | <td align="left">yes</td> | |||
</tr> | </tr> | |||
<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 | For now, only two values are supported: 0 (Matroska Script) and 1 (menu borrowed | |||
ref target="DVD-Video"></xref>. | from the DVD <xref target="DVD-Video"/>). | |||
The private data depend on the type of menu system (stored in <tt>ChapProcessPri | The private data stored in <tt>ChapProcessPrivate</tt> and | |||
vate</tt>), | <tt>ChapProcessData</tt> depends on the <tt>ChapProcessCodecID</tt> value.</t> | |||
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 | |||
<t>The menu system, as well as Chapter Codecs in general, can do actions on the | the <tt>Matroska Player</tt>, such as jumping to another <tt>Chapter</tt> or <t | |||
<tt>Matroska Player</tt> | t>Edition</tt>, selecting different tracks, and possibly more. | |||
like jumping to another Chapter or Edition, selecting different tracks and possi | The scope of all the possibilities of Chapter Codecs is not covered in this docu | |||
bly more. | ment, as it | |||
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"/> 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 7130 ¶ | skipping to change at line 7464 ¶ | |||
<td align="left">as found on audio CDs</td> | <td align="left">as found on audio CDs</td> | |||
</tr> | </tr> | |||
<tr> | <tr> | |||
<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: After the crime</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 | <t>This translates to Matroska form, with the EBML tree shown as follows in XML: | |||
as XML :</t> | </t> | |||
<figure><name>Basic Chapters Example. | <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> | |||
</ChapterDisplay> | </ChapterDisplay> | |||
</ChapterAtom> | </ChapterAtom> | |||
skipping to change at line 7209 ¶ | skipping to change at line 7545 ¶ | |||
<ChapterDisplay> | <ChapterDisplay> | |||
<ChapString>Credits</ChapString> | <ChapString>Credits</ChapString> | |||
</ChapterDisplay> | </ChapterDisplay> | |||
<ChapterDisplay> | <ChapterDisplay> | |||
<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 | <t>This translates to Matroska form, with the EBML tree shown as follows in XML: | |||
as XML :</t> | </t> | |||
<figure><name>Nested Chapters Example. | <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> | |||
</ChapterDisplay> | </ChapterDisplay> | |||
<ChapterAtom> | <ChapterAtom> | |||
skipping to change at line 7322 ¶ | skipping to change at line 7660 ¶ | |||
<ChapterAtom> | <ChapterAtom> | |||
<ChapterUID>10</ChapterUID> | <ChapterUID>10</ChapterUID> | |||
<ChapterTimeStart>2017000000</ChapterTimeStart> | <ChapterTimeStart>2017000000</ChapterTimeStart> | |||
<ChapterTimeEnd>2668000000</ChapterTimeEnd> | <ChapterTimeEnd>2668000000</ChapterTimeEnd> | |||
<ChapterDisplay> | <ChapterDisplay> | |||
<ChapString>Bleeper</ChapString> | <ChapString>Bleeper</ChapString> | |||
</ChapterDisplay> | </ChapterDisplay> | |||
</ChapterAtom> | </ChapterAtom> | |||
</EditionEntry> | </EditionEntry> | |||
</Chapters> | </Chapters> | |||
</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 | <t>Matroska supports storage of related files and data in the | |||
ement</tt> | <tt>Attachments</tt> element (a <tt>Top-Level | |||
(a <tt>Top-Level Element</tt>). <tt>Attachment Elements</tt> can be used to stor | Element</tt>). <tt>Attachments</tt> elements can be used to store related | |||
e related cover art, | cover art, font files, transcripts, reports, error recovery files, pictures, | |||
font files, transcripts, reports, error recovery files, picture, or text-based a | text-based annotations, copies of specifications, or other ancillary files | |||
nnotations, | related to the <tt>Segment</tt>.</t> | |||
copies of specifications, or other ancillary files related to the <tt>Segment</t | <t><tt>Matroska Readers</tt> <bcp14>MUST NOT</bcp14> execute files stored as <tt | |||
t>.</t> | >Attachments</tt> elements.</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 | <t>This section defines a set of guidelines for the storage of cover art in | |||
oska files. | Matroska files. A <tt>Matroska Reader</tt> <bcp14>MAY</bcp14> use embedded | |||
A <tt>Matroska Reader</tt> <bcp14>MAY</bcp14> use embedded cover art to display | cover art to display a representational still-image depiction of the | |||
a representational | multimedia contents of the Matroska file.</t> | |||
still-image depiction of the multimedia contents of the Matroska file.</t> | <t>Only <xref target="JPEG"/> and PNG <xref target="RFC2083"/> image formats <bc | |||
<t>Only <xref target="JPEG"></xref> and PNG <xref target="RFC2083"></xref> image | p14>SHOULD</bcp14> be used for cover art pictures.</t> | |||
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 | <t>Versions of cover art can be differentiated by the filename, which is | |||
e -- for example, 192x120 or 120x160.</t> | stored in the <tt>FileName</tt> element. The default filename of the | |||
<t>Versions of cover art can be differentiated by the filename, which is stored | <tt>normal cover</tt> in square or portrait mode is | |||
in the | <tt>cover.(jpg|png)</tt>. When stored, the <tt>normal cover</tt> | |||
<tt>FileName Element</tt>. The default filename of the <tt>normal cover</tt> in | <bcp14>SHOULD</bcp14> be the first <tt>Attachments</tt> element in storage | |||
square or portrait mode | ||||
is <tt>cover.(jpg|png)</tt>. When stored, the <tt>normal cover</tt> <bcp14>SHOUL | order. The <tt>small cover</tt> <bcp14>SHOULD</bcp14> be prefixed with | |||
D</bcp14> be the first Attachment in | "small_", such as <tt>small_cover.(jpg|png)</tt>. The landscape variant | |||
storage order. The <tt>small cover</tt> <bcp14>SHOULD</bcp14> be prefixed with & | <bcp14>SHOULD</bcp14> be suffixed with "_land", such as | |||
quot;small_", such as | <tt>cover_land.(jpg|png)</tt>. The filenames are case-sensitive.</t> | |||
<tt>small_cover.(jpg|png)</tt>. The landscape variant <bcp14>SHOULD</bcp14> be s | <t>The following table provides examples of file names for cover art in <tt>Atta | |||
uffixed with "_land", | chments</tt>.</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> | ||||
<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 7388 ¶ | skipping to change at line 7736 ¶ | |||
<td>Landscape</td> | <td>Landscape</td> | |||
<td>600</td> | <td>600</td> | |||
</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 | In order to select a font for display, a <tt>Matroska Player</tt> <bcp14>SHOULD< | |||
onsider both the Font Name | /bcp14> consider both the Font Name | |||
and the base name of the Attachment's FileName, preferring the former when there | and the base name of the Attachment's <tt>FileName</tt>, preferring the former w | |||
are multiple matches.</t> | hen there are multiple matches.</t> | |||
<t>Subtitle codecs, such as SubStation Alpha (SSA/ASS), usually refer to a font | <t>Subtitle codecs, such as SubStation Alpha (SSA) and Advanced SubStation Alpha | |||
by its Font Name, not | (ASS), usually refer to a font by its Font Name, not by its filename. | |||
by its filename. | If none of the Attachments are a match for the Font Name, the <tt>Matroska Playe | |||
If none of the Attachments are a match for the Font Name, the Matroska player <b | r</tt> <bcp14>SHOULD</bcp14> | |||
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 <tt>Matroska Player</tt> 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 <tt>Matroska Player</tt> <bcp14>SHOULD</bcp14> handle the official font med ia types from <xref target="RFC8081"/> when the system can handle the type:</t> | |||
<ul> | <ul> | |||
<li><t><tt>font/sfnt</tt>: Generic SFNT Font Type,</t> | <li><t>font/sfnt: Generic SFNT Font Type</t> | |||
</li> | </li> | |||
<li><t><tt>font/ttf</tt>: TTF Font Type,</t> | <li><t>font/ttf: TrueType Font (TTF) Font Type</t> | |||
</li> | </li> | |||
<li><t><tt>font/otf</tt>: OpenType Layout (OTF) Font Type,</t> | <li><t>font/otf: OpenType Layout (OTF) Font Type</t> | |||
</li> | </li> | |||
<li><t><tt>font/collection</tt>: Collection Font Type,</t> | <li><t>font/collection: Collection Font Type</t> | |||
</li> | </li> | |||
<li><t><tt>font/woff</tt>: WOFF 1.0,</t> | <li><t>font/woff: WOFF 1.0</t> | |||
</li> | </li> | |||
<li><t><tt>font/woff2</tt>: WOFF 2.0.</t> | <li><t>font/woff2: WOFF 2.0</t> | |||
</li> | </li> | |||
</ul> | </ul> | |||
<t>Fonts in Matroska existed long before <xref target="RFC8081"></xref>. A few u | <t>Fonts in Matroska existed long before <xref target="RFC8081"/>. A few unoffic | |||
nofficial media types for fonts were used in existing files. | ial media types for fonts were used in existing files. | |||
Therefore, it is <bcp14>RECOMMENDED</bcp14> for a Matroska player to support the | Therefore, it is <bcp14>RECOMMENDED</bcp14> for a <tt>Matroska Player</tt> to su | |||
following legacy media types for font attachments:</t> | pport 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 ont/ttf</tt> and sometimes <tt>font/otf</tt>,</t> | <li><t>application/x-truetype-font: TrueType fonts, equivalent to <tt>font/ttf</ tt> and sometimes <tt>font/otf</tt></t> | |||
</li> | </li> | |||
<li><t><tt>application/x-font-ttf</tt>: TTF fonts, equivalent to <tt>font/ttf</t t>,</t> | <li><t>application/x-font-ttf: TrueType fonts, equivalent to <tt>font/ttf</tt></ t> | |||
</li> | </li> | |||
<li><t><tt>application/vnd.ms-opentype</tt>: OpenType Layout fonts, equivalent t o <tt>font/otf</tt></t> | <li><t>application/vnd.ms-opentype: OpenType Layout fonts, equivalent to <tt>fon t/otf</tt></t> | |||
</li> | </li> | |||
<li><t><tt>application/font-sfnt</tt>: Generic SFNT Font Type, equivalent to <tt >font/sfnt</tt></t> | <li><t>application/font-sfnt: Generic SFNT Font Type, equivalent to <tt>font/sfn t</tt></t> | |||
</li> | </li> | |||
<li><t><tt>application/font-woff</tt>: WOFF 1.0, equivalent to <tt>font/woff</tt ></t> | <li><t>application/font-woff: WOFF 1.0, equivalent to <tt>font/woff</tt></t> | |||
</li> | </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 <tt>Matroska Player</tt> <bcp14>MAY</bcp14> try to guess the f ont type by checking the file extension of the <tt>AttachedFile\FileName</tt> st ring. | |||
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><tt>Matroska Writers</tt> <bcp14>SHOULD</bcp14> use a valid font media type f rom <xref target="RFC8081"/> in the <tt>AttachedFile\FileMediaType</tt> of the f ont 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</ | <t>The <tt>Cues</tt> element provides an index of certain <tt>Cluster</tt> | |||
tt> to allow for optimized | elements to allow for optimized seeking to absolute timestamps within the | |||
seeking to absolute timestamps within the <tt>Segment</tt>. The <tt>Cues Element | <tt>Segment</tt>. The <tt>Cues</tt> element contains one or many | |||
</tt> contains one or | <tt>CuePoint</tt> elements, each of which <bcp14>MUST</bcp14> reference an | |||
many <tt>CuePoint Elements</tt> which each <bcp14>MUST</bcp14> reference an abso | absolute timestamp (via the <tt>CueTime</tt> element), a <tt>Track</tt> (via | |||
lute timestamp (via the | the <tt>CueTrack</tt> element), and a <tt>Segment Position</tt> (via the | |||
<tt>CueTime Element</tt>), a <tt>Track</tt> (via the <tt>CueTrack Element</tt>), | <tt>CueClusterPosition</tt> element). Additional non-mandated elements are | |||
and a <tt>Segment Position</tt> | part of the <tt>CuePoint</tt> element, such as <tt>CueDuration</tt>, | |||
(via the <tt>CueClusterPosition Element</tt>). Additional non-mandated Elements | <tt>CueRelativePosition</tt>, <tt>CueCodecState</tt>, and others that provide | |||
are part of | any <tt>Matroska Reader</tt> with additional information to use in the | |||
the <tt>CuePoint Element</tt> such as <tt>CueDuration</tt>, <tt>CueRelativePosit | optimization of seeking performance.</t> | |||
ion</tt>, <tt>CueCodecState</tt> | ||||
and others which provide any <tt>Matroska Reader</tt> with additional informatio | ||||
n to use in | ||||
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</tt> element.</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</tt> element.</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</tt> element that contains a <tt>CodecState</tt> ele ment 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</tt> element with a <tt>CueDuration</tt> element.</t> | |||
</li> | </li> | |||
<li><t>References to audio tracks <bcp14>MAY</bcp14> be skipped in <tt>CuePoint | <li><t>References to audio tracks <bcp14>MAY</bcp14> be skipped in <tt>CuePoint< | |||
Elements</tt> if a video track | /tt> elements if a video track | |||
is present. When included the <tt>CuePoint Elements</tt> <bcp14>SHOULD</bcp14> r | is present. When included, the <tt>CuePoint</tt> elements <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 | <li><t>If the referenced frame is not stored within the first <tt>SimpleBlock</t | |||
t>, or first | t> or first | |||
<tt>BlockGroup</tt> within its <tt>Cluster Element</tt>, then the <tt>CueRelativ | <tt>BlockGroup</tt> within its <tt>Cluster</tt> element, then the <tt>CueRelativ | |||
ePosition Element</tt> | ePosition</tt> element | |||
<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 | <li><t>If a <tt>CuePoint</tt> element references a <tt>Cluster</tt> element that | |||
ncludes a <tt>CodecState Element</tt>, | includes a <tt>CodecState</tt> element, | |||
then that <tt>CuePoint Element</tt> <bcp14>MUST</bcp14> use a <tt>CueCodecState | then that <tt>CuePoint</tt> element <bcp14>MUST</bcp14> use a <tt>CueCodecState< | |||
Element</tt>.</t> | /tt> element.</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</tt> elements <bcp14>SHOULD</bcp14> be numerically sorted in storage order by the value of the <tt>CueTime</tt> element.</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 | When followed, the guidelines in <xref target="implementation-recommendations"/> | |||
of seeking operations for regular playback and also have the playback start quic | help reduce the number of | |||
kly without | seeking operations for regular playback and also have the playback start | |||
a lot of data needed to read first (like a <tt>Cues Element</tt>, <tt>Attachment | quickly without needing to read lot of data first (like a <tt>Cues</tt> element, | |||
Element</tt> or <tt>SeekHead Element</tt>).</t> | <tt>Attachments</tt> element, or <tt>SeekHead</tt> element).</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 | Livestreaming of Matroska over file-like protocols like HTTP, QUIC, etc., is pos | |||
ible.</t> | sible.</t> | |||
<t>A live Matroska stream is different from a file because it usually has no kno | <t>A live Matroska stream is different from a file because it usually has no | |||
wn end | known end (only ending when the client disconnects). For this, all bits of the | |||
(only ending when the client disconnects). For this, all bits of the "size& | "size" portion of the <tt>Segment</tt> element <bcp14>MUST</bcp14> be set to | |||
quot; portion | 1. Another option is to concatenate <tt>Segment</tt> elements with known | |||
of the <tt>Segment Element</tt> <bcp14>MUST</bcp14> be set to 1. Another option | sizes, one after the other. This solution allows a change of codec/resolution | |||
is to concatenate <tt>Segment Elements</tt> | between each segment. For example, this allows for a switch between 4:3 and | |||
with known sizes, one after the other. This solution allows a change of codec/re | 16:9 in a television program.</t> | |||
solution | <t>When <tt>Segment</tt> elements are continuous, certain elements (like | |||
between each segment. For example, this allows for a switch between 4:3 and 16:9 | <tt>SeekHead</tt>, <tt>Cues</tt>, <tt>Chapters</tt>, and <tt>Attachments</tt>) | |||
in a television program.</t> | <bcp14>MUST NOT</bcp14> be used.</t> | |||
<t>When <tt>Segment Elements</tt> are continuous, certain <tt>Elements</tt>, lik | <t>It is possible for a <tt>Matroska Player</tt> to detect that a stream is | |||
e <tt>SeekHead</tt>, <tt>Cues</tt>, | not seekable. If the stream has neither a <tt>SeekHead</tt> list nor a | |||
<tt>Chapters</tt>, and <tt>Attachments</tt>, <bcp14>MUST NOT</bcp14> be used.</t | <tt>Cues</tt> list at the beginning of the stream, it <bcp14>SHOULD</bcp14> be | |||
> | considered non-seekable. Even though it is possible to seek forward in the | |||
<t>It is possible for a <tt>Matroska Player</tt> to detect that a stream is not | stream, it is <bcp14>NOT RECOMMENDED</bcp14>.</t> | |||
seekable. | <t>In the context of live radio or web TV, it is possible to "tag" the content w | |||
If the stream has neither a <tt>SeekHead</tt> list nor a <tt>Cues</tt> list at t | hile it is | |||
he beginning of the stream, | playing. The <tt>Tags</tt> element can be placed between <tt>Clusters</tt> each | |||
it <bcp14>SHOULD</bcp14> be considered non-seekable. Even though it is possible | time it is necessary. | |||
to seek forward | In that case, the new <tt>Tags</tt> element <bcp14>MUST</bcp14> reset the previo | |||
in the stream, it is <bcp14>NOT RECOMMENDED</bcp14>.</t> | usly encountered <tt>Tags</tt> elements | |||
<t>In the context of live radio or web TV, it is possible to "tag" the | ||||
content while it is | ||||
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> | ||||
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> | |||
<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 | <t>Some Matroska elements also contain their own string value, like the track <t | |||
e (<xref target="name-element"></xref>) or the Chapter String (<xref target="cha | t>Name</tt> element (<xref target="name-element"/>) or the <tt>ChapString</tt> e | |||
pstring-element"></xref>).</t> | lement (<xref target="chapstring-element"/>).</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 | <li><t>The track <tt>Name</tt> element (<xref target="name-element"/>) correspon | |||
to a tag with the TagTrackUID (<xref target="tagtrackuid-element"></xref>) set t | ds to a tag with the <tt>TagTrackUID</tt> (<xref target="tagtrackuid-element"/>) | |||
o the given track, a TagName of <tt>TITLE</tt> (<xref target="tagname-element">< | set to the given track, a <tt>TagName</tt> of <tt>TITLE</tt> (<xref target="tag | |||
/xref>) and a TagLanguage (<xref target="taglanguage-element"></xref>) or TagLan | name-element"/>), and a <tt>TagLanguage</tt> (<xref target="taglanguage-element" | |||
guageBCP47 (<xref target="taglanguagebcp47-element"></xref>) of "und". | />) or <tt>TagLanguageBCP47</tt> (<xref target="taglanguagebcp47-element"/>) of | |||
</t> | "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 <tt>ChapString</tt> element (<xref target="chapstring-element"/>) cor responds to a tag with the <tt>TagChapterUID</tt> (<xref target="tagchapteruid-e lement"/>) set to the same chapter UID, a <tt>TagName</tt> of <tt>TITLE</tt> (<x ref target="tagname-element"/>), and a <tt>TagLanguage</tt> (<xref target="tagla nguage-element"/>) or <tt>TagLanguageBCP47</tt> (<xref target="taglanguagebcp47- element"/>) matching the <tt>ChapLanguage</tt> (<xref target="chaplanguage-eleme nt"/>) or <tt>ChapLanguageBCP47</tt> (<xref target="chaplanguagebcp47-element"/> ), respectively.</t> | |||
</li> | </li> | |||
<li><t>The FileDescription Element (<xref target="filedescription-element"></xre | <li><t>The <tt>FileDescription</tt> element (<xref target="filedescription-eleme | |||
f>) of an attachment corresponds to a tag with the TagAttachmentUID (<xref targe | nt"/>) of an attachment corresponds to a tag with the <tt>TagAttachmentUID</tt> | |||
t="tagattachmentuid-element"></xref>) set to the given attachment, a TagName of | (<xref target="tagattachmentuid-element"/>) set to the given attachment, a <tt>T | |||
<tt>TITLE</tt> (<xref target="tagname-element"></xref>) and a TagLanguage (<xref | agName</tt> of <tt>TITLE</tt> (<xref target="tagname-element"/>), and a <tt>TagL | |||
target="taglanguage-element"></xref>) or TagLanguageBCP47 (<xref target="taglan | anguage</tt> (<xref target="taglanguage-element"/>) or <tt>TagLanguageBCP47</tt> | |||
guagebcp47-element"></xref>) of "und".</t> | (<xref target="taglanguagebcp47-element"/>) 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 a tag value <tt> | |||
t> for that track in a Matroska Segment, the Tag string <bcp14>SHOULD</bcp14> be | TITLE</tt> for that track in a Matroska <tt>Segment</tt>, the tag value string < | |||
used and not the <tt>TrackEntry\Name</tt> string to identify the track.</t> | bcp14>SHOULD</bcp14> be used instead of the <tt>TrackEntry\Name</tt> string to i | |||
<t>As the Tag element is optional, a lot of <tt>Matroska Readers</tt> do not han | dentify the track.</t> | |||
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 | |||
So for maximum compatibility, it's usually better to put the strings in the <tt> | handle it and will not use the tags value when it's found. Thus, for maximum | |||
TrackEntry</tt>, <tt>ChapterAtom</tt> and <tt>Attachment</tt> | compatibility, it's usually better to put the strings in the | |||
<tt>TrackEntry</tt>, <tt>ChapterAtom</tt>, and <tt>Attachments</tt> elements | ||||
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"/>). | |||
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"/>) or an empty <tt | |||
ty <tt>TagBinary</tt> (<xref target="tagbinary-element"></xref>) element <bcp14> | >TagBinary</tt> (<xref target="tagbinary-element"/>) <bcp14>MUST</bcp14> be used | |||
MUST</bcp14> be used as the tag value for this level.</t> | 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"/> for more details on common tag name | |||
types and descriptions.</t> | s, 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</tt> elemen | |||
> contains no more than | t 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 | <t>It is <bcp14>RECOMMENDED</bcp14> that the first <tt>SeekHead</tt> element be | |||
followed by a <tt>Void Element</tt> to | followed by a <tt>Void</tt> element to | |||
allow for the <tt>SeekHead Element</tt> to be expanded to cover new <tt>Top-Leve | allow for the <tt>SeekHead</tt> element to be expanded to cover new <tt>Top-Leve | |||
l Elements</tt> | l Elements</tt> | |||
that could be added to the Matroska file, such as <tt>Tags</tt>, <tt>Chapters</t | that could be added to the Matroska file, such as <tt>Tags</tt>, <tt>Chapters</t | |||
t>, and <tt>Attachments</tt> Elements.</t> | t>, and <tt>Attachments</tt> elements.</t> | |||
<t>The size of this <tt>Void Element</tt> should be adjusted depending on the Ma | <t>The size of this <tt>Void</tt> element should be adjusted depending on the <t | |||
troska file already having | t>Tags</tt>, | |||
<tt>Tags</tt>, <tt>Chapters</tt>, and <tt>Attachments</tt> Elements.</t> | <tt>Chapters</tt>, and <tt>Attachments</tt> elements in the Matroska file.</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><tt>SeekHead</tt></li> | |||
<li>Info</li> | <li><tt>Info</tt></li> | |||
<li>Tracks</li> | <li><tt>Tracks</tt></li> | |||
<li>Chapters</li> | <li><tt>Chapters</tt></li> | |||
<li>Attachments</li> | <li><tt>Attachments</tt></li> | |||
<li>Tags</li> | <li><tt>Tags</tt></li> | |||
<li>Clusters</li> | <li><tt>Clusters</tt></li> | |||
<li>Cues</li> | <li><tt>Cues</tt></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><tt>SeekHead</tt></li> | |||
<li>Info</li> | <li><tt>Info</tt></li> | |||
<li>Tracks</li> | <li><tt>Tracks</tt></li> | |||
<li>Chapters</li> | <li><tt>Chapters</tt></li> | |||
<li>Attachments</li> | <li><tt>Attachments</tt></li> | |||
<li>Void</li> | <li><tt>Void</tt></li> | |||
<li>Clusters</li> | <li><tt>Clusters</tt></li> | |||
<li>Cues</li> | <li><tt>Cues</tt></li> | |||
<li>Tags</li> | <li><tt>Tags</tt></li> | |||
</ul> | </ul> | |||
</section> | </section> | |||
<section anchor="optimum-layout-with-cues-at-the-front"><name>Optimum layout wit | <section anchor="optimum-layout-with-cues-at-the-front"><name>Optimum Layout wit | |||
h Cues at the front</name> | h Cues at the Front</name> | |||
<t>Cues are usually a big chunk of data referencing a lot of locations in the fi | <t><tt>Cues</tt> are usually a big chunk of data referencing a lot of locations | |||
le. | in the file. | |||
For players that want to seek in the file they need to seek to the end of the fi | Players that want to seek in the file need to seek to the end of the file | |||
le | ||||
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 <tt>Cues</tt> reference locations further in the file, it's often complicated 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><tt>SeekHead</tt></li> | |||
<li>Info</li> | <li><tt>Info</tt></li> | |||
<li>Tracks</li> | <li><tt>Tracks</tt></li> | |||
<li>Chapters</li> | <li><tt>Chapters</tt></li> | |||
<li>Attachments</li> | <li><tt>Attachments</tt></li> | |||
<li>Tags</li> | <li><tt>Tags</tt></li> | |||
<li>Cues</li> | <li><tt>Cues</tt></li> | |||
<li>Clusters</li> | <li><tt>Clusters</tt></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"/>), only a few elements make s | |||
ake sense. SeekHead and Cues are useless for example. | ense. For example, <tt>SeekHead</tt> and <tt>Cues</tt> are useless. | |||
All elements other than the Clusters <bcp14>MUST</bcp14> be placed before the Cl | All elements other than the <tt>Clusters</tt> <bcp14>MUST</bcp14> be placed befo | |||
usters.</t> | re the <tt>Clusters</tt>.</t> | |||
<ul spacing="compact"> | <ul spacing="compact"> | |||
<li>Info</li> | <li><tt>Info</tt></li> | |||
<li>Tracks</li> | <li><tt>Tracks</tt></li> | |||
<li>Attachments (rare)</li> | <li><tt>Attachments</tt> (rare)</li> | |||
<li>Tags</li> | <li><tt>Tags</tt></li> | |||
<li>Clusters</li> | <li><tt>Clusters</tt></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> | |||
<t>Matroska inherits security considerations from EBML.</t> | <t>Matroska inherits security considerations from EBML <xref target="RFC8794"/>. </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 | <li><t>Storage of an arbitrary and potentially executable data within an <tt>Att | |||
achment Element</tt>. | achments</tt> element. | |||
<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 <tt>Matroska Attachments | |||
check that the data adheres to expectations or not use the attachement.</t> | </tt> <bcp14>SHOULD</bcp14> | |||
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 "/>) 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> | |||
<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 | Particular error handling is not covered in this specification, as this is | |||
s on the goal of the <tt>Matroska Readers</tt>. | depends 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 | <tt>Matroska Readers</tt> decide how to handle the errors whether or not they ar | |||
rrors if they are recoverable in their code or not. | e | |||
For example, if the checksum of the <tt>\Segment\Tracks</tt> is invalid some cou | recoverable in their code. | |||
ld decide to try to read the data anyway, | For example, if the checksum of the <tt>\Segment\Tracks</tt> is invalid, some | |||
some will just reject the file, most will not even check it.</t> | could decide to try to read the data anyway, some will just reject the file, | |||
<t><tt>Matroska Reader</tt> implementations need to be robust against malicious | and most will not even check it.</t> | |||
payloads. | <t><tt>Matroska Reader</tt> implementations need to be robust against malicious | |||
Those related to denial of service are outlined in Section 2.1 of [RFC4732].<br | payloads. Those related to denial of service are outlined in <xref target="RFC47 | |||
/> | 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 <tt>Matroska Writer</tt> 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/video 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> | |||
<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>To register a new Element ID in this registry, one needs an Element ID, an | |||
a Change Controller (IETF or email of registrant) and | Element Name, a Change Controller, and an | |||
an optional Reference to a document describing the Element ID.</t> | 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"/> 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"/>, with the changes in <xref target="Err7189"/> and <xref target="Err7191" | |||
<t>One-octet Matroska Element IDs are to be allocated according to the "RFC | />.</t> | |||
Required" policy <xref target="RFC8126"></xref>.</t> | <t>One-octet Matroska Element IDs (range 0x80-0xFE) are to be allocated accordin | |||
<t>Two-octet Matroska Element IDs are to be allocated according to the "Spe | g to the "RFC Required" policy <xref target="RFC8126"/>.</t> | |||
cification Required" policy <xref target="RFC8126"></xref>.</t> | <t>Two-octet Matroska Element IDs (range 0x407F-0x7FFE) are to be allocated acco | |||
<t>Three-octet and four-octet Matroska Element IDs are to be allocated according | rding to the "Specification Required" policy <xref target="RFC8126"/>.</t> | |||
to the "First Come First Served" policy <xref target="RFC8126"></xref | <t>Two-octet Matroska Element IDs between 0x0100 and 0x407E are not valid for | |||
>.</t> | use as an Element ID.</t> | |||
<t>The allowed values in the Elements IDs registry are similar to the ones found | <t>Three-octet (range 0x203FFF-0x3FFFFE) and four-octet Matroska Element IDs (ra | |||
in the EBML Element IDs registry defined in Section 17.1 of <xref target="RFC879 | nge 0x101FFFFF-0x1FFFFFFE) are to be allocated according to the "First Come Firs | |||
4"></xref>.</t> | t Served" policy <xref target="RFC8126"/>.</t> | |||
<t>EBML IDs defined for the EBML Header -- as defined in Section 17.1 of <xref t | <t>Three-octet Matroska Element IDs between 0x010000 and 0x203FFE are not valid | |||
arget="RFC8794"></xref> -- | for use as an Element ID.</t> | |||
<bcp14>MUST NOT</bcp14> be used as Matroska Element IDs.</t> | <t>Four-octet Matroska Element IDs between 0x01000000 and 0x101FFFFE are not val | |||
<t>Given the scarcity of the One-octet Element IDs, they should only be created | id for use as an Element ID.</t> | |||
to save space for elements found many times in a file. | <t>The allowed values in the "Matroska Element IDs" registry are similar to the | |||
For example, within a BlockGroup or Chapters. The Four-octet Element IDs are mos | ones found | |||
tly for synchronization of large elements. | in the "EBML Element IDs" registry defined in <xref target="RFC8794" sectionForm | |||
They should only be used for such high level elements. | at="of" section="17.1"/>.</t> | |||
Elements that are not expected to be used often should use Three-octet Element I | <t>EBML Element IDs defined for the EBML Header -- as defined in <xref target="R | |||
Ds.</t> | FC8794" sectionFormat="of" section="17.1"/> -- <bcp14>MUST NOT</bcp14> be used a | |||
<t>Elements found in <xref target="annex-a-historic-deprecated-elements"></xref> | s Matroska Element IDs.</t> | |||
have an assigned Matroska Element ID for historical reasons. | <t>Given the scarcity of one-octet Element IDs, they should only be created | |||
These elements are not in use and <bcp14>SHOULD NOT</bcp14> be reused unless the | to save space for elements found many times in a file (for example, <tt>BlockGro | |||
re is no other IDs available with the desired size. | up</tt> | |||
Such IDs are considered as <tt>reclaimed</tt> to the IANA registry as they could | or <tt>Chapters</tt>). The four-octet Element IDs are mostly for synchronization | |||
be used for other things in the future.</t> | of | |||
<t>Matroska Element IDs Values found in this document are assigned as initial va | large elements. They should only be used for such high-level elements. | |||
lues as follows:</t> | Elements that are not expected to be used often should use three-octet Element | |||
<table><name>IDs and Names for Matroska Element IDs assigned by this document | IDs.</t> | |||
</name> | <t>Elements found in <xref target="appendix-a-historic-deprecated-elements"/> ha | |||
ve an assigned Matroska Element ID for historical reasons. | ||||
These elements are not in use and <bcp14>SHOULD NOT</bcp14> be reused unless the | ||||
re are no other IDs available with the desired size. | ||||
Such IDs are marked as "Reclaimed" in the "Matroska Element IDs" registry, as th | ||||
ey could be used for other things in the future.</t> | ||||
<t><xref target="iana-table"/> shows the initial contents of the | ||||
"Matroska Element IDs" registry. The Change Controller for the initial | ||||
entries is the IETF.</t> | ||||
<table anchor="iana-table"><name>Initial Contents of "Matroska Element IDs" Regi | ||||
stry</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"/></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"/></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"/></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"/></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"/></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"/>)</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"/></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"/></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"/></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"/>)</t d> | |||
</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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/>)</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"/></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"/></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"/></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"/></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"/></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"/>)</ 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"/></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"/></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"/>)</ 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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/>)</t d> | |||
</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 "/>)</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"/>)</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"/>)</ 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" />)</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"/>)</ 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"/>)< /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"/ >)</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"/>)< /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"/>)</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"/>)</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"/>)</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"/>)</t d> | |||
</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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/>)</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"/></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"/></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"/>) </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"/></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"/></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"/></td> | |||
</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"/></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"/></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"/></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"/></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"/>) | |||
> | </td> | |||
</tr> | ||||
<tr> | ||||
<td align="right">0xFF</td> | ||||
<td align="left">Reserved</td> | ||||
<td align="left">RFC 9559</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">0x0100-0x407E</td> | ||||
<td align="left">Not valid for use as an Element ID</td> | ||||
<td align="left">RFC 9559, <xref target="matroska-element-ids-registry"/></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"/></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"/></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"/></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"/></td> | |||
</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"/></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"/></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"/></td> | |||
</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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/>)< /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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/> )</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"/>)< /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"/></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"/>)</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"/></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"/></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"/></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"/></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"/>) </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"/>)< /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"/>)</ 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"/ >)</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"/></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"/></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"/></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"/></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"/></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"/></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"/></td> | |||
</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"/></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"/></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"/>)</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"/></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"/></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"/>)</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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/>)< /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"/></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"/></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"/></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"/></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"/></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"/></td> | |||
</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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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="color-range-element"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/>)</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"/> )</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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></td> | |||
</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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></ 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"/></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"/>)</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"/>)</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"/></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"/></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"/>)</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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></td> | |||
</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"/></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"/></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"/></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"/>) | |||
> | </td> | |||
</tr> | ||||
<tr> | ||||
<td align="right">0x7FFF</td> | ||||
<td align="left">Reserved</td> | ||||
<td align="left">RFC 9559</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">0x010000-0x203FFE</td> | ||||
<td align="left">Not valid for use as an Element ID</td> | ||||
<td align="left">RFC 9559, <xref target="matroska-element-ids-registry"/></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"/></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"/></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"/></td> | |||
</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"/>< /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"/>)</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"/></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"/></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"/>) </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"/></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"/></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"/>)</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"/>)</t d> | |||
</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"/>)</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"/></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"/></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"/></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"/></td> | |||
</tr> | ||||
<tr> | ||||
<td align="right">0x3FFFFF</td> | ||||
<td align="left">Reserved</td> | ||||
<td align="left">RFC 9559</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">0x01000000-0x101FFFFE</td> | ||||
<td align="left">Not valid for use as an Element ID</td> | ||||
<td align="left">RFC 9559, <xref target="matroska-element-ids-registry"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></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"/></td> | |||
</tr> | ||||
<tr> | ||||
<td align="right">0x1FFFFFFF</td> | ||||
<td align="left">Reserved</td> | ||||
<td align="left">RFC 9559</td> | ||||
</tr> | </tr> | |||
</tbody> | </tbody> | |||
</table></section> | </table> | |||
</section> | ||||
<section anchor="chapter-codec-ids-registry"><name>Chapter Codec IDs Registry</n | <section anchor="matroska-compression-algorithms-registry"><name>Matroska Compre | |||
ame> | ssion Algorithms Registry</name> | |||
<t>This document creates a new IANA registry called the "Matroska Chapter C | <t>IANA has created a new registry called the "Matroska Compression Algorithms" | |||
odec IDs" registry. | registry. | |||
The values correspond to the unsigned integer <tt>ChapProcessCodecID</tt> value | The values correspond to the unsigned integer <tt>ContentCompAlgo</tt> value des | |||
described in <xref target="chapprocesscodecid-element"></xref>.</t> | cribed in <xref target="contentcompalgo-element"/>.</t> | |||
<t>To register a new Chapter Codec ID in this registry, one needs a Chapter Code | <t>To register a new Compression Algorithm in this registry, one needs a Compres | |||
c ID, | sion Algorithm value, | |||
a Change Controller (IETF or email of registrant) and | a description, a Change Controller, and | |||
an optional Reference to a document describing the Chapter Codec ID.</t> | a Reference to a document describing the Compression Algorithm.</t> | |||
<t>The Chapter Codec IDs are to be allocated according to the "First Come F | <t>The Compression Algorithms are to be allocated according to the "Specificatio | |||
irst Served" policy <xref target="RFC8126"></xref>.</t> | n Required" policy <xref target="RFC8126"/>. Available values range from 4-18446 | |||
<t><tt>ChapProcessCodecID</tt> values of "0" and "1" are RES | 744073709551615.</t> | |||
ERVED to the IETF for future use.</t> | <t><xref target="compression-algorithm-registry-table"/> shows the initial conte | |||
nts of the "Matroska Compression Algorithms" registry. | ||||
The Change Controller for the initial entries is the IETF.</t> | ||||
<table anchor="compression-algorithm-registry-table"><name>Initial Contents of " | ||||
Matroska Compression Algorithms" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">Compression Algorithm</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">0</td> | ||||
<td align="left">zlib</td> | ||||
<td align="left">RFC 9559, <xref target="contentcompalgo-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">1</td> | ||||
<td align="left">bzlib</td> | ||||
<td align="left">RFC 9559, <xref target="contentcompalgo-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">2</td> | ||||
<td align="left">lzo1x</td> | ||||
<td align="left">RFC 9559, <xref target="contentcompalgo-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">3</td> | ||||
<td align="left">Header Stripping</td> | ||||
<td align="left">RFC 9559, <xref target="contentcompalgo-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="matroska-encryption-algorithms-registry"><name>Matroska Encrypt | ||||
ion Algorithms Registry</name> | ||||
<t>IANA has created a new registry called the "Matroska Encryption Algorithms" r | ||||
egistry. | ||||
The values correspond to the unsigned integer <tt>ContentEncAlgo</tt> value desc | ||||
ribed in <xref target="contentencalgo-element"/>.</t> | ||||
<t>To register a new Encryption Algorithm in this registry, one needs an Encrypt | ||||
ion Algorithm value, | ||||
a description, a Change Controller, and | ||||
an optional Reference to a document describing the Encryption Algorithm.</t> | ||||
<t>The Encryption Algorithms are to be allocated according to the "First Come Fi | ||||
rst Served" policy <xref target="RFC8126"/>. Available values range from 6-18446 | ||||
744073709551615.</t> | ||||
<t><xref target="encryption-algorithm-registry-table"/> shows the initial conten | ||||
ts of the "Matroska Encryption Algorithms" registry. The Change Controller for t | ||||
he initial entries is the IETF. | ||||
</t> | ||||
<table anchor="encryption-algorithm-registry-table"><name>Initial Contents of "M | ||||
atroska Encryption Algorithms" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">Encryption Algorithm</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">0</td> | ||||
<td align="left">Not encrypted</td> | ||||
<td align="left">RFC 9559, <xref target="contentencalgo-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">1</td> | ||||
<td align="left">DES</td> | ||||
<td align="left">RFC 9559, <xref target="contentencalgo-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">2</td> | ||||
<td align="left">3DES</td> | ||||
<td align="left">RFC 9559, <xref target="contentencalgo-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">3</td> | ||||
<td align="left">Twofish</td> | ||||
<td align="left">RFC 9559, <xref target="contentencalgo-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">4</td> | ||||
<td align="left">Blowfish</td> | ||||
<td align="left">RFC 9559, <xref target="contentencalgo-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">5</td> | ||||
<td align="left">AES</td> | ||||
<td align="left">RFC 9559, <xref target="contentencalgo-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="matroska-aes-cipher-modes-registry"><name>Matroska AES Cipher M | ||||
odes Registry</name> | ||||
<t>IANA has created a new registry called the "Matroska AES Cipher Modes" regist | ||||
ry. | ||||
The values correspond to the unsigned integer <tt>AESSettingsCipherMode</tt> val | ||||
ue described in <xref target="aessettingsciphermode-element"/>.</t> | ||||
<t>To register a new AES Cipher Mode in this registry, one needs an AES Cipher M | ||||
ode value, | ||||
a description, a Change Controller, and | ||||
an optional Reference to a document describing the AES Cipher Mode.</t> | ||||
<t>The AES Cipher Modes are to be allocated according to the "First Come First S | ||||
erved" policy <xref target="RFC8126"/>. Available values range from 3-1844674407 | ||||
3709551615.</t> | ||||
<t>The value 0 is not valid for use as an AES Cipher Mode.</t> | ||||
<t><xref target="aes-cipher-mode-registry-table"/> shows the initial contents of | ||||
the "Matroska AES Cipher Modes" registry. | ||||
The Change Controller for the initial entries is the IETF.</t> | ||||
<table anchor="aes-cipher-mode-registry-table"><name>Initial Contents of "Matros | ||||
ka AES Cipher Modes" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">AES Cipher Mode</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">0</td> | ||||
<td align="left">Not valid for use as an AES Cipher Mode</td> | ||||
<td align="left">RFC 9559, <xref target="aessettingsciphermode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">1</td> | ||||
<td align="left">AES-CTR</td> | ||||
<td align="left">RFC 9559, <xref target="aessettingsciphermode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">2</td> | ||||
<td align="left">AES-CBC</td> | ||||
<td align="left">RFC 9559, <xref target="aessettingsciphermode-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="matroska-content-encoding-scopes-registry"><name>Matroska Conte | ||||
nt Encoding Scopes Registry</name> | ||||
<t>IANA has created a new registry called the "Matroska Content Encoding Scopes" | ||||
registry. | ||||
The values correspond to the unsigned integer <tt>ContentEncodingScope</tt> valu | ||||
e described in <xref target="contentencodingscope-element"/>.</t> | ||||
<t>To register a new Content Encoding Scope in this registry, one needs a Conten | ||||
t Encoding Scope value, | ||||
a description, a Change Controller, and | ||||
a Reference to a document describing the Content Encoding Scope.</t> | ||||
<t>The Content Encoding Scopes are to be allocated according to the "Specificati | ||||
on Required" policy <xref target="RFC8126"/>. Available values range from 0x8-0x | ||||
8000000000000000.</t> | ||||
<t>The Content Encoding Scope is a bit-field value, so only power of 2 values ca | ||||
n be registered.</t> | ||||
<t>The value 0 is not valid for use as a Content Encoding Scope.</t> | ||||
<t><xref target="content-encoding-scope-registry-table"/> shows the initial cont | ||||
ents of the "Matroska Content Encoding Scopes" registry. The Change Controller f | ||||
or the initial entries is the IETF. | ||||
</t> | ||||
<table anchor="content-encoding-scope-registry-table"><name>Initial Contents of | ||||
"Matroska Content Encoding Scopes" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">Content Encoding Scope</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">0x0</td> | ||||
<td align="left">Not valid for use as a Content Encoding Scope</td> | ||||
<td align="left">RFC 9559, <xref target="contentencodingscope-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">0x1</td> | ||||
<td align="left">Block</td> | ||||
<td align="left">RFC 9559, <xref target="contentencodingscope-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">0x2</td> | ||||
<td align="left">Private</td> | ||||
<td align="left">RFC 9559, <xref target="contentencodingscope-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">0x4</td> | ||||
<td align="left">Next</td> | ||||
<td align="left">RFC 9559, <xref target="contentencodingscope-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="matroska-content-encoding-types-registry"><name>Matroska Conten | ||||
t Encoding Types Registry</name> | ||||
<t>IANA has created a new registry called the "Matroska Content Encoding Types" | ||||
registry. | ||||
The values correspond to the unsigned integer <tt>ContentEncodingType</tt> value | ||||
described in <xref target="contentencodingtype-element"/>.</t> | ||||
<t>To register a new Content Encoding Type in this registry, one needs a Content | ||||
Encoding Type value, | ||||
a description, a Change Controller, and | ||||
a Reference to a document describing the Content Encoding Type.</t> | ||||
<t>The Content Encoding Types are to be allocated according to the "Specificatio | ||||
n Required" policy <xref target="RFC8126"/>. Available values range from 2-18446 | ||||
744073709551615.</t> | ||||
<t><xref target="content-encoding-type-registry-table"/> shows the initial conte | ||||
nts of the "Matroska Content Encoding Types" registry. The Change Controller for | ||||
the initial entries is the IETF. | ||||
</t> | ||||
<table anchor="content-encoding-type-registry-table"><name>Initial Contents of " | ||||
Matroska Content Encoding Types" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">Content Encoding Type</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">0</td> | ||||
<td align="left">Compression</td> | ||||
<td align="left">RFC 9559, <xref target="contentencodingtype-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">1</td> | ||||
<td align="left">Encryption</td> | ||||
<td align="left">RFC 9559, <xref target="contentencodingtype-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="matroska-stereo-modes-registry"><name>Matroska Stereo Modes Reg | ||||
istry</name> | ||||
<t>IANA has created a new registry called the "Matroska Stereo Modes" registry. | ||||
The values correspond to the unsigned integer <tt>StereoMode</tt> value describe | ||||
d in <xref target="stereomode-element"/>.</t> | ||||
<t>To register a new Stereo Mode in this registry, one needs a Stereo Mode value | ||||
, | ||||
a description, a Change Controller, and | ||||
a Reference to a document describing the Stereo Mode.</t> | ||||
<t>The Stereo Modes are to be allocated according to the "Specification Required | ||||
" policy <xref target="RFC8126"/>. Available values range from 15-18446744073709 | ||||
551615.</t> | ||||
<t><xref target="stereo-mode-registry-table"/> shows the initial contents of the | ||||
"Matroska Stereo Modes" registry. The Change Controller for the initial entries | ||||
is the IETF. | ||||
</t> | ||||
<table anchor="stereo-mode-registry-table"><name>Initial Contents of "Matroska S | ||||
tereo Modes" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">Stereo Mode</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">0</td> | ||||
<td align="left">mono</td> | ||||
<td align="left">RFC 9559, <xref target="stereomode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">1</td> | ||||
<td align="left">side by side (left eye first)</td> | ||||
<td align="left">RFC 9559, <xref target="stereomode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">2</td> | ||||
<td align="left">top - bottom (right eye is first)</td> | ||||
<td align="left">RFC 9559, <xref target="stereomode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">3</td> | ||||
<td align="left">top - bottom (left eye is first)</td> | ||||
<td align="left">RFC 9559, <xref target="stereomode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">4</td> | ||||
<td align="left">checkboard (right eye is first)</td> | ||||
<td align="left">RFC 9559, <xref target="stereomode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">5</td> | ||||
<td align="left">checkboard (left eye is first)</td> | ||||
<td align="left">RFC 9559, <xref target="stereomode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">6</td> | ||||
<td align="left">row interleaved (right eye is first)</td> | ||||
<td align="left">RFC 9559, <xref target="stereomode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">7</td> | ||||
<td align="left">row interleaved (left eye is first)</td> | ||||
<td align="left">RFC 9559, <xref target="stereomode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">8</td> | ||||
<td align="left">column interleaved (right eye is first)</td> | ||||
<td align="left">RFC 9559, <xref target="stereomode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">9</td> | ||||
<td align="left">column interleaved (left eye is first)</td> | ||||
<td align="left">RFC 9559, <xref target="stereomode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">10</td> | ||||
<td align="left">anaglyph (cyan/red)</td> | ||||
<td align="left">RFC 9559, <xref target="stereomode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">11</td> | ||||
<td align="left">side by side (right eye first)</td> | ||||
<td align="left">RFC 9559, <xref target="stereomode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">12</td> | ||||
<td align="left">anaglyph (green/magenta)</td> | ||||
<td align="left">RFC 9559, <xref target="stereomode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">13</td> | ||||
<td align="left">both eyes laced in one Block (left eye is first)</td> | ||||
<td align="left">RFC 9559, <xref target="stereomode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">14</td> | ||||
<td align="left">both eyes laced in one Block (right eye is first)</td> | ||||
<td align="left">RFC 9559, <xref target="stereomode-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="matroska-alpha-modes-registry"><name>Matroska Alpha Modes Regis | ||||
try</name> | ||||
<t>IANA has created a new registry called the "Matroska Alpha Modes" registry. | ||||
The values correspond to the unsigned integer <tt>AlphaMode</tt> value described | ||||
in <xref target="alphamode-element"/>.</t> | ||||
<t>To register a new Alpha Mode in this registry, one needs an Alpha Mode value, | ||||
a description, a Change Controller, and | ||||
an optional Reference to a document describing the Alpha Mode.</t> | ||||
<t>The Alpha Modes are to be allocated according to the "First Come First Served | ||||
" policy <xref target="RFC8126"/>. Available values range from 2-184467440737095 | ||||
51615.</t> | ||||
<t><xref target="alpha-mode-registry-table"/> shows the initial contents of the | ||||
"Matroska Alpha Modes" registry. The Change Controller for the initial entries i | ||||
s the IETF. | ||||
</t> | ||||
<table anchor="alpha-mode-registry-table"><name>Initial Contents of "Matroska Al | ||||
pha Modes" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">Alpha Mode</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">0</td> | ||||
<td align="left">none</td> | ||||
<td align="left">RFC 9559, <xref target="alphamode-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">1</td> | ||||
<td align="left">present</td> | ||||
<td align="left">RFC 9559, <xref target="alphamode-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="matroska-display-units-registry"><name>Matroska Display Units R | ||||
egistry</name> | ||||
<t>IANA has created a new registry called the "Matroska Display Units" registry. | ||||
The values correspond to the unsigned integer <tt>DisplayUnit</tt> value describ | ||||
ed in <xref target="displayunit-element"/>.</t> | ||||
<t>To register a new Display Unit in this registry, one needs a Display Unit val | ||||
ue, | ||||
a description, a Change Controller, and | ||||
a Reference to a document describing the Display Unit.</t> | ||||
<t>The Display Units are to be allocated according to the "Specification Require | ||||
d" policy <xref target="RFC8126"/>. Available values range from 5-18446744073709 | ||||
551615.</t> | ||||
<t><xref target="display-unit-registry-table"/> shows the initial contents of th | ||||
e "Matroska Display Units" registry. The Change Controller for the initial entri | ||||
es is the IETF. | ||||
</t> | ||||
<table anchor="display-unit-registry-table"><name>Initial Contents of "Matroska | ||||
Display Units" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">Display Unit</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">0</td> | ||||
<td align="left">pixels</td> | ||||
<td align="left">RFC 9559, <xref target="displayunit-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">1</td> | ||||
<td align="left">centimeters</td> | ||||
<td align="left">RFC 9559, <xref target="displayunit-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">2</td> | ||||
<td align="left">inches</td> | ||||
<td align="left">RFC 9559, <xref target="displayunit-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">3</td> | ||||
<td align="left">display aspect ratio</td> | ||||
<td align="left">RFC 9559, <xref target="displayunit-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">4</td> | ||||
<td align="left">unknown</td> | ||||
<td align="left">RFC 9559, <xref target="displayunit-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="matroska-horizontal-chroma-sitings-registry"><name>Matroska Hor | ||||
izontal Chroma Sitings Registry</name> | ||||
<t>IANA has created a new registry called the "Matroska Horizontal Chroma Siting | ||||
s" registry. | ||||
The values correspond to the unsigned integer <tt>ChromaSitingHorz</tt> value de | ||||
scribed in <xref target="chromasitinghorz-element"/>.</t> | ||||
<t>To register a new Horizontal Chroma Siting in this registry, one needs a Hori | ||||
zontal Chroma Siting value, | ||||
a description, a Change Controller, and | ||||
an optional Reference to a document describing the Horizontal Chroma Siting.</t> | ||||
<t>The Horizontal Chroma Sitings are to be allocated according to the "First Com | ||||
e First Served" policy <xref target="RFC8126"/>. Available values range from 3-1 | ||||
8446744073709551615.</t> | ||||
<t><xref target="horizontal-chroma-siting-registry-table"/> shows the initial co | ||||
ntents of the "Matroska Horizontal Chroma Sitings" registry. | ||||
The Change Controller for the initial entries is the IETF.</t> | ||||
<table anchor="horizontal-chroma-siting-registry-table"><name>Initial Contents o | ||||
f "Matroska Horizontal Chroma Sitings" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">Horizontal Chroma Siting</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">0</td> | ||||
<td align="left">unspecified</td> | ||||
<td align="left">RFC 9559, <xref target="chromasitinghorz-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">1</td> | ||||
<td align="left">left collocated</td> | ||||
<td align="left">RFC 9559, <xref target="chromasitinghorz-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">2</td> | ||||
<td align="left">half</td> | ||||
<td align="left">RFC 9559, <xref target="chromasitinghorz-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="matroska-vertical-chroma-sitings-registry"><name>Matroska Verti | ||||
cal Chroma Sitings Registry</name> | ||||
<t>IANA has created a new registry called the "Matroska Vertical Chroma Sitings" | ||||
registry. | ||||
The values correspond to the unsigned integer <tt>ChromaSitingVert</tt> value de | ||||
scribed in <xref target="chromasitingvert-element"/>.</t> | ||||
<t>To register a new Vertical Chroma Siting in this registry, one needs a Vertic | ||||
al Chroma Siting value, | ||||
a description, a Change Controller, and | ||||
an optional Reference to a document describing the Vertical Chroma Siting.</t> | ||||
<t>The Vertical Chroma Sitings are to be allocated according to the "First Come | ||||
First Served" policy <xref target="RFC8126"/>. Available values range from 3-184 | ||||
46744073709551615.</t> | ||||
<t><xref target="vertical-chroma-siting-registry-table"/> shows the initial cont | ||||
ents of the "Matroska Vertical Chroma Sitings" registry. | ||||
The Change Controller for the initial entries is the IETF.</t> | ||||
<table anchor="vertical-chroma-siting-registry-table"><name>Initial Contents of | ||||
"Matroska Vertical Chroma Sitings" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">Vertical Chroma Siting</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">0</td> | ||||
<td align="left">unspecified</td> | ||||
<td align="left">RFC 9559, <xref target="chromasitingvert-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">1</td> | ||||
<td align="left">top collocated</td> | ||||
<td align="left">RFC 9559, <xref target="chromasitingvert-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">2</td> | ||||
<td align="left">half</td> | ||||
<td align="left">RFC 9559, <xref target="chromasitingvert-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="matroska-color-ranges-registry"><name>Matroska Color Ranges Reg | ||||
istry</name> | ||||
<t>IANA has created a new registry called the "Matroska Color Ranges" registry. | ||||
The values correspond to the unsigned integer <tt>Range</tt> value described in | ||||
<xref target="color-range-element"/>.</t> | ||||
<t>To register a new Color Range in this registry, one needs a Color Range value | ||||
, | ||||
a description, a Change Controller, and | ||||
a Reference to a document describing the Color Range.</t> | ||||
<t>The Color Ranges are to be allocated according to the "Specification Required | ||||
" policy <xref target="RFC8126"/>. Available values range from 4-184467440737095 | ||||
51615.</t> | ||||
<t><xref target="color-range-registry-table"/> shows the initial contents of the | ||||
"Matroska Color Ranges" registry. The Change Controller for the initial entries | ||||
is the IETF. | ||||
</t> | ||||
<table anchor="color-range-registry-table"><name>Initial Contents of "Matroska C | ||||
olor Ranges" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">Color Range</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">0</td> | ||||
<td align="left">unspecified</td> | ||||
<td align="left">RFC 9559, <xref target="color-range-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">1</td> | ||||
<td align="left">broadcast range</td> | ||||
<td align="left">RFC 9559, <xref target="color-range-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">2</td> | ||||
<td align="left">full range (no clipping)</td> | ||||
<td align="left">RFC 9559, <xref target="color-range-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">3</td> | ||||
<td align="left">defined by MatrixCoefficients / TransferCharacteristics</td> | ||||
<td align="left">RFC 9559, <xref target="color-range-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="matroska-tags-target-types-registry"><name>Matroska Tags Target | ||||
Types Registry</name> | ||||
<t>IANA has created a new registry called the "Matroska Tags Target Types" regis | ||||
try. | ||||
The values correspond to the unsigned integer <tt>TargetTypeValue</tt> value des | ||||
cribed in <xref target="targettypevalue-element"/>.</t> | ||||
<t>To register a new Tags Target Type in this registry, one needs a Tags Target | ||||
Type value, | ||||
a description, a Change Controller, and | ||||
a Reference to a document describing the Tags Target Type.</t> | ||||
<t>The Tags Target Types are to be allocated according to the "Specification Req | ||||
uired" policy <xref target="RFC8126"/>. Available values range from 1-9, 11-19, | ||||
21-29, 31-39, 41-49, 51-59, 61-69, and 71-18446744073709551615.</t> | ||||
<t>The value 0 is not valid for use as a Tags Target Type.</t> | ||||
<t><xref target="tags-target-type-registry-table"/> shows the initial contents o | ||||
f the "Matroska Tags Target Types" registry. The Change Controller for the initi | ||||
al entries is the IETF. | ||||
</t> | ||||
<table anchor="tags-target-type-registry-table"><name>Initial Contents of "Matro | ||||
ska Tags Target Types" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">Tags Target Type</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">70</td> | ||||
<td align="left">COLLECTION</td> | ||||
<td align="left">RFC 9559, <xref target="targettypevalue-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">60</td> | ||||
<td align="left">EDITION / ISSUE / VOLUME / OPUS / SEASON / SEQUEL</td> | ||||
<td align="left">RFC 9559, <xref target="targettypevalue-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">50</td> | ||||
<td align="left">ALBUM / OPERA / CONCERT / MOVIE / EPISODE</td> | ||||
<td align="left">RFC 9559, <xref target="targettypevalue-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">40</td> | ||||
<td align="left">PART / SESSION</td> | ||||
<td align="left">RFC 9559, <xref target="targettypevalue-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">30</td> | ||||
<td align="left">TRACK / SONG / CHAPTER</td> | ||||
<td align="left">RFC 9559, <xref target="targettypevalue-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">20</td> | ||||
<td align="left">SUBTRACK / MOVEMENT / SCENE</td> | ||||
<td align="left">RFC 9559, <xref target="targettypevalue-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">10</td> | ||||
<td align="left">SHOT</td> | ||||
<td align="left">RFC 9559, <xref target="targettypevalue-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">0</td> | ||||
<td align="left">Not valid for use as a Tags Target Type</td> | ||||
<td align="left">RFC 9559, <xref target="targettypevalue-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="matroska-chapter-codec-ids-registry"><name>Matroska Chapter Cod | ||||
ec IDs Registry</name> | ||||
<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>, <tt>C | ||||
hapterTranslateCodec</tt>, and <tt>TrackTranslateCodec</tt> values described in | ||||
<xref target="chapprocesscodecid-element"/>.</t> | ||||
<t>To register a new Chapter Codec ID in this registry, one needs a Chapter Code | ||||
c ID value, | ||||
a description, a Change Controller, and | ||||
a Reference to a document describing the Chapter Codec ID.</t> | ||||
<t>The Chapter Codec IDs are to be allocated according to the "Specification Req | ||||
uired" policy <xref target="RFC8126"/>. Available values range from 2-1844674407 | ||||
3709551615.</t> | ||||
<t><xref target="chapter-codec-id-registry-table"/> shows the initial contents o | ||||
f the "Matroska Chapter Codec IDs" registry. The Change Controller for the initi | ||||
al entries is the IETF. | ||||
</t> | ||||
<table anchor="chapter-codec-id-registry-table"><name>Initial Contents of "Matro | ||||
ska Chapter Codec IDs" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">Chapter Codec ID</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">0</td> | ||||
<td align="left">Matroska Script</td> | ||||
<td align="left">RFC 9559, <xref target="chapprocesscodecid-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">1</td> | ||||
<td align="left">DVD-menu</td> | ||||
<td align="left">RFC 9559, <xref target="chapprocesscodecid-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="matroska-projection-types-registry"><name>Matroska Projection T | ||||
ypes Registry</name> | ||||
<t>IANA has created a new registry called the "Matroska Projection Types" regist | ||||
ry. | ||||
The values correspond to the unsigned integer <tt>ProjectionType</tt> value desc | ||||
ribed in <xref target="projectiontype-element"/>.</t> | ||||
<t>To register a new Projection Type in this registry, one needs a Projection Ty | ||||
pe value, | ||||
a description, a Change Controller, and | ||||
an optional Reference to a document describing the Projection Type.</t> | ||||
<t>The Projection Types are to be allocated according to the "First Come First S | ||||
erved" policy <xref target="RFC8126"/>. Available values range from 4-1844674407 | ||||
3709551615.</t> | ||||
<t><xref target="projection-type-registry-table"/> shows the initial contents of | ||||
the "Matroska Projection Types" registry. The Change Controller for the initial | ||||
entries is the IETF. | ||||
</t> | ||||
<table anchor="projection-type-registry-table"><name>Initial Contents of "Matros | ||||
ka Projection Types" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">Projection Type</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">0</td> | ||||
<td align="left">rectangular</td> | ||||
<td align="left">RFC 9559, <xref target="projectiontype-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">1</td> | ||||
<td align="left">equirectangular</td> | ||||
<td align="left">RFC 9559, <xref target="projectiontype-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">2</td> | ||||
<td align="left">cubemap</td> | ||||
<td align="left">RFC 9559, <xref target="projectiontype-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">3</td> | ||||
<td align="left">mesh</td> | ||||
<td align="left">RFC 9559, <xref target="projectiontype-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="matroska-track-types-registry"><name>Matroska Track Types Regis | ||||
try</name> | ||||
<t>IANA has created a new registry called the "Matroska Track Types" registry. | ||||
The values correspond to the unsigned integer <tt>TrackType</tt> value described | ||||
in <xref target="tracktype-element"/>.</t> | ||||
<t>To register a new Track Type in this registry, one needs a Track Type value, | ||||
a description, a Change Controller, and | ||||
a Reference to a document describing the Track Type.</t> | ||||
<t>The Track Types are to be allocated according to the "Specification Required" | ||||
policy <xref target="RFC8126"/>. Available values range from 4-15, 19-31, and 3 | ||||
4-18446744073709551615.</t> | ||||
<t>The value 0 is not valid for use as a Track Type.</t> | ||||
<t><xref target="track-type-registry-table"/> shows the initial contents of the | ||||
"Matroska Track Types" registry. | ||||
The Change Controller for the initial entries is the IETF.</t> | ||||
<table anchor="track-type-registry-table"><name>Initial Contents of "Matroska Tr | ||||
ack Types" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">Track Type</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">0</td> | ||||
<td align="left">Not valid for use as a Track Type</td> | ||||
<td align="left">RFC 9559, <xref target="tracktype-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">1</td> | ||||
<td align="left">video</td> | ||||
<td align="left">RFC 9559, <xref target="tracktype-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">2</td> | ||||
<td align="left">audio</td> | ||||
<td align="left">RFC 9559, <xref target="tracktype-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">3</td> | ||||
<td align="left">complex</td> | ||||
<td align="left">RFC 9559, <xref target="tracktype-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">16</td> | ||||
<td align="left">logo</td> | ||||
<td align="left">RFC 9559, <xref target="tracktype-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">17</td> | ||||
<td align="left">subtitle</td> | ||||
<td align="left">RFC 9559, <xref target="tracktype-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">18</td> | ||||
<td align="left">buttons</td> | ||||
<td align="left">RFC 9559, <xref target="tracktype-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">32</td> | ||||
<td align="left">control</td> | ||||
<td align="left">RFC 9559, <xref target="tracktype-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">33</td> | ||||
<td align="left">metadata</td> | ||||
<td align="left">RFC 9559, <xref target="tracktype-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="matroska-track-plane-types-registry"><name>Matroska Track Plane | ||||
Types Registry</name> | ||||
<t>IANA has created a new registry called the "Matroska Track Plane Types" regis | ||||
try. | ||||
The values correspond to the unsigned integer <tt>TrackPlaneType</tt> value desc | ||||
ribed in <xref target="trackplanetype-element"/>.</t> | ||||
<t>To register a new Track Plane Type in this registry, one needs a Track Plane | ||||
Type value, | ||||
a description, a Change Controller, and | ||||
an optional Reference to a document describing the Track Plane Type.</t> | ||||
<t>The Track Plane Types are to be allocated according to the "First Come First | ||||
Served" policy <xref target="RFC8126"/>. Available values range from 3-184467440 | ||||
73709551615.</t> | ||||
<t><xref target="track-plane-type-registry-table"/> shows the initial contents o | ||||
f the "Matroska Track Plane Types" registry. | ||||
The Change Controller for the initial entries is the IETF.</t> | ||||
<table anchor="track-plane-type-registry-table"><name>Initial Contents of "Matro | ||||
ska Track Plane Types" Registry</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="right">Track Plane Type</th> | ||||
<th align="left">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="right">0</td> | ||||
<td align="left">left eye</td> | ||||
<td align="left">RFC 9559, <xref target="trackplanetype-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">1</td> | ||||
<td align="left">right eye</td> | ||||
<td align="left">RFC 9559, <xref target="trackplanetype-element"/></td> | ||||
</tr> | ||||
<tr> | ||||
<td align="right">2</td> | ||||
<td align="left">background</td> | ||||
<td align="left">RFC 9559, <xref target="trackplanetype-element"/></td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</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, | <t>Matroska files and streams are found in three main forms: audio-video, | |||
audio-only and occasionally with stereoscopic video tracks.</t> | audio-only, and (occasionally) stereoscopic video.</t> | |||
<t>Historically Matroska files and streams have used the following media types w | <t>Historically, Matroska files and streams have used the following media types | |||
ith a "x-" prefix. | with an "x-" prefix. | |||
For better compatibility a system <bcp14>SHOULD</bcp14> be able to handle both f | For better compatibility, a system <bcp14>SHOULD</bcp14> be able to handle both | |||
ormats. | formats. | |||
Newer systems <bcp14>SHOULD NOT</bcp14> use the historic format and use the form | 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> | at that follows the format in <xref target="RFC6838"/> instead.</t> | |||
<t>Please register three media types, the <xref target="RFC6838"></xref> templat | <t>IANA has registered three media types per the templates (see <xref target="RF | |||
es are below:</t> | C6838"/>) in the following subsections.</t> | |||
<section anchor="for-files-containing-video-tracks"><name>For files containing v ideo tracks</name> | <section anchor="for-files-containing-video-tracks"><name>For Files Containing V ideo Tracks</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</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"/> 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, etc.</dd> | |||
<dt>Fragment identifier considerations:</dt> | <dt>Fragment identifier considerations:</dt> | |||
<dd>N/A</dd> | <dd><t>N/A</t></dd> | |||
</dl> | <dt>Additional information:</dt> | |||
<t>Additional information:</t> | <dd><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"/> 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, etc.</dd> | |||
<dt>Fragment identifier considerations:</dt> | <dt>Fragment identifier considerations:</dt> | |||
<dd>N/A</dd> | <dd>N/A</dd> | |||
</dl> | ||||
<t>Additional information:</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> | ||||
<dt>Additional information:</dt> | ||||
<dd><t><br/></t> | ||||
<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> | ||||
<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"/> 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, etc.</dd> | |||
<dt>Fragment identifier considerations:</dt> | <dt>Fragment identifier considerations:</dt> | |||
<dd>N/A</dd> | <dd>N/A</dd> | |||
</dl> | ||||
<t>Additional information:</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> | ||||
<dt>Additional information:</dt> | ||||
<dd><t><br/></t> | ||||
<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> | ||||
<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> | <back> | |||
<t>As Matroska evolved since 2002 many parts that were considered for use in the | ||||
format were never | <displayreference target="I-D.ietf-cellar-codec" to="MatroskaCodec"/> | |||
used and often incorrectly designed. Many of the elements that were then defined | <displayreference target="I-D.ietf-cellar-tags" to="MatroskaTags"/> | |||
are not | <references><name>References</name> | |||
<references><name>Normative References</name> | ||||
<reference anchor="CIE-1931" target="https://en.wikipedia.org/w/index.php?title | ||||
=CIE_1931_color_space&oldid=1242811504"> | ||||
<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 year="2018" month="June"></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.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.9562.xml" | ||||
/> | ||||
<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.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="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="2023" 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>Smooth FF/RW</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="Err7189" target="https://www.rfc-editor.org/errata/eid7189" q | ||||
uote-title="false"> | ||||
<front> | ||||
<title>Erratum ID 7189</title> | ||||
<author> | ||||
<organization>RFC Errata</organization> | ||||
</author> | ||||
</front> | ||||
<refcontent>RFC 8794</refcontent> | ||||
</reference> | ||||
<reference anchor="Err7191" target="https://www.rfc-editor.org/errata/eid7191" q | ||||
uote-title="false"> | ||||
<front> | ||||
<title>Erratum ID 7191</title> | ||||
<author> | ||||
<organization>RFC Errata</organization> | ||||
</author> | ||||
</front> | ||||
<refcontent>RFC 8794</refcontent> | ||||
</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> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cel | ||||
lar-codec.xml"/> | ||||
<xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cel | ||||
lar-tags.xml"/> | ||||
<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-T</organization> | ||||
</author> | ||||
<date year="1992" month="September"></date> | ||||
</front> | ||||
<seriesInfo name="ITU-T 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</titl | ||||
e> | ||||
<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 year="2021" month="June"></date> | ||||
</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 year="2022" month="November"></date> | ||||
</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 year="2021" month="January"></date> | ||||
</front> | ||||
</reference> | ||||
<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.4732.xml" | ||||
/> | ||||
<xi:include href="https://bib.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>[MS-CIFS]: Common Internet File System (CIFS) Protocol</title> | ||||
<author> | ||||
<organization>Microsoft Corporation</organization> | ||||
</author> | ||||
<date year="2020" month="October"></date> | ||||
</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"></seriesInfo> | ||||
</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"></seriesInfo> | ||||
</reference> | ||||
<reference anchor="Twofish" target="https://www.schneier.com/academic/archives/1 | ||||
998/06/twofish_a_128-bit_bl.html"> | ||||
<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> | ||||
<reference anchor="libmatroska" target="https://github.com/Matroska-Org/libmatro | ||||
ska"> | ||||
<front> | ||||
<title>libmatroska</title> | ||||
<author></author> | ||||
<date year="2024" month="March"></date> | ||||
</front> | ||||
</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 <tt>Cluster</tt>.< | |||
/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> | |||
<dd><tt>\Segment\Cluster\BlockGroup\BlockVirtual</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\BlockVirtual</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>A Block with no data. It must be stored in the stream at the place the real Block would be in display order.</dd> | <dd>A <tt>Block</tt> with no data. It must be stored in the stream at the place the real <tt>Block</tt> would be in display order.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="referencevirtual-element"><name>ReferenceVirtual Element</name> | <section anchor="referencevirtual-element"><name>ReferenceVirtual Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>integer / 0xFD</dd> | <dd>integer / 0xFD</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\ReferenceVirtual</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\ReferenceVirtual</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The Segment Position of the data that would otherwise be in position of the virtual block.</dd> | <dd>The <tt>Segment Position</tt> of the data that would otherwise be in positio n of the virtual block.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="slices-element"><name>Slices Element</name> | <section anchor="slices-element"><name>Slices Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>master / 0x8E</dd> | <dd>master / 0x8E</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\Slices</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\Slices</tt></dd> | |||
skipping to change at line 9489 ¶ | skipping to change at line 11052 ¶ | |||
</section> | </section> | |||
<section anchor="timeslice-element"><name>TimeSlice Element</name> | <section anchor="timeslice-element"><name>TimeSlice Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>master / 0xE8</dd> | <dd>master / 0xE8</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\Slices\TimeSlice</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\Slices\TimeSlice</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>Contains extra time information about the data contained in the Block. | <dd>Contains extra time information about the data contained in the <tt>Block</t | |||
Being able to interpret this Element is not required for playback.</dd> | t>. | |||
Being able to interpret this element is not required for playback.</dd> | ||||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="lacenumber-element"><name>LaceNumber Element</name> | <section anchor="lacenumber-element"><name>LaceNumber Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0xCC</dd> | <dd>uinteger / 0xCC</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\Slices\TimeSlice\LaceNumber</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\Slices\TimeSlice\LaceNumber</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The reverse number of the frame in the lace (0 is the last frame, 1 is the n ext to last, etc.). | <dd>The reverse number of the frame in the lace (0 is the last frame, 1 is the n ext to last, etc.). | |||
Being able to interpret this Element is not required for playback.</dd> | Being able to interpret this element is not required for playback.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<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> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The ID of the BlockAdditional Element (0 is the main Block).</dd> | <dd>The ID of the <tt>BlockAdditional</tt> element (0 is the main <tt>Block</tt> | |||
).</dd> | ||||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="delay-element"><name>Delay Element</name> | <section anchor="delay-element"><name>Delay Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0xCE</dd> | <dd>uinteger / 0xCE</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\Slices\TimeSlice\Delay</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\Slices\TimeSlice\Delay</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The delay to apply to the Element, expressed in Track Ticks; see <xref targe t="timestamp-ticks"></xref>.</dd> | <dd>The delay to apply to the element, expressed in Track Ticks; see <xref targe t="timestamp-ticks"/>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="sliceduration-element"><name>SliceDuration Element</name> | <section anchor="sliceduration-element"><name>SliceDuration Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0xCF</dd> | <dd>uinteger / 0xCF</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\Slices\TimeSlice\SliceDuration</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\Slices\TimeSlice\SliceDuration</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The duration to apply to the Element, expressed in Track Ticks; see <xref ta rget="timestamp-ticks"></xref>.</dd> | <dd>The duration to apply to the element, expressed in Track Ticks; see <xref ta rget="timestamp-ticks"/>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="referenceframe-element"><name>ReferenceFrame Element</name> | <section anchor="referenceframe-element"><name>ReferenceFrame Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>master / 0xC8</dd> | <dd>master / 0xC8</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cluster\BlockGroup\ReferenceFrame</tt></dd> | <dd><tt>\Segment\Cluster\BlockGroup\ReferenceFrame</tt></dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>Contains information about the last reference frame. See <xref target="DivXT rickTrack"></xref>.</dd> | <dd>Contains information about the last reference frame. See <xref target="DivXT rickTrack"/>.</dd> | |||
</dl> | </dl> | |||
</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 <tt>BlockGroup</tt> element | |||
Smooth FF/RW video track to the containing BlockGroup element. See <xref target | for this Smooth FF/RW video track to the containing <tt>BlockGroup</tt> | |||
="DivXTrickTrack"></xref>.</dd> | element. See <xref target="DivXTrickTrack"/>.</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 Track Ticks; see <xref target="timestamp-ticks"></xref>. See <xref target="DivXT rickTrack"></xref>.</dd> | <dd>The timestamp of the <tt>BlockGroup</tt> pointed to by ReferenceOffset, expr essed in Track Ticks; see <xref target="timestamp-ticks"/>. See <xref target="Di vXTrickTrack"/>.</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 <tt>SimpleBlock</tt> (see <xref target="simpleblock-structure"/>) | |||
but the data inside the Block are Transformed (encrypt and/or signed).</dd> | , | |||
but the data inside the <tt>Block</tt> 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 11205 ¶ | |||
</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. , in nanoseconds; see <xref target="timestamp-ticks"></xref>. | <dd>A value to add to the <tt>Block</tt>'s Timestamp, expressed in Matroska Tick s -- i.e., in nanoseconds; see <xref target="timestamp-ticks"/>. | |||
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 11242 ¶ | |||
</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> | |||
<dd>A URL to download about the codec used.</dd> | <dd>A URL to download information 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> | |||
<dd><tt>\Segment\Tracks\TrackEntry\CodecDecodeAll</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\CodecDecodeAll</tt></dd> | |||
skipping to change at line 9700 ¶ | skipping to change at line 11266 ¶ | |||
</section> | </section> | |||
<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 | <dd>Specify that this track is an overlay track for the <tt>Track</tt> specified | |||
u-integer). | (in the u-integer). | |||
That means when this track has a gap on SilentTracks, | This means that when this track has a gap on <tt>SilentTracks</tt>, the overlay | |||
the overlay track should be used instead. The order of multiple TrackOverlay mat | track should be used instead. The order of multiple <tt>TrackOverlay</tt> matter | |||
ters, the first one is the one that should be used. | s; the first one is 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> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>Specify the possible modifications to the aspect ratio.</dd> | <dd>Specifies the possible modifications to the aspect ratio.</dd> | |||
</dl> | </dl> | |||
</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 <tt>TrackEntry</tt>.</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 11329 ¶ | |||
</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 nding to this video track. See <xref target="DivXTrickTrack"></xref>.</dd> | <dd>The <tt>TrackUID</tt> of the Smooth FF/RW video in the paired EBML structure corresponding to this video track. See <xref target="DivXTrickTrack"/>.</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> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The SegmentUID of the Segment containing the track identified by TrickTrackU ID. See <xref target="DivXTrickTrack"></xref>.</dd> | <dd>The <tt>SegmentUUID</tt> of the <tt>Segment</tt> containing the track identi fied by TrickTrackUID. See <xref target="DivXTrickTrack"/>.</dd> | |||
</dl> | </dl> | |||
</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, <tt>Maste | |||
ckUID and MasterTrackSegUID should be present and BlockGroups for this track mus | rTrackUID</tt> and <tt>MasterTrackSegUID</tt> should be present, and | |||
t contain ReferenceFrame structures. | <tt>BlockGroups</tt> 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 target="DivXTrickTrack"/>.</dd> | |||
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 s to this Smooth FF/RW track. See <xref target="DivXTrickTrack"></xref>.</dd> | <dd>The <tt>TrackUID</tt> of the video track in the paired EBML structure that c orresponds to this Smooth FF/RW track. See <xref target="DivXTrickTrack"/>.</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> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The SegmentUID of the Segment containing the track identified by MasterTrack UID. See <xref target="DivXTrickTrack"></xref>.</dd> | <dd>The <tt>SegmentUUID</tt> of the <tt>Segment</tt> containing the track identi fied by MasterTrackUID. See <xref target="DivXTrickTrack"/>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="contentsignature-element"><name>ContentSignature Element</name> | <section anchor="contentsignature-element"><name>ContentSignature Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>binary / 0x47E3</dd> | <dd>binary / 0x47E3</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption\ContentSignature</tt></dd> | <dd><tt>\Segment\Tracks\TrackEntry\ContentEncodings\ContentEncoding\ContentEncry ption\ContentSignature</tt></dd> | |||
skipping to change at line 9836 ¶ | skipping to change at line 11403 ¶ | |||
</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 9872 ¶ | skipping to change at line 11439 ¶ | |||
</section> | </section> | |||
<section anchor="cuerefcluster-element"><name>CueRefCluster Element</name> | <section anchor="cuerefcluster-element"><name>CueRefCluster Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0x97</dd> | <dd>uinteger / 0x97</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueReference\CueRefCluster</tt> </dd> | <dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueReference\CueRefCluster</tt> </dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>The Segment Position of the Cluster containing the referenced Block.</dd> | <dd>The <tt>Segment Position</tt> of the <tt>Cluster</tt> containing the referen ced <tt>Block</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="cuerefnumber-element"><name>CueRefNumber Element</name> | <section anchor="cuerefnumber-element"><name>CueRefNumber Element</name> | |||
<dl spacing="compact"> | <dl spacing="compact"> | |||
<dt>type / id:</dt> | <dt>type / id:</dt> | |||
<dd>uinteger / 0x535F</dd> | <dd>uinteger / 0x535F</dd> | |||
<dt>path:</dt> | <dt>path:</dt> | |||
<dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueReference\CueRefNumber</tt>< /dd> | <dd><tt>\Segment\Cues\CuePoint\CueTrackPositions\CueReference\CueRefNumber</tt>< /dd> | |||
<dt>documentation:</dt> | <dt>documentation:</dt> | |||
<dd>Number of the referenced Block of Track X in the specified Cluster.</dd> | <dd>Number of the referenced <tt>Block</tt> of Track X in the specified <tt>Clus ter</tt>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
<section anchor="cuerefcodecstate-element"><name>CueRefCodecState Element</name> | <section anchor="cuerefcodecstate-element"><name>CueRefCodecState Element</name> | |||
<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 | <dd>The <tt>Segment Position</tt> of the Codec State corresponding to this refer | |||
ment. | enced element. | |||
0 means that the data is taken from the initial Track Entry.</dd> | 0 means that the data is taken from the initial <tt>TrackEntry</tt>.</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> | |||
skipping to change at line 9921 ¶ | skipping to change at line 11488 ¶ | |||
</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> | <tt>TimestampScale</tt>. See <xref target="DivXWorldFonts"/>.</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> | <tt>TimestampScale</tt>. See <xref target="DivXWorldFonts"/>.</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 <tt>TagDefault</tt> element with a bogus element ID; see <x ref target="tagdefault-element"/>.</dd> | |||
</dl> | </dl> | |||
</section> | </section> | |||
</section> | </section> | |||
</middle> | ||||
<back> | ||||
<references><name>Normative References</name> | ||||
<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> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 1128 change blocks. | ||||
3247 lines changed or deleted | 4452 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |