idnits 2.17.1 draft-ietf-cellar-chapter-codecs-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (9 October 2021) is 923 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Looks like a reference, but probably isn't: '1' on line 169 -- Looks like a reference, but probably isn't: '0' on line 170 -- Looks like a reference, but probably isn't: '2' on line 169 Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 5 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 cellar S. Lhomme 3 Internet-Draft 4 Intended status: Standards Track M. Bunkus 5 Expires: 12 April 2022 6 D. Rice 7 9 October 2021 9 Matroska Media Container Chapter Codecs Specifications 10 draft-ietf-cellar-chapter-codecs-00 12 Abstract 14 This document defines common Matroska Chapter Codecs, the basic 15 Matroska Script and the DVD inspired DVD menu. 17 Status of This Memo 19 This Internet-Draft is submitted in full conformance with the 20 provisions of BCP 78 and BCP 79. 22 Internet-Drafts are working documents of the Internet Engineering 23 Task Force (IETF). Note that other groups may also distribute 24 working documents as Internet-Drafts. The list of current Internet- 25 Drafts is at https://datatracker.ietf.org/drafts/current/. 27 Internet-Drafts are draft documents valid for a maximum of six months 28 and may be updated, replaced, or obsoleted by other documents at any 29 time. It is inappropriate to use Internet-Drafts as reference 30 material or to cite them other than as "work in progress." 32 This Internet-Draft will expire on 12 April 2022. 34 Copyright Notice 36 Copyright (c) 2021 IETF Trust and the persons identified as the 37 document authors. All rights reserved. 39 This document is subject to BCP 78 and the IETF Trust's Legal 40 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 41 license-info) in effect on the date of publication of this document. 42 Please review these documents carefully, as they describe your rights 43 and restrictions with respect to this document. Code Components 44 extracted from this document must include Simplified BSD License text 45 as described in Section 4.e of the Trust Legal Provisions and are 46 provided without warranty as described in the Simplified BSD License. 48 Table of Contents 50 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 51 2. Status of this document . . . . . . . . . . . . . . . . . . . 2 52 3. Security Considerations . . . . . . . . . . . . . . . . . . . 2 53 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 2 54 5. Notation and Conventions . . . . . . . . . . . . . . . . . . 2 55 6. Matroska Chapter Codecs . . . . . . . . . . . . . . . . . . . 2 56 6.1. Matroska Script (0) . . . . . . . . . . . . . . . . . . . 3 57 6.2. DVD menu (1) . . . . . . . . . . . . . . . . . . . . . . 3 58 7. Normative References . . . . . . . . . . . . . . . . . . . . 6 59 8. Informative References . . . . . . . . . . . . . . . . . . . 6 60 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 62 1. Introduction 64 _TODO_ 66 2. Status of this document 68 This document is a work-in-progress specification defining the 69 Matroska file format as part of the IETF Cellar working group 70 (https://datatracker.ietf.org/wg/cellar/charter/). It uses basic 71 elements and concepts already defined in the Matroska specifications 72 defined by this workgroup. 74 3. Security Considerations 76 Tag values can be either strings or binary blobs. This document 77 inherits security considerations from the EBML and Matroska 78 documents. 80 4. IANA Considerations 82 To be determined. 84 5. Notation and Conventions 86 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 87 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 88 "OPTIONAL" in this document are to be interpreted as described in BCP 89 14 [RFC2119] [RFC8174] when, and only when, they appear in all 90 capitals, as shown here. 92 6. Matroska Chapter Codecs 94 _TODO_ 96 6.1. Matroska Script (0) 98 This is the case when ChapProcessCodecID = 0. This is a script 99 language build for Matroska purposes. The inspiration comes from 100 ActionScript, javascript and other similar scripting languages. The 101 commands are stored as text commands, in UTF-8. The syntax is C 102 like, with commands spanned on many lines, each terminating with a 103 ";". You can also include comments at the end of lines with "//" or 104 comment many lines using "/* */". The scripts are stored in 105 ChapProcessData. For the moment ChapProcessPrivate is not used. 107 The one and only command existing for the moment is GotoAndPlay( 108 ChapterUID );. As the same suggests, it means that, when this command 109 is encountered, the Matroska Player SHOULD jump to the Chapter 110 specified by the UID and play it. 112 6.2. DVD menu (1) 114 This is the case when ChapProcessCodecID = 1. Each level of a 115 chapter corresponds to a logical level in the DVD system that is 116 stored in the first octet of the ChapProcessPrivate. This DVD 117 hierarchy is as follows: 119 +====================+======+===========+==========+=============+ 120 | ChapProcessPrivate | DVD | Hierarchy | Commands | Comment | 121 | | Name | | Possible | | 122 +====================+======+===========+==========+=============+ 123 | 0x30 | SS | DVD | - | First Play, | 124 | | | domain | | Video | 125 | | | | | Manager, | 126 | | | | | Video Title | 127 +--------------------+------+-----------+----------+-------------+ 128 | 0x2A | LU | Language | - | Contains | 129 | | | Unit | | only PGCs | 130 +--------------------+------+-----------+----------+-------------+ 131 | 0x28 | TT | Title | - | Contains | 132 | | | | | only PGCs | 133 +--------------------+------+-----------+----------+-------------+ 134 | 0x20 | PGC | Program | * | | 135 | | | Group | | | 136 | | | Chain | | | 137 | | | (PGC) | | | 138 +--------------------+------+-----------+----------+-------------+ 139 | 0x18 | PG | Program 1 | - | | 140 | | | / Program | | | 141 | | | 2 / | | | 142 | | | Program 3 | | | 143 +--------------------+------+-----------+----------+-------------+ 144 | 0x10 | PTT | Part Of | - | Equivalent | 145 | | | Title 1 / | | to the | 146 | | | Part Of | | chapters on | 147 | | | Title 2 | | the sleeve. | 148 +--------------------+------+-----------+----------+-------------+ 149 | 0x08 | CN | Cell 1 / | - | | 150 | | | Cell 2 / | | | 151 | | | Cell 3 / | | | 152 | | | Cell 4 / | | | 153 | | | Cell 5 / | | | 154 | | | Cell 6 | | | 155 +--------------------+------+-----------+----------+-------------+ 157 Table 1 159 You can also recover wether a Segment is a Video Manager (VMG), Video 160 Title Set (VTS) or Video Title Set Menu (VTSM) from the 161 ChapterTranslateID element found in the Segment Info. This field 162 uses 2 octets as follows: 164 1. Domain Type: 0 for VMG, the domain number for VTS and VTSM 166 2. Domain Value: 0 for VMG and VTSM, 1 for the VTS source. 168 For instance, the menu part from VTS_01_0.VOB would be coded [1,0] 169 and the content part from VTS_02_3.VOB would be [2,1]. The VMG is 170 always [0,0] 172 The following octets of ChapProcessPrivate are as follows: 174 +=========+======+=================================================+ 175 | Octet 1 | DVD | Following Octets | 176 | | Name | | 177 +=========+======+=================================================+ 178 | 0x30 | SS | Domain name code (1: 0x00= First play, 0xC0= | 179 | | | VMG, 0x40= VTSM, 0x80= VTS) + VTS(M) number (2) | 180 +---------+------+-------------------------------------------------+ 181 | 0x2A | LU | Language code (2) + Language extension (1) | 182 +---------+------+-------------------------------------------------+ 183 | 0x28 | TT | global Title number (2) + corresponding TTN of | 184 | | | the VTS (1) | 185 +---------+------+-------------------------------------------------+ 186 | 0x20 | PGC | PGC number (2) + Playback Type (1) + Disabled | 187 | | | User Operations (4) | 188 +---------+------+-------------------------------------------------+ 189 | 0x18 | PG | Program number (2) | 190 +---------+------+-------------------------------------------------+ 191 | 0x10 | PTT | PTT-chapter number (1) | 192 +---------+------+-------------------------------------------------+ 193 | 0x08 | CN | Cell number [VOB ID(2)][Cell ID(1)][Angle | 194 | | | Num(1)] | 195 +---------+------+-------------------------------------------------+ 197 Table 2 199 If the level specified in ChapProcessPrivate is a PGC (0x20), there 200 is an octet called the Playback Type, specifying the kind of PGC 201 defined: 203 * 0x00: entry only/basic PGC 205 * 0x82: Title+Entry Menu (only found in the Video Manager domain) 207 * 0x83: Root Menu (only found in the VTSM domain) 209 * 0x84: Subpicture Menu (only found in the VTSM domain) 211 * 0x85: Audio Menu (only found in the VTSM domain) 213 * 0x86: Angle Menu (only found in the VTSM domain) 215 * 0x87: Chapter Menu (only found in the VTSM domain) 216 The next 4 following octets correspond to the User Operation flags in 217 the standard PGC. When a bit is set, the command SHOULD be disabled. 219 ChapProcessData contains the pre/post/cell commands in binary format 220 as there are stored on a DVD. There is just an octet preceding these 221 data to specify the number of commands in the element. As follows: 222 [# of commands(1)][command 1 (8)][command 2 (8)][command 3 (8)]. 224 More information on the DVD commands and format on DVD from the 225 [DVD-Info] project. 227 7. Normative References 229 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 230 Requirement Levels", BCP 14, RFC 2119, 231 DOI 10.17487/RFC2119, March 1997, 232 . 234 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 235 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 236 May 2017, . 238 8. Informative References 240 [DVD-Info] "DVD-Video Information", 241 . 243 Authors' Addresses 245 Steve Lhomme 247 Email: slhomme@matroska.org 249 Moritz Bunkus 251 Email: moritz@bunkus.org 253 Dave Rice 255 Email: dave@dericed.com