Ballot for draft-ietf-cellar-codec
Discuss
Yes
No Objection
No Record
Summary: Has 3 DISCUSSes. Needs 2 more YES or NO OBJECTION positions to pass.
Thanks for the work done in this document. I am balloting a blocking DISCUSS, but it should be trivial to address by adding a normative reference to `Xiph-style` in section 3.3.25.
Except for one `SHOULD` that follows the IESG statement on BCP14: https://datatracker.ietf.org/doc/statement-iesg-statement-on-clarifying-the-use-of-bcp-14-key-words/, I wonder why the remaining `SHOULD` are not "MUST" ? Please also the IESG statement by providing guidance about the consequences (even if obvious to the authors) of not following the `SHOULD`.
Thanks to the authors and the WG for their work on this document. I have two aspects that I would like to discuss. <discuss-1> Sections 8.1 and 8.2 2930 8.1. Matroska Codec IDs Registry 2932 This document defines registries for Codec IDs stored in the CodecID 2933 element. A CodecID is a case-sensitive ASCII string with a prefix 2934 defined in Table 1. The details of the string format are found in 2935 Section 3.1.1. 2937 "Matroska Codec IDs" are to be allocated according to the "Expert 2938 Review" policy [RFC8126]. 2940 To register a new Codec ID in this registry, one needs a Codec ID 2941 string, a TrackType value, a description, a Change Controller, and an 2942 optional Reference to a document describing the Codec ID. 3226 8.2. Matroska BlockAdditional Type IDs Registry 3228 This document defines registries for BlockAdditional Type IDs stored 3229 in the BlockAddIDType element. The values correspond to the unsigned 3230 integer BlockAddIDType value described in Section 5.1.4.1.17.3 of 3231 [RFC9559]. 3233 "Matroska BlockAdditional Type IDs" are to be allocated according to 3234 the "Expert Review" policy [RFC8126]. 3236 To register a new BlockAdditional Type ID in this registry, one needs 3237 a BlockAddIDType unsigned integer, a BlockAddIDName string value, a 3238 Change Controller, and an optional Reference to a document describing 3239 the BlockAdditional Type ID. First, the document creates two Expert Review registries and identifies the fields that an applicant supplies, but it does not provide criteria that the designated experts should use to accept, reject, or request changes to a registration. Please add designated-expert guidance covering; they might need to cover the following: * syntax and collisions with registered, reserved, deprecated, reclaimed, or historically deployed values; * sufficient specification for independent implementation, including initialization data, field lengths, byte order, and malformed-input behavior where relevant; * stability and accessibility of references; * backward compatibility when an existing registration is changed; * identification of an appropriate change controller; and * security and resource-consumption implications. The document should also state whether provisional registrations are permitted and identify an appropriate public review venue that experts may consult. Second, the document does not explicitly request that the two new registries be placed under the existing "Matroska" registry group. Please make the IANA request explicit, for example: IANA is requested to create the following two registries under the existing "Matroska" registry group.
Please find below some additional comments inline in the idnits output of v19. Look out for the <EoRv19> tag at the end to ensure you are seeing the complete review. 369 3.2. Recommendations for the Creation of New Codec Mappings 371 Creators of a new Codec Mapping to be used in the context of 372 Matroska: 374 * MUST assume that all Codec Mappings they create might become 375 standardized, public, commonly deployed, or usable across multiple 376 implementations. 378 * MUST employ meaningful values for CodecID and Codec Name that are 379 not already included in the Matroska Codec IDs Registry, and are 380 not otherwise known or suspected to be in use, even if they are 381 not already registered. <major> The text seems to permits a creator to select and deploy a CodecID that is not registered, provided that it is not known or suspected to be in use. This does not provide reliable global uniqueness. Two independent creators can select the same unregistered identifier for incompatible mappings, resulting in ambiguous publicly deployed files. Please require registration before a CodecID is used in publicly distributed content or by multiple independent implementations. If private or experimental mappings are needed, please define a collision-resistant procedure explicitly. A provisional Expert Review registration seems preferable because it retains one authoritative namespace and permits collision checking before deployment. 2944 Some Codec IDs values are deprecated. Such Codec IDs are marked as 2945 "Reclaimed" in the "Matroska Codec IDs" registry. 3191 | S_ASS | 17 | Advanced | Reclaimed, | 3192 | | | SubStation Alpha | Section 3.5.7 | 3193 | | | Format | | 3214 | S_SSA | 17 | SubStation Alpha | Reclaimed, | 3215 | | | Format | Section 3.5.7 | <major> "Reclaimed" does not make clear whether these legacy Codec IDs are permanently unavailable or can be assigned to a new mapping. Reassignment would be unsafe because existing files using S_ASS and S_SSA can remain in circulation indefinitely and could then be interpreted using a new mapping. Please use an unambiguous status such as "Deprecated -- MUST NOT be used for new content and MUST NOT be reassigned", or mark the identifiers as permanently reserved while documenting their historical use. If "Reclaimed" is retained, please define it explicitly as permanently unavailable for reassignment. Please take this review as someone who has not been involved in the past CELLAR WG discussions and does not follow media codec work. <EoRv19>
** Sections 3.1.6 and 8.1 -- Section 3.1.6, “Citation, Documentation of the associated normative and informative references for the codec is RECOMMENDED.” -- Section 8.1, “To register a new Codec ID in this registry, one needs a Codec ID string, … and an optional Reference to a document describing the Codec ID”. How is interoperability ensured if the code point for a given Codec ID has no associated reference for the implementer to use? Should the registration policy be “Specification Required”? ** For the responsible AD/WG Chairs – could the consensus to publish this document please be checked (and as appropriate, documented). What I found in the record was: 26-August-2026 – Interim meeting, https://datatracker.ietf.org/doc/minutes-interim-2025-cellar-08-202508261900/, one WG participant on the call who wasn’t the WG chair or a document author. No call for consensus on the call 26-August-2026 – WGLC Started on the Mailing List, https://mailarchive.ietf.org/arch/msg/cellar/gDR-EVk6j-IABAJGceMLv7qX47Q/. There were no responses to this WGLC. 23-September-2026 – Interim meeting, https://datatracker.ietf.org/doc/minutes-interim-2025-cellar-09-202509231900/, following the WGLC with the same situation as the 26-August meeting (one WG participant who wasn’t the WG chair or a document author. No documented instance of trying to establish consensus) 14-October-2026 – WGLC closed, consensus called, https://mailarchive.ietf.org/arch/msg/cellar/wyKO4yLu4ZuSidsmq2LF7wESYak/
Thank you to Mallory Knodel for the GENART review.
I support the DISCUSS positions of Éric Vyncke and Ketan Talaulikar.
** Section 3. What is the expected behavior of an implementation when encountering a CodecID that is not registered?
** Section 3.5.13. The reference for VobSub files appears to be to
[VobSub] MultimediaWiki, "VOBSub", 21 March 2007,
<https://wiki.multimedia.cx/index.php?title=VOBsub>.
However, that page provides an example, not a specification for the format. This wiki page references a SourceForge project, https://sourceforge.net/projects/guliverkli/files/? Is that the reference? Where in the code repository is the format? Is there a better reference?
** Sections 4.1.1.1, 4.1.1.2, 4.1.2.2. These sections appear to use a formal notation. Please cite the format. Perhaps the reference should be to C99?
** Sections 5. This entire section appears to be verbatim (cut-and-paste) from https://www.matroska.org/technical/subtitles.html. I don’t know the pedigree of the text but consider if some kind of acknowledgement of citation is needed in this document.
** Section 5.1. I was unable to access this site (or even resolve the DNS name):
DVD Forum, "DVD-Books: Part 3 DVD-Video Book", November
1995, <http://www.dvdforum.org/>.
** Section 5.3. Editorial. Consider revising the colloquial framing of the text following “Now, how are they stored in Matroska?” to be more consistent with the rest of the text.
I support Ketan's DISCUSS on the need for instructions for the DEs.
I support Kentan's discuss on IANA registry guidance.
Thanks for this work. I support Ketan's DISCUSS on IANA registries to need stronger rules. a small, but relevant, typo is that WAVEFORMATEX integer signed/unsigned is wrong. Section 3.4.25 says: "A WORD corresponds to a signed 2 octets integer, DWORD corresponds to a signed 4 octets integer." Microsoft defines WORD as an unsigned 16-bit integer and DWORD as an unsigned 32-bit integer. Please change both to unsigned. See https://learn.microsoft.com/en-us/windows/win32/winprog/windows-data-types.
Section 3.3.25, V_THEORA CodecPrivate layout: 767 > * Bytes 2..n: lengths of the first #p packets, coded in Xiph-style 768 > lacing. The length of the last packet is the length of the 769 > CodecPrivate block minus the lengths coded in these bytes minus 770 > one. The same text appears verbatim in Section 3.4.41 (A_VORBIS), lines 1405-1408. On Éric's DISCUSS: I checked, and RFC 9559 already defines this exact mechanism under its own name. > Xiph Lacing: This approach uses a series of size values to delimit > frames. The final frame's size is calculated by subtracting the sum > of preceding frame sizes from the total remaining data, eliminating > the need to explicitly store the last frame's dimensions. That's Section 10.3 of RFC 9559, "Block Lacing." So the fix really is trivial: add "; see Section 10.3 of [RFC9559]" (or similar) at both of the two places above, and RFC9559 moves from an informative to a normative reference. --- Section 8.1, Table 4, "Matroska Codec IDs" registry: 3212 > | S_SSA | 17 | SubStation Alpha | Reclaimed, | 3213 > | | | Format | Section 3.5.7 | This points readers to Section 3.5.7, which is S_TEXT/ASS. But the Codec ID S_SSA is actually discussed in Section 3.5.9 (S_TEXT/SSA): 1571 > The codec MAY also be found with the Codec ID S_SSA, but using that 1572 > value is NOT RECOMMENDED. s/Section 3.5.7/Section 3.5.9/ --- Section 3.2, recommendations for new Codec Mappings: 384 > These recommendations are based on Section 3 of [RFC6648]. RFC 6648 Section 3 actually says SHOULD NOT for the "X-" prefix, not MUST NOT. Elevating it to MUST NOT here is a reasonable editorial choice for a registry-governed identifier space, but the text presents it as directly "based on" RFC 6648 without noting that it's strengthening the recommendation. A short note to that effect would avoid a reader assuming RFC 6648 itself mandates this. --------------------------------------------------------------------- NIT ---------------------------------------------------------------------- All comments below are about very minor potential issues that you may choose to address in some way - or ignore - as you see fit. Some were flagged by automated tools (via https://github.com/larseggert/ietf-reviewtool), so there will likely be some false positives. There is no need to let me know what you did with these suggestions. Section 9.1, [ITU-T.H.262] normative reference: 3427 > [ITU-T.H.262] 3428 > ITU-T, "Procedure for the allocation of ITU-T defined 3429 > codes for non-standard facilities", ITU-T 3430 > Recommendation H.262, July 1995, 3431 > <https://www.itu.int/rec/T-REC-H.262/en>. That title is word-for-word the title given later in the document for [ITU-T.35] (Informative References) — it's the wrong title. The actual title of ITU-T Recommendation H.262 is "Information technology - Generic coding of moving pictures and associated audio information: Video" (the joint ISO/IEC 13818-2 MPEG-2 video spec, which is what Section 3.3.12 actually needs). s/Procedure for the allocation of ITU-T defined codes for non-standard facilities/Information technology - Generic coding of moving pictures and associated audio information: Video/ --- Section 9.1, [ISO.11172-3] normative reference: 3403 > [ISO.11172-3] 3404 > International Organization for Standardization, 3405 > "Information technology - Coding of moving pictures and 3406 > associated audio for digital storage median at up to about 3407 > 1,5 Mbit/s - Part 3: Audio", ISO 11172-2:1993, August 3408 > 1993. The title says "Part 3: Audio" but the document number given is 11172-2, which is Part 2 (Video) — already cited two entries above for [ISO.11172-2]. The correct number for the audio part is ISO/IEC 11172-3:1993. s/ISO 11172-2:1993/ISO\/IEC 11172-3:1993/ --- Section 3.4.11, A_AC3 description: 995 > Section 4.4.2.1 of [ETSI.TS102-366] is 10 or below. Channel number 996 > have to be read from the corresponding audio element s/Channel number have to be read from the corresponding audio element/The channel number has to be read from the corresponding audio element./ --- Section 3.3.9, V_MPEGH/ISO/HEVC field layout: 526 > Codec Name: HEVC/H.265 527 > Description: Individual pictures (which could be a frame, a field, or Every other codec entry has a blank line between fields (Codec ID / Codec Name / Description / Initialization). This one runs Codec Name straight into Description with no blank line. The same thing happens in Section 3.3.13 (V_MPEG4/ISO/AVC), 3.3.28 (V_VP8), and 3.5.3 (S_HDMV/PGS). Cosmetic, but easy to fix in one pass.
I support Roman's DISCUSS and would like to understand how consensus was achieved/declared. To assist the reader, please correct these references between sections: Section 3.5.3 defines presentation graphics subtitles and should therefore refer to Section 5.5 (instead of 5.6), and Section 3.5.4 defines text subtitles and should therefore refer to Section 5.6 on text subtitles (instead of 5.5).