| Internet-Draft | Matroska Control Track | July 2023 |
| Lhomme, et al. | Expires 3 January 2024 | [Page] |
This document defines the Control Track usage found in the Matroska container.¶
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 3 January 2024.¶
Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
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 [Matroska].¶
This document inherits security considerations from the EBML and Matroska documents.¶
To be determined.¶
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.¶
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.¶
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.¶
| Edition | FlagHidden | FlagDefault | Default Edition |
|---|---|---|---|
| Edition 1 | true | true | |
| Edition 2 | true | true | |
| Edition 3 | false | true | X |
| Edition | FlagHidden | FlagDefault | Default Edition |
|---|---|---|---|
| Edition 1 | true | false | X |
| Edition 2 | true | false | |
| Edition 3 | true | false |
| Edition | FlagHidden | FlagDefault | Default Edition |
|---|---|---|---|
| Edition 1 | true | false | |
| Edition 2 | true | true | X |
| Edition 3 | true | false |
| Edition | FlagHidden | FlagDefault | Default Edition |
|---|---|---|---|
| Edition 1 | true | false | |
| Edition 2 | false | false | X |
| Edition 3 | false | false |
| Edition | FlagHidden | FlagDefault | Default Edition |
|---|---|---|---|
| Edition 1 | true | false | |
| Edition 2 | true | true | |
| Edition 3 | false | false | X |
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.¶
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.¶
| 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 |
Extra elements used to handle Control Tracks and advanced selection features:¶