Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add AUTH48 v2 changes #830

Merged
merged 106 commits into from
Aug 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
9c2e340
use Attachments instead of non-existing Attachement
robUx4 May 19, 2024
d32aa1f
replace unexistent Chapter String element with ChapString
robUx4 May 19, 2024
0049330
fix Attachments table
robUx4 May 19, 2024
63519a8
fix Colour element name in table
robUx4 May 19, 2024
769cee3
fix TITLE tag casing
robUx4 May 19, 2024
f8735f1
backtick Block Additional Mapping
robUx4 May 19, 2024
d9939a9
backtick FileName
robUx4 May 19, 2024
13fc2af
backtick the list of ordered chapters element
robUx4 May 19, 2024
68a2d2f
backtick Track
robUx4 May 19, 2024
dc84e32
backtick Chapters
robUx4 May 19, 2024
e5fd84a
backtick Edition
robUx4 May 19, 2024
f8af58e
backtick Segment
robUx4 May 19, 2024
09b17a0
backtick TimestampScale
robUx4 May 19, 2024
f2ba849
backtick Linked Segment
robUx4 May 19, 2024
739c6e8
backtick Ordered Chapters
robUx4 May 19, 2024
51b18a6
backtick BlockAdditions
robUx4 May 19, 2024
37b2415
backtick Block Additional Mappings
robUx4 May 19, 2024
73aaa9d
backtick Block
robUx4 May 19, 2024
b1a5d11
backtick Top-Level Element
robUx4 May 19, 2024
7ef91cf
backtick ChapProcessCodecID
robUx4 May 19, 2024
23264c8
backtick Cluster
robUx4 May 19, 2024
c0219c5
backtick BlockAdditional
robUx4 May 19, 2024
d732ba6
backtick SimpleBlock
robUx4 May 19, 2024
a88280d
backtick BlockAddID
robUx4 May 19, 2024
5eb4cbf
backtick Segment Position
robUx4 May 19, 2024
a740b50
backtick BlockGroup
robUx4 May 19, 2024
c3b9df8
backtick other BlockAddID elements
robUx4 May 19, 2024
baa79d8
backtick the track Name element
robUx4 May 19, 2024
d2825ef
backtick Cues
robUx4 May 19, 2024
e0996ad
backtick Matroska Reader/Writer
robUx4 May 20, 2024
83b1946
backtick more rare elements
robUx4 May 19, 2024
5497b6a
backtick Parent Chapter
robUx4 May 19, 2024
8efe898
don't backtick Element alone
robUx4 May 19, 2024
b4d4c07
don't backtick on Notation and Conventions
robUx4 May 19, 2024
bcd58d1
[formatting] add missing reference to notes for minOccurs
robUx4 May 19, 2024
fdad919
[formatting] regroup consecutive usage notes
robUx4 May 19, 2024
225e466
[formatting] turn RAP example descriptions into figure titles
robUx4 May 19, 2024
426d69c
[formatting] backtick language elements
robUx4 May 20, 2024
f1761e3
[formatting] capital on Octet as a unit
robUx4 May 19, 2024
678a071
[formatting] put stream copy example in double quotes
robUx4 May 19, 2024
26c597f
[formatting] use <refcontent> for the EBML Errata references
robUx4 May 19, 2024
eb77681
[formatting] remove period from AESSettingsCipherMode enum values
robUx4 May 20, 2024
55098a1
[formatting] capital on all lacing names
robUx4 May 20, 2024
d59ca30
[formatting] escape <> in XML examples
robUx4 May 20, 2024
21ddba1
Fix plural usage
robUx4 May 19, 2024
234b985
[editorial] Add a note on the Change Controller for EBML IDs
robUx4 May 19, 2024
362c940
[editorial] Add missing items for IANA descriptions
robUx4 May 19, 2024
9fe5843
[editorial] Add element ID ranges per size
robUx4 May 19, 2024
06de0b8
[editorial] use etc. instead of ...
robUx4 May 19, 2024
4a38a98
[editorial] replace SegmentUID with SegmentUUID
robUx4 May 19, 2024
409216c
[editorial] match the text with the XML example
robUx4 May 19, 2024
5de4050
[editorial] fix the Twofish reference
robUx4 May 19, 2024
80580d4
[editorial] conform the libmatroska reference to the guidelines
robUx4 May 19, 2024
5587bbf
[editorial] replace "both included" by "both inclusive"
robUx4 May 19, 2024
05ec4d7
[editorial] fix casing of FourCC
robUx4 May 19, 2024
e55063b
[editorial] explain what SBR is
robUx4 May 19, 2024
4a8fd33
[editorial] fix punctuation
robUx4 May 19, 2024
dcdacb0
[editorial] reference the Lacing bits by its name in the binary table
robUx4 May 19, 2024
2594c4c
[editorial] use possessive form
robUx4 May 19, 2024
f93ead8
[editorial] don't use subs contraction
robUx4 May 19, 2024
366ae9d
[editorial] use Set to 1 consistently for flags
robUx4 May 19, 2024
ee68f3a
[editorial] add a link to the block lacing section
robUx4 May 19, 2024
bcce2bf
[editorial] add VANC real name
robUx4 May 19, 2024
98cf51d
[editorial] the user configures
robUx4 May 19, 2024
6820ae9
[editorial] use zero instead of 0
robUx4 May 20, 2024
244cc84
[editorial] remove would for chapter XML introduction
robUx4 May 20, 2024
4efc593
[editorial] simplify RFC format link
robUx4 May 20, 2024
4961720
[editorial] avoid "having" in file
robUx4 May 20, 2024
b117548
[editorial] add a link to RFC8794 the security considerations
robUx4 May 20, 2024
6bfcc8a
[editorial] replace some audiovisual with audio/video container
robUx4 May 20, 2024
7d0d56e
[editorial] replace following data with remaining data
robUx4 May 20, 2024
ade8d49
[editorial] use Applies to reference the element being described
robUx4 May 20, 2024
bb7eeec
[editorial] use Block element instead of vague main one
robUx4 May 20, 2024
acdfbdc
[editorial] add information for the codec URL
robUx4 May 20, 2024
92e89ea
[editorial] use Defines to reference the element being described
robUx4 May 20, 2024
934dbaf
[editorial] move the AlphaMode 0/1 reference
robUx4 May 20, 2024
b0435c3
[editorial] remove "as possible" from MAY rule
robUx4 May 20, 2024
30a9e61
[editorial] add "be available" to Control Tracks
robUx4 May 20, 2024
b8a813f
[editorial] reword BlockDuration default value explanation
robUx4 May 20, 2024
91d1705
[editorial] reword the BlockAddID definition
robUx4 May 20, 2024
8122eae
[editorial] remove redundant text
robUx4 May 20, 2024
4cfaef9
[editorial] mention the elements to ignore are inside the chapter
robUx4 May 20, 2024
b708ad3
[editorial] avoid using idem in technical explanations
robUx4 May 20, 2024
fa33cd6
[editorial] reword segment linking with no Cluster
robUx4 May 20, 2024
0453d46
[editorial] clarify the German extra title
robUx4 May 20, 2024
7411edc
[editorial] reword the 1-octet element IANA rule
robUx4 May 20, 2024
608d4fa
[editorial] reword the IANA media type introduction
robUx4 May 20, 2024
339dde7
[editorial] simplify text of Matroska Reader decision to recover from…
robUx4 May 20, 2024
5f05f4b
[editorial] "using up to" rather than "on up to"
robUx4 May 20, 2024
6c69bec
[editorial] mention actual lacing bits in parenthesis
robUx4 May 20, 2024
2fc4917
[editorial] remove For such elements on start of section
robUx4 May 20, 2024
24ab4e6
[editorial] reword language code section to move BCP47 out
robUx4 May 20, 2024
74af762
[editorial] simplify encryption list
robUx4 May 20, 2024
d5abd2c
[editorial] clean user with visual/hearing impairement
robUx4 May 20, 2024
f7059cb
[editorial] add movies to "Old stereo 3D" anaglyph
robUx4 May 20, 2024
ec093e1
[editorial] use raw number of pixel instead of amount of pixels
robUx4 May 20, 2024
2ad507d
[editorial] remove day for ISO639-2
robUx4 May 20, 2024
e815d50
[editorial] rework paragraph about ReferenceBlock 0
robUx4 May 20, 2024
4bcdb33
[editorial] lower case Element
robUx4 May 20, 2024
6acdff0
[formatting] backtick more keywords
robUx4 Jun 1, 2024
e5d0e06
[editorial] remove ChapterTrack element from Ordered Chapters
robUx4 Jun 1, 2024
9b15dd6
[formatting] fix rework description of Block bits formatting
robUx4 Jun 1, 2024
efc5749
[editorial] fix Matroska Element IDs ranges
robUx4 Jun 1, 2024
972cd62
[formatting] fix some punctuation
robUx4 Jun 1, 2024
0b9a008
[editorial] replace generic "Tag" in text with "tag value"
robUx4 Jun 1, 2024
adbd481
[editorial] add new text for invalid Element ID ranges
robUx4 Jun 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions attachments.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Attachments

Matroska supports storage of related files and data in the `Attachments Element`
(a `Top-Level Element`). `Attachment Elements` can be used to store related cover art,
Matroska supports storage of related files and data in the `Attachments` element
(a `Top-Level Element`). `Attachments` elements can be used to store related cover art,
font files, transcripts, reports, error recovery files, pictures, text-based annotations,
copies of specifications, or other ancillary files related to the `Segment`.

`Matroska Readers` **MUST NOT** execute files stored as `Attachment Elements`.
`Matroska Readers` **MUST NOT** execute files stored as `Attachments` elements.

## Cover Art

Expand All @@ -24,13 +24,13 @@ The dimension of the `normal cover` **SHOULD** be 600 pixels on the smallest sid
the `small cover` **SHOULD** be 120 pixels on the smallest side (e.g., 192x120 or 120x160).

Versions of cover art can be differentiated by the filename, which is stored in the
`FileName Element`. The default filename of the `normal cover` in square or portrait mode
is `cover.(jpg|png)`. When stored, the `normal cover` **SHOULD** be the first Attachment in
`FileName` element. The default filename of the `normal cover` in square or portrait mode
is `cover.(jpg|png)`. When stored, the `normal cover` **SHOULD** be the first `Attachments` element in
storage order. The `small cover` **SHOULD** be prefixed with "small_", such as
`small_cover.(jpg|png)`. The landscape variant **SHOULD** be suffixed with "\_land",
such as `cover_land.(jpg|png)`. The filenames are case-sensitive.

The following table provides examples of file names for cover art in Attachments.
The following table provides examples of file names for cover art in `Attachments`.

| File Name | Image Orientation | Pixel Length of Smallest Side |
|----------------------|--------------------|-------------------------------|
Expand All @@ -49,21 +49,21 @@ consistent in various environments where the needed fonts might not be available
Depending on the font format in question, each font file can contain multiple font variants.
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 `FileName`, even when disregarding the extension.
In order to select a font for display, a Matroska Player **SHOULD** consider both the Font Name
and the base name of the Attachment's FileName, preferring the former when there are multiple matches.
In order to select a font for display, a `Matroska Player` **SHOULD** consider both the Font Name
and the base name of the Attachment's `FileName`, preferring the former when there are multiple matches.

Subtitle codecs, such as SubStation Alpha (SSA) and Advanced SubStation Alpha (ASS), usually refer to a font by its Font Name, not
by its filename.
If none of the Attachments are a match for the Font Name, the Matroska Player **SHOULD**
If none of the Attachments are a match for the Font Name, the `Matroska Player` **SHOULD**
attempt to find a system font whose Font Name matches the one used in the subtitle track.

Since loading fonts temporarily can take a while, a Matroska Player usually
Since loading fonts temporarily can take a while, a `Matroska Player` usually
loads or installs all the fonts found in attachments so they are ready to be used during playback.
Failure to use the font attachment might result in incorrect rendering of the subtitles.

If a selected subtitle track has some `AttachmentLink` elements, the player **MAY** restrict its font rendering to use only these fonts.

A Matroska Player **SHOULD** handle the official font media types from [@!RFC8081] when the system can handle the type:
A `Matroska Player` **SHOULD** handle the official font media types from [@!RFC8081] when the system can handle the type:

* font/sfnt: Generic SFNT Font Type

Expand All @@ -78,7 +78,7 @@ A Matroska Player **SHOULD** handle the official font media types from [@!RFC808
* font/woff2: WOFF 2.0

Fonts in Matroska existed long before [@!RFC8081]. A few unofficial media types for fonts were used in existing files.
Therefore, it is **RECOMMENDED** for a Matroska Player to support the following legacy media types for font attachments:
Therefore, it is **RECOMMENDED** for a `Matroska Player` to support the following legacy media types for font attachments:

* application/x-truetype-font: TrueType fonts, equivalent to `font/ttf` and sometimes `font/otf`

Expand All @@ -92,7 +92,7 @@ Therefore, it is **RECOMMENDED** for a Matroska Player to support the following


There may also be some font attachments with the `application/octet-stream` media type.
In that case, the Matroska Player **MAY** try to guess the font type by checking the file extension of the `AttachedFile\FileName` string.
In that case, the `Matroska Player` **MAY** try to guess the font type by checking the file extension of the `AttachedFile\FileName` string.
Common file extensions for fonts are:

* `.ttf` for TrueType fonts, equivalent to `font/ttf`
Expand All @@ -103,7 +103,7 @@ Common file extensions for fonts are:

The file extension check **MUST** be case-insensitive.

Matroska Writers **SHOULD** use a valid font media type from [@!RFC8081] in the `AttachedFile\FileMediaType` of the font attachment.
`Matroska Writers` **SHOULD** use a valid font media type from [@!RFC8081] in the `AttachedFile\FileMediaType` of the font attachment.
They **MAY** use the media types found in older files when compatibility with older players is necessary.


10 changes: 5 additions & 5 deletions block_additional_mappings/smpte-st12-1-timecode.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

### Timecode Description

SMPTE ST 12-1 timecode values can be stored in the `BlockMore Element` to associate
SMPTE ST 12-1 timecode values can be stored in the `BlockMore` element to associate
the content of a Matroska Block with a particular timecode value.
If the Block uses Lacing, the timecode value is associated with the first frame of the Lace.

The Block Additional Mapping contains a full binary representation of a 64 bit SMPTE timecode
The `Block Additional Mapping` contains a full binary representation of a 64 bit SMPTE timecode
value stored in big-endian format and expressed exactly as defined in Section 8 and 9
of SMPTE 12M [@!ST12]. For convenience, here are the bit assignments for a
SMPTE ST 12-1 binary representation as described in [@?RFC5484, section 6.2]:
Expand Down Expand Up @@ -45,12 +45,12 @@ For example, a timecode value of "07:32:54;18" can be expressed as a 64 bit SMPT

### BlockAddIDType

The BlockAddIDType value reserved for timecode is "121".
The `BlockAddIDType` value reserved for timecode is "121".

### BlockAddIDName

The BlockAddIDName value reserved for timecode is "SMPTE ST 12-1 timecode".
The `BlockAddIDName` value reserved for timecode is "SMPTE ST 12-1 timecode".

### BlockAddIDExtraData

BlockAddIDExtraData is unused within this block additional mapping.
`BlockAddIDExtraData` is unused within this block additional mapping.
94 changes: 47 additions & 47 deletions block_additional_mappings_intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,61 +2,61 @@

Extra data or metadata can be added to each `Block` using `BlockAdditional` data.
Each `BlockAdditional` contains a `BlockAddID` that identifies the kind of data it contains.
When the `BlockAddID` is set to "1" the contents of the `BlockAdditional Element`
When the `BlockAddID` is set to "1" the contents of the `BlockAdditional` element
are define by the Codec Mappings defines; see (#codec-blockadditions).
When the `BlockAddID` is set a value greater than "1", then the contents of the
`BlockAdditional Element` are defined by the `BlockAdditionalMapping Element`, within
the associated `Track Element`, where the `BlockAddID Element` of `BlockAdditional Element`
equals the `BlockAddIDValue` of the associated Track's `BlockAdditionalMapping Element`.
That `BlockAdditionalMapping Element` identifies a particular Block Additional Mapping by the `BlockAddIDType`.
`BlockAdditional` element are defined by the `BlockAdditionalMapping` element, within
the associated `Track` element, where the `BlockAddID` element of `BlockAdditional` element
equals the `BlockAddIDValue` of the associated `Track`'s `BlockAdditionalMapping` element.
That `BlockAdditionalMapping` element identifies a particular `Block Additional Mapping` by the `BlockAddIDType`.

The following XML depicts a use of a Block Additional Mapping to associate a timecode value with a `Block`:
The following XML depicts a use of a `Block Additional Mapping` to associate a timecode value with a `Block`:

```xml
<Segment>
<!--Mandatory elements ommitted for readability-->
<Tracks>
<TrackEntry>
<TrackNumber>1</TrackNumber>
<TrackUID>568001708</TrackUID>
<TrackType>1</TrackType>
<BlockAdditionalMapping>
<BlockAddIDValue>2</BlockAddIDValue><!--arbitrary value
used in BlockAddID-->
<BlockAddIDName>timecode</BlockAddIDName>
<BlockAddIDType>12</BlockAddIDType>
</BlockAdditionalMapping>
<CodecID>V_FFV1</CodecID>
<Video>
<PixelWidth>1920</PixelWidth>
<PixelHeight>1080</PixelHeight>
</Video>
</TrackEntry>
</Tracks>
<Cluster>
<Timestamp>3000</Timestamp>
<BlockGroup>
<Block>{binary video frame}</Block>
<BlockAdditions>
<BlockMore>
<BlockAddID>2</BlockAddID><!--arbitrary value from
BlockAdditionalMapping-->
<BlockAdditional>01:00:00:00</BlockAdditional>
</BlockMore>
</BlockAdditions>
</BlockGroup>
</Cluster>
</Segment>
&lt;Segment&gt;
&lt;!--Mandatory elements ommitted for readability--&gt;
&lt;Tracks&gt;
&lt;TrackEntry&gt;
&lt;TrackNumber&gt;1&lt;/TrackNumber&gt;
&lt;TrackUID&gt;568001708&lt;/TrackUID&gt;
&lt;TrackType&gt;1&lt;/TrackType&gt;
&lt;BlockAdditionalMapping&gt;
&lt;BlockAddIDValue&gt;2&lt;/BlockAddIDValue&gt;&lt;!--arbitrary value
used in BlockAddID--&gt;
&lt;BlockAddIDName&gt;timecode&lt;/BlockAddIDName&gt;
&lt;BlockAddIDType&gt;12&lt;/BlockAddIDType&gt;
&lt;/BlockAdditionalMapping&gt;
&lt;CodecID&gt;V_FFV1&lt;/CodecID&gt;
&lt;Video&gt;
&lt;PixelWidth&gt;1920&lt;/PixelWidth&gt;
&lt;PixelHeight&gt;1080&lt;/PixelHeight&gt;
&lt;/Video&gt;
&lt;/TrackEntry&gt;
&lt;/Tracks&gt;
&lt;Cluster&gt;
&lt;Timestamp&gt;3000&lt;/Timestamp&gt;
&lt;BlockGroup&gt;
&lt;Block&gt;{binary video frame}&lt;/Block&gt;
&lt;BlockAdditions&gt;
&lt;BlockMore&gt;
&lt;BlockAddID&gt;2&lt;/BlockAddID&gt;&lt;!--arbitrary value from
BlockAdditionalMapping--&gt;
&lt;BlockAdditional&gt;01:00:00:00&lt;/BlockAdditional&gt;
&lt;/BlockMore&gt;
&lt;/BlockAdditions&gt;
&lt;/BlockGroup&gt;
&lt;/Cluster&gt;
&lt;/Segment&gt;
```

Block Additional Mappings detail how additional data **MAY** be stored in the `BlockMore Element`
with a `BlockAdditionMapping Element`, within the `Track Element`, which identifies the `BlockAdditional` content.
Block Additional Mappings define the `BlockAddIDType` value reserved to identify that
type of data as well as providing an optional label stored within the `BlockAddIDName Element`.
When the Block Additional Mapping is dependent on additional contextual information,
then the Mapping **SHOULD** describe how such additional contextual information is stored within the `BlockAddIDExtraData Element`.
`Block Additional Mappings` detail how additional data **MAY** be stored in the `BlockMore` element
with a `BlockAdditionMapping` element, within the `Track` element, which identifies the `BlockAdditional` content.
`Block Additional Mappings` define the `BlockAddIDType` value reserved to identify that
type of data as well as providing an optional label stored within the `BlockAddIDName` element.
When the `Block Additional Mapping` is dependent on additional contextual information,
then the Mapping **SHOULD** describe how such additional contextual information is stored within the `BlockAddIDExtraData` element.

The following Block Additional Mappings are defined.
The following `Block Additional Mappings` are defined.

## Summary of Assigned BlockAddIDType Values

Expand Down
4 changes: 2 additions & 2 deletions chapter_codecs.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ between the chapter codec values and the actual segment it targets.

# Matroska Chapter Codecs and Nested Chapters

When `Nested Chapters` contain chapters codecs -- via the `ChapProcess` Element --
the enter/leave commands -- ChapProcessTime Element -- **MUST** be executed in a specific order,
When `Nested Chapters` contain chapters codecs -- via the `ChapProcess` element --
the enter/leave commands -- `ChapProcessTime` element -- **MUST** be executed in a specific order,
if the Matroska Player supports the chapter codecs included in the chapters.

When starting playback, the `Matroska Player` **MUST** start at the `ChapterTimeStart` of the first chapter of the ordered chapter.
Expand Down
Loading
Loading