Skip to content

Commit 76a8a94

Browse files
Update registry requirements
SHA: 084ca4f Reason: push, by chrisn Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent c6b786c commit 76a8a94

File tree

1 file changed

+154
-29
lines changed

1 file changed

+154
-29
lines changed

format-registry/stream/index.html

Lines changed: 154 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<!DOCTYPE html><html lang="en" dir="ltr"><head>
22
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
3-
<meta name="generator" content="ReSpec 35.1.1">
3+
<meta name="generator" content="ReSpec 35.6.1">
44
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
55
<style>
66
dfn{cursor:pointer}
@@ -42,7 +42,7 @@
4242
.respec-offending-element{background:url(data:image/gif;base64,R0lGODdhBAADAPEAANv///8AAP///wAAACwAAAAABAADAEACBZQjmIAFADs=) bottom repeat-x}
4343
}
4444
#references :target{background:#eaf3ff;animation:pop .4s ease-in-out 0s 1}
45-
cite .bibref{font-style:normal}
45+
cite .bibref{font-style:italic}
4646
a[href].orcid{padding-left:4px;padding-right:4px}
4747
a[href].orcid>svg{margin-bottom:-2px}
4848
ol.tof,ul.tof{list-style:none outside none}
@@ -86,8 +86,26 @@
8686
</style>
8787

8888
<meta name="color-scheme" content="light">
89+
<meta name="revision" content="084ca4fd322ea6cef5e84fc2d430e09f75f21cb1">
8990
<meta name="description" content="This specification defines the stream formats for use with the Encrypted Media Extensions [ENCRYPTED-MEDIA].">
9091
<style>
92+
var:hover{text-decoration:underline;cursor:pointer}
93+
var.respec-hl{color:var(--color,#000);background-color:var(--bg-color);box-shadow:0 0 0 2px var(--bg-color)}
94+
@media (prefers-color-scheme:dark){
95+
var.respec-hl{filter:saturate(.9) brightness(.9)}
96+
}
97+
var.respec-hl-c1{--bg-color:#f4d200}
98+
var.respec-hl-c2{--bg-color:#ff87a2}
99+
var.respec-hl-c3{--bg-color:#96e885}
100+
var.respec-hl-c4{--bg-color:#3eeed2}
101+
var.respec-hl-c5{--bg-color:#eacfb6}
102+
var.respec-hl-c6{--bg-color:#82ddff}
103+
var.respec-hl-c7{--bg-color:#ffbcf2}
104+
@media print{
105+
var.respec-hl{background:0 0;color:#000;box-shadow:unset}
106+
}
107+
</style>
108+
<style>
91109
var{position:relative;cursor:pointer}
92110
var[data-type]::after,var[data-type]::before{position:absolute;left:50%;top:-6px;opacity:0;transition:opacity .4s;pointer-events:none}
93111
var[data-type]::before{content:"";transform:translateX(-50%);border-width:4px 6px 0 6px;border-style:solid;border-color:transparent;border-top-color:#222}
@@ -150,15 +168,16 @@
150168
"xref": [
151169
"encrypted-media"
152170
],
153-
"publishISODate": "2024-07-22T00:00:00.000Z",
154-
"generatedSubtitle": "W3C Editor's Draft 22 July 2024"
171+
"gitRevision": "084ca4fd322ea6cef5e84fc2d430e09f75f21cb1",
172+
"publishISODate": "2025-12-03T00:00:00.000Z",
173+
"generatedSubtitle": "W3C Editor's Draft 03 December 2025"
155174
}</script>
156175
<link rel="stylesheet" href="https://www.w3.org/StyleSheets/TR/2021/W3C-ED"></head>
157176
<body class="h-entry informative" data-cite="encrypted-media"><div class="head">
158177
<p class="logos"><a class="logo" href="https://www.w3.org/"><img crossorigin="" alt="W3C" height="48" src="https://www.w3.org/StyleSheets/TR/2021/logos/W3C" width="72">
159178
</a></p>
160179
<h1 id="title" class="title">Encrypted Media Extensions Stream Format Registry</h1>
161-
<p id="w3c-state"><a href="https://www.w3.org/standards/types#ED">W3C Editor's Draft</a> <time class="dt-published" datetime="2024-07-22">22 July 2024</time></p>
180+
<p id="w3c-state"><a href="https://www.w3.org/standards/types#ED">W3C Editor's Draft</a> <time class="dt-published" datetime="2025-12-03">03 December 2025</time></p>
162181
<details open="">
163182
<summary>More details about this document</summary>
164183
<dl>
@@ -211,7 +230,7 @@ <h1 id="title" class="title">Encrypted Media Extensions Stream Format Registry</
211230
<p class="copyright">
212231
<a href="https://www.w3.org/policies/#copyright">Copyright</a>
213232
©
214-
2024
233+
2025
215234

216235
<a href="https://www.w3.org/">World Wide Web Consortium</a>.
217236
<abbr title="World Wide Web Consortium">W3C</abbr><sup>®</sup>
@@ -223,23 +242,23 @@ <h1 id="title" class="title">Encrypted Media Extensions Stream Format Registry</
223242
</div>
224243

225244
<section id="abstract" class="introductory"><h2>Abstract</h2>
226-
<p>This specification defines the stream formats for use with the <cite><a data-matched-text="[[[ENCRYPTED-MEDIA]]]" href="https://www.w3.org/TR/encrypted-media-1/">Encrypted Media Extensions</a></cite> [<cite><a class="bibref" data-link-type="biblio" href="#bib-encrypted-media" title="Encrypted Media Extensions">ENCRYPTED-MEDIA</a></cite>].</p>
245+
<p>This specification defines the stream formats for use with the <cite><a data-matched-text="[[[ENCRYPTED-MEDIA]]]" href="https://www.w3.org/TR/encrypted-media-2/">Encrypted Media Extensions</a></cite> [<cite><a class="bibref" data-link-type="biblio" href="#bib-encrypted-media" title="Encrypted Media Extensions">ENCRYPTED-MEDIA</a></cite>].</p>
227246
<p>This registry is non-normative.</p>
228247
</section>
229248

230249
<section id="sotd" class="introductory"><h2>Status of This Document</h2><p><em>This section describes the status of this
231250
document at the time of its publication. A list of current <abbr title="World Wide Web Consortium">W3C</abbr>
232251
publications and the latest revision of this technical report can be found
233-
in the <a href="https://www.w3.org/TR/"><abbr title="World Wide Web Consortium">W3C</abbr> technical reports index</a> at
234-
https://www.w3.org/TR/.</em></p>
252+
in the
253+
<a href="https://www.w3.org/TR/"><abbr title="World Wide Web Consortium">W3C</abbr> standards and drafts index</a>.</em></p>
235254
<p>
236255
This document was published by the <a href="https://www.w3.org/groups/wg/media">Media Working Group</a> as
237256
an Editor's Draft.
238257
</p><p>Publication as an Editor's Draft does not
239258
imply endorsement by <abbr title="World Wide Web Consortium">W3C</abbr> and its Members. </p><p>
240-
This is a draft document and may be updated, replaced or obsoleted by other
259+
This is a draft document and may be updated, replaced, or obsoleted by other
241260
documents at any time. It is inappropriate to cite this document as other
242-
than work in progress.
261+
than a work in progress.
243262

244263
</p><p>
245264

@@ -254,28 +273,28 @@ <h1 id="title" class="title">Encrypted Media Extensions Stream Format Registry</
254273
made in connection with the deliverables of
255274
the group; that page also includes
256275
instructions for disclosing a patent. An individual who has actual
257-
knowledge of a patent which the individual believes contains
276+
knowledge of a patent that the individual believes contains
258277
<a href="https://www.w3.org/policies/patent-policy/#def-essential">Essential Claim(s)</a>
259278
must disclose the information in accordance with
260279
<a href="https://www.w3.org/policies/patent-policy/#sec-Disclosure">section 6 of the <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
261280

262281
</p><p>
263282
This document is governed by the
264-
<a id="w3c_process_revision" href="https://www.w3.org/policies/process/20231103/">03 November 2023 <abbr title="World Wide Web Consortium">W3C</abbr> Process Document</a>.
283+
<a id="w3c_process_revision" href="https://www.w3.org/policies/process/20250818/">18 August 2025 <abbr title="World Wide Web Consortium">W3C</abbr> Process Document</a>.
265284
</p></section><nav id="toc"><h2 class="introductory" id="table-of-contents">Table of Contents</h2><ol class="toc"><li class="tocline"><a class="tocxref" href="#abstract">Abstract</a></li><li class="tocline"><a class="tocxref" href="#sotd">Status of This Document</a></li><li class="tocline"><a class="tocxref" href="#purpose"><bdi class="secno">1. </bdi>Purpose</a></li><li class="tocline"><a class="tocxref" href="#organization"><bdi class="secno">2. </bdi>Organization</a></li><li class="tocline"><a class="tocxref" href="#entry-requirements"><bdi class="secno">3. </bdi>Registration Entry Requirements</a></li><li class="tocline"><a class="tocxref" href="#registry"><bdi class="secno">4. </bdi>Registry</a></li><li class="tocline"><a class="tocxref" href="#references"><bdi class="secno">A. </bdi>References</a><ol class="toc"><li class="tocline"><a class="tocxref" href="#informative-references"><bdi class="secno">A.1 </bdi>Informative references</a></li></ol></li></ol></nav>
266285

267286
<section id="purpose"><div class="header-wrapper"><h2 id="x1-purpose"><bdi class="secno">1. </bdi>Purpose</h2><a class="self-link" href="#purpose" aria-label="Permalink for Section 1."></a></div>
268287

269288
<p>This registry is intended to enhance interoperability among implementations and users of encrypted media streams with the
270-
<cite><a data-matched-text="[[[ENCRYPTED-MEDIA]]]" href="https://www.w3.org/TR/encrypted-media-1/">Encrypted Media Extensions</a></cite> (EME) specification [<cite><a class="bibref" data-link-type="biblio" href="#bib-encrypted-media" title="Encrypted Media Extensions">ENCRYPTED-MEDIA</a></cite>]. In particular, this registry provides the means (1) to identify
289+
<cite><a data-matched-text="[[[ENCRYPTED-MEDIA]]]" href="https://www.w3.org/TR/encrypted-media-2/">Encrypted Media Extensions</a></cite> (EME) specification [<cite><a class="bibref" data-link-type="biblio" href="#bib-encrypted-media" title="Encrypted Media Extensions">ENCRYPTED-MEDIA</a></cite>]. In particular, this registry provides the means (1) to identify
271290
and avoid collisions among content type strings, and (2) to disclose information about encrypted data formats accepted by EME
272291
implementations to promote interoperability.
273292
</p></section>
274293

275294
<section id="organization"><div class="header-wrapper"><h2 id="x2-organization"><bdi class="secno">2. </bdi>Organization</h2><a class="self-link" href="#organization" aria-label="Permalink for Section 2."></a></div>
276295

277296
<p>The registry maintains a mapping between content type strings and encryption format specifications, which describe the structure, semantics, and processing of the formats.
278-
The strings are those used for the media type/subtype pairs in <code>contentType</code> values provided to <cite><a data-matched-text="[[[ENCRYPTED-MEDIA]]]" href="https://www.w3.org/TR/encrypted-media-1/">Encrypted Media Extensions</a></cite> [<cite><a class="bibref" data-link-type="biblio" href="#bib-encrypted-media" title="Encrypted Media Extensions">ENCRYPTED-MEDIA</a></cite>] APIs.
297+
The strings are those used for the media type/subtype pairs in <code>contentType</code> values provided to <cite><a data-matched-text="[[[ENCRYPTED-MEDIA]]]" href="https://www.w3.org/TR/encrypted-media-2/">Encrypted Media Extensions</a></cite> [<cite><a class="bibref" data-link-type="biblio" href="#bib-encrypted-media" title="Encrypted Media Extensions">ENCRYPTED-MEDIA</a></cite>] APIs.
279298
</p>
280299
<p>This registry is not intended to include any information on whether a stream format is encumbered by intellectual property claims. Implementors and users
281300
are advised to seek appropriate legal counsel in this matter if they intend to implement or use a specific stream format.</p>
@@ -285,23 +304,32 @@ <h1 id="title" class="title">Encrypted Media Extensions Stream Format Registry</
285304

286305
<ol>
287306
<li>
288-
<p>Each entry must include a unique MIME-type/subtype pair. If the byte stream format is derived-from an existing file format, then it should use the MIME-type/subtype pairs typically used for the file format.</p>
307+
Each entry must include a unique MIME-type/subtype pair. If the byte stream format is derived-from an existing file format, then it should use the MIME-type/subtype pairs typically used for the file format.
289308
</li>
290309
<li>
291-
<p>Each entry must include a link that references a publicly available specification.
292-
It is recommended that such a specification be made available without cost (other than reasonable shipping and handling if not available by online means).
293-
</p>
310+
Each entry must include a link that references a publicly available specification.
311+
It is recommended that such a specification be made available without cost (other than reasonable shipping and handling if not available by online means).
294312
</li>
295313
<li>
296-
<p>Candidate entries must be announced by filing an issue in the
297-
<a href="https://github.com/w3c/encrypted-media/issues/">Encrypted Media Extensions GitHub issue tracker</a>
298-
so they can be discussed and evaluated for compliance before being added to
299-
the registry.
300-
</p>
314+
Per the <cite><a data-matched-text="[[[ENCRYPTED-MEDIA]]]" href="https://www.w3.org/TR/encrypted-media-2/">Encrypted Media Extensions</a></cite> specification, the media container for a stream format must not be encrypted.</li>
315+
<li>
316+
Per the <cite><a data-matched-text="[[[ENCRYPTED-MEDIA]]]" href="https://www.w3.org/TR/encrypted-media-2/">Encrypted Media Extensions</a></cite> specification, entries must be fully specified and support "common encryption" such that the content can decrypted in a fully specified and compatible way when a key or keys are provided.
317+
</li><li>
318+
Candidate entries must be announced by filing an issue in the
319+
<a href="https://github.com/w3c/encrypted-media/issues/">Encrypted Media Extensions GitHub issue tracker</a>
320+
so they can be discussed and evaluated for compliance before being added to
321+
the registry.
322+
</li>
323+
<li>
324+
If the Media Working Group reaches consensus to accept the candidate,
325+
a pull request should be drafted
326+
(either by the registry editors or by the party requesting the candidate registration)
327+
to register the candidate.
328+
The registry editors will review and merge the pull request.
329+
</li>
330+
<li>
331+
Existing entries cannot be deleted or deprecated.
301332
</li>
302-
<li><p>Per the <cite><a data-matched-text="[[[ENCRYPTED-MEDIA]]]" href="https://www.w3.org/TR/encrypted-media-1/">Encrypted Media Extensions</a></cite> specification, the media container for a stream format must not be encrypted.</p></li>
303-
<li><p>Per the <cite><a data-matched-text="[[[ENCRYPTED-MEDIA]]]" href="https://www.w3.org/TR/encrypted-media-1/">Encrypted Media Extensions</a></cite> specification, entries must be fully specified and support "common encryption" such that the content can decrypted in a fully specified and compatible way when a key or keys are provided.</p></li>
304-
<li><p>Existing entries cannot be deleted or deprecated.</p></li>
305333
</ol>
306334
</section>
307335

@@ -341,11 +369,108 @@ <h1 id="title" class="title">Encrypted Media Extensions Stream Format Registry</
341369
</dd><dt id="bib-eme-stream-webm">[EME-STREAM-WEBM]</dt><dd>
342370
<a href="https://www.w3.org/TR/eme-stream-webm/"><cite>WebM Stream Format</cite></a>. Joey Parrish; Greg Freedman. W3C. 18 July 2024. W3C Working Group Note. URL: <a href="https://www.w3.org/TR/eme-stream-webm/">https://www.w3.org/TR/eme-stream-webm/</a>
343371
</dd><dt id="bib-encrypted-media">[ENCRYPTED-MEDIA]</dt><dd>
344-
<a href="https://www.w3.org/TR/encrypted-media-1/"><cite>Encrypted Media Extensions</cite></a>. David Dorwin; Jerry Smith; Mark Watson; Adrian Bateman. W3C. 18 September 2017. W3C Recommendation. URL: <a href="https://www.w3.org/TR/encrypted-media-1/">https://www.w3.org/TR/encrypted-media-1/</a>
372+
<a href="https://www.w3.org/TR/encrypted-media-2/"><cite>Encrypted Media Extensions</cite></a>. Joey Parrish; Greg Freedman. W3C. 21 August 2025. W3C Working Draft. URL: <a href="https://www.w3.org/TR/encrypted-media-2/">https://www.w3.org/TR/encrypted-media-2/</a>
345373
</dd></dl>
346374
</section></section><p role="navigation" id="back-to-top">
347375
<a href="#title"><abbr title="Back to Top"></abbr></a>
348-
</p><script id="respec-dfn-panel">(() => {
376+
</p><script id="respec-highlight-vars">(() => {
377+
// @ts-check
378+
379+
if (document.respec) {
380+
document.respec.ready.then(setupVarHighlighter);
381+
} else {
382+
setupVarHighlighter();
383+
}
384+
385+
function setupVarHighlighter() {
386+
document
387+
.querySelectorAll("var")
388+
.forEach(varElem => varElem.addEventListener("click", highlightListener));
389+
}
390+
391+
function highlightListener(ev) {
392+
ev.stopPropagation();
393+
const { target: varElem } = ev;
394+
const hightligtedElems = highlightVars(varElem);
395+
const resetListener = () => {
396+
const hlColor = getHighlightColor(varElem);
397+
hightligtedElems.forEach(el => removeHighlight(el, hlColor));
398+
[...HL_COLORS.keys()].forEach(key => HL_COLORS.set(key, true));
399+
};
400+
if (hightligtedElems.length) {
401+
document.body.addEventListener("click", resetListener, { once: true });
402+
}
403+
}
404+
405+
// availability of highlight colors. colors from var.css
406+
const HL_COLORS = new Map([
407+
["respec-hl-c1", true],
408+
["respec-hl-c2", true],
409+
["respec-hl-c3", true],
410+
["respec-hl-c4", true],
411+
["respec-hl-c5", true],
412+
["respec-hl-c6", true],
413+
["respec-hl-c7", true],
414+
]);
415+
416+
function getHighlightColor(target) {
417+
// return current colors if applicable
418+
const { value } = target.classList;
419+
const re = /respec-hl-\w+/;
420+
const activeClass = re.test(value) && value.match(re);
421+
if (activeClass) return activeClass[0];
422+
423+
// first color preference
424+
if (HL_COLORS.get("respec-hl-c1") === true) return "respec-hl-c1";
425+
426+
// otherwise get some other available color
427+
return [...HL_COLORS.keys()].find(c => HL_COLORS.get(c)) || "respec-hl-c1";
428+
}
429+
430+
function highlightVars(varElem) {
431+
const textContent = norm(varElem.textContent);
432+
const parent = varElem.closest(".algorithm, section");
433+
const highlightColor = getHighlightColor(varElem);
434+
435+
const varsToHighlight = [...parent.querySelectorAll("var")].filter(
436+
el =>
437+
norm(el.textContent) === textContent &&
438+
el.closest(".algorithm, section") === parent
439+
);
440+
441+
// update availability of highlight color
442+
const colorStatus = varsToHighlight[0].classList.contains("respec-hl");
443+
HL_COLORS.set(highlightColor, colorStatus);
444+
445+
// highlight vars
446+
if (colorStatus) {
447+
varsToHighlight.forEach(el => removeHighlight(el, highlightColor));
448+
return [];
449+
} else {
450+
varsToHighlight.forEach(el => addHighlight(el, highlightColor));
451+
}
452+
return varsToHighlight;
453+
}
454+
455+
function removeHighlight(el, highlightColor) {
456+
el.classList.remove("respec-hl", highlightColor);
457+
// clean up empty class attributes so they don't come in export
458+
if (!el.classList.length) el.removeAttribute("class");
459+
}
460+
461+
function addHighlight(elem, highlightColor) {
462+
elem.classList.add("respec-hl", highlightColor);
463+
}
464+
465+
/**
466+
* Same as `norm` from src/core/utils, but our build process doesn't allow
467+
* imports in runtime scripts, so duplicated here.
468+
* @param {string} str
469+
*/
470+
function norm(str) {
471+
return str.trim().replace(/\s+/g, " ");
472+
}
473+
})()</script><script id="respec-dfn-panel">(() => {
349474
// @ts-check
350475
if (document.respec) {
351476
document.respec.ready.then(setupPanel);

0 commit comments

Comments
 (0)