Internet-Draft Matroska Control Track May 2022
Lhomme, et al. Expires 2 November 2022 [Page]
Workgroup:
cellar
Internet Draft:
draft-ietf-cellar-control-01
Published:
Intended Status:
Standards Track
Expires:
Authors:
S. Lhomme
M. Bunkus
D. Rice

Matroska Media Container Control Track Specifications

Abstract

This document defines the Control Track usage found in the Matroska container.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 2 November 2022.

Table of Contents

1. Introduction

2. Status of this document

This document is a work-in-progress specification defining the Matroska file format as part of the IETF Cellar working group. It uses basic elements and concept already defined in the Matroska specifications defined by this workgroup.

3. Security Considerations

This document inherits security considerations from the EBML and Matroska documents.

4. IANA Considerations

To be determined.

5. Notation and Conventions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

6. Edition Flags

6.1. EditionFlagHidden

When the EditionFlagHidden flag is set to false it means the Edition is visible and selectable in a Matroska Player. All ChapterAtoms Elements MUST be interpreted with their own ChapterFlagHidden flags.

Table 1: ChapterAtom visibility to the user
ChapterFlagHidden False True visible
Chapter 1 X yes
Chapter 2 X no

When the EditionFlagHidden flag is set to true the Edition is hidden and SHOULD NOT be selectable in a Matroska Player. If all Editions EditionFlagHidden flags are set to true, there is no visible Edition. In this case all ChapterAtoms Elements MUST also be interpreted as if their ChapterFlagHidden flag is also set to true, regardless with their own ChapterFlagHidden flags.

Table 2: ChapterAtom visibility in hidden editions
ChapterFlagHidden False True visible
Chapter 1 X no
Chapter 2 X no

6.2. EditionFlagDefault

It is RECOMMENDED that no more than one Edition have an EditionFlagDefault Flag set to true. The first Edition with both the EditionFlagDefault Flag set to true and the EditionFlagHidden Flag set to false is the Default Edition. When all EditionFlagDefault Flags are set to false, then the first Edition with the EditionFlagHidden Flag set to false is the Default Edition. The Default Edition is the edition that should be used for playback by default.

6.3. Default Edition

The Default Edition is the Edition that a Matroska Player SHOULD use for playback by default.

The first Edition with both the EditionFlagDefault flag set to true and the EditionFlagHidden flag set to false is the Default Edition. When all EditionFlagDefault flags are set to false and all EditionFlagHidden flag set to true, then the first Edition is the Default Edition. When all EditionFlagHidden flags are set to true, then the first Edition with the EditionFlagDefault flag set to true is the Default Edition. When all EditionFlagDefault flags are set to false, then the first Edition with the EditionFlagHidden flag set to false is the Default Edition. When there is no Edition with a EditionFlagDefault flag are set to true and a EditionFlagHidden flags are set to false, then the first Edition with the EditionFlagHidden flag set to false is the Default Edition.

In other words, in case the Default Edition is not obvious, the first Edition with a EditionFlagHidden flag set to false SHOULD be preferred.

Table 3: Default edition, some visible, all default
Edition FlagHidden FlagDefault Default Edition
Edition 1 true true
Edition 2 true true
Edition 3 false true X
Table 4: Default edition, all hidden, no default
Edition FlagHidden FlagDefault Default Edition
Edition 1 true false X
Edition 2 true false
Edition 3 true false
Table 5: Default edition, all hidden, with default
Edition FlagHidden FlagDefault Default Edition
Edition 1 true false
Edition 2 true true X
Edition 3 true false
Table 6: Default edition, some visible, no default
Edition FlagHidden FlagDefault Default Edition
Edition 1 true false
Edition 2 false false X
Edition 3 false false
Table 7: Default edition, some visible, some default
Edition FlagHidden FlagDefault Default Edition
Edition 1 true false
Edition 2 true true
Edition 3 false false X

7. Chapter Flags

If a Control Track toggles the parent's ChapterFlagHidden flag to false, then only the parent ChapterAtom and its second child ChapterAtom MUST be interpreted as if ChapterFlagHidden is set to false. The first child ChapterAtom, which has the ChapterFlagHidden flag set to true, retains its value until its value is toggled to false by a Control Track.

The ChapterFlagEnabled value can be toggled by control tracks.

7.1. ChapterFlagEnabled

If the ChapterFlagEnabled flag is set to false a Matroska Player MUST NOT use this Chapter and all his Nested Chapters. For Simple Chapters, a Matroska Player MAY display this enabled Chapter with a marker in the timeline. For Ordered Chapters a Matroska Player MUST use the duration of this enabled Chapter.

Table 8
Chapter + Nested Chapter ChapterFlagEnabled used
Chapter 1 true yes
+Nested Chapter 1.1 true yes
+Nested Chapter 1.2 false no
++Nested Chapter 1.2.1 true no
++Nested Chapter 1.2.2 false no
Chapter 2 false no
+Nested Chapter 2.1 true no
+Nested Chapter 2.2 true no

8. Matroska Schema

Extra elements used to handle Control Tracks and advanced selection features:

8.1. Segment

8.1.1. Chapters

8.1.1.1. EditionEntry
8.1.1.1.1. EditionFlagHidden Element
name:
EditionFlagHidden
path:
\Segment\Chapters\EditionEntry\EditionFlagHidden
id:
0x45BD
minOccurs:
1
maxOccurs:
1
range:
0-1
default:
0
type:
uinteger
definition:
Set to 1 if an edition is hidden. Hidden editions SHOULD NOT be available to the user interface (but still to Control Tracks; see Section 7 on Chapter flags).
8.1.1.1.1.1. ChapterFlagEnabled Element
name:
ChapterFlagEnabled
path:
\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterFlagEnabled
id:
0x4598
minOccurs:
1
maxOccurs:
1
range:
0-1
default:
1
type:
uinteger
definition:
Set to 1 if the chapter is enabled. It can be enabled/disabled by a Control Track. When disabled, the movie SHOULD skip all the content between the TimeStart and TimeEnd of this chapter; see Section 7 on Chapter flags.
8.1.1.1.1.2. ChapterTrack Element
name:
ChapterTrack
path:
\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterTrack
id:
0x8F
maxOccurs:
1
type:
master
definition:
List of tracks on which the chapter applies. If this Element is not present, all tracks apply
8.1.1.1.1.3. ChapterTrackUID Element
name:
ChapterTrackUID
path:
\Segment\Chapters\EditionEntry\+ChapterAtom\ChapterTrack\ChapterTrackUID
id:
0x89
minOccurs:
1
range:
not 0
type:
uinteger
definition:
UID of the Track to apply this chapter to. In the absence of a control track, choosing this chapter will select the listed Tracks and deselect unlisted tracks. Absence of this Element indicates that the Chapter SHOULD be applied to any currently used Tracks.

10. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.

Authors' Addresses

Steve Lhomme
Moritz Bunkus
Dave Rice