|
7 | 7 | <link href="https://www.w3.org/StyleSheets/TR/2021/W3C-ED" rel="stylesheet"> |
8 | 8 | <meta content="Bikeshed version 3f621ba99, updated Mon Jul 28 15:38:36 2025 -0700" name="generator"> |
9 | 9 | <link href="https://www.w3.org/TR/webrtc-encoded-transform/" rel="canonical"> |
10 | | - <meta content="6ef8bde00d955042c8b8b98925e02d3dc1c93ff0" name="revision"> |
| 10 | + <meta content="c181f8b501ccf17b0e6983aa25ade6582729aa7a" name="revision"> |
11 | 11 | <meta content="dark light" name="color-scheme"> |
12 | 12 | <link href="https://www.w3.org/StyleSheets/TR/2021/dark.css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css"> |
13 | 13 | <style>/* Boilerplate: style-autolinks */ |
|
699 | 699 | </p> |
700 | 700 | <h1 class="p-name no-ref" id="title">WebRTC Encoded Transform</h1> |
701 | 701 | <p id="w3c-state"><a href="https://www.w3.org/standards/types/#ED">Editor’s Draft</a>, |
702 | | - <time class="dt-updated" datetime="2025-10-09">9 October 2025</time></p> |
| 702 | + <time class="dt-updated" datetime="2025-10-16">16 October 2025</time></p> |
703 | 703 | <details open> |
704 | 704 | <summary>More details about this document</summary> |
705 | 705 | <div data-fill-with="spec-metadata"> |
@@ -1195,15 +1195,15 @@ <h3 class="heading settled" data-level="3.1" id="sframe-algorithms"><span class= |
1195 | 1195 | <p>If the SFrame algorithm exits abruptly with an error, <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#queue-a-task" id="ref-for-queue-a-task①">queue a task</a> to run the following sub steps:</p> |
1196 | 1196 | <ol> |
1197 | 1197 | <li data-md> |
1198 | | - <p>If the processing fails on decryption side due to <var>data</var> not following the SFrame format, <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-fire" id="ref-for-concept-event-fire">fire an event</a> named <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/webrtc-encoded-transform/#dom-sframetransform-onerror" id="ref-for-dom-sframetransform-onerror">error</a></code> at <var>this</var>, |
| 1198 | + <p>If the processing fails on decryption side due to <var>data</var> not following the SFrame format, <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-fire" id="ref-for-concept-event-fire">fire an event</a> named <code class="idl"><a data-link-type="idl" href="#dom-sframekeymanagement-onerror" id="ref-for-dom-sframekeymanagement-onerror">error</a></code> at <var>this</var>, |
1199 | 1199 | using the <code class="idl"><a data-link-type="idl" href="#sframetransformerrorevent" id="ref-for-sframetransformerrorevent">SFrameTransformErrorEvent</a></code> interface with its <code class="idl"><a data-link-type="idl" href="#dom-sframetransformerrorevent-errortype" id="ref-for-dom-sframetransformerrorevent-errortype">errorType</a></code> attribute set to <code class="idl"><a data-link-type="idl" href="#dom-sframetransformerroreventtype-syntax" id="ref-for-dom-sframetransformerroreventtype-syntax">syntax</a></code> |
1200 | 1200 | and its <code class="idl"><a data-link-type="idl" href="#dom-sframetransformerrorevent-frame" id="ref-for-dom-sframetransformerrorevent-frame">frame</a></code> attribute set to <var>frame</var>.</p> |
1201 | 1201 | <li data-md> |
1202 | | - <p>If the processing fails on decryption side due to the key identifier parsed in <var>data</var> being unknown, <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-fire" id="ref-for-concept-event-fire①">fire an event</a> named <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/webrtc-encoded-transform/#dom-sframetransform-onerror" id="ref-for-dom-sframetransform-onerror①">error</a></code> at <var>this</var>, |
| 1202 | + <p>If the processing fails on decryption side due to the key identifier parsed in <var>data</var> being unknown, <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-fire" id="ref-for-concept-event-fire①">fire an event</a> named <code class="idl"><a data-link-type="idl" href="#dom-sframekeymanagement-onerror" id="ref-for-dom-sframekeymanagement-onerror①">error</a></code> at <var>this</var>, |
1203 | 1203 | using the <code class="idl"><a data-link-type="idl" href="#sframetransformerrorevent" id="ref-for-sframetransformerrorevent①">SFrameTransformErrorEvent</a></code> interface with its <code class="idl"><a data-link-type="idl" href="#dom-sframetransformerrorevent-errortype" id="ref-for-dom-sframetransformerrorevent-errortype①">errorType</a></code> attribute set to <code class="idl"><a data-link-type="idl" href="#dom-sframetransformerroreventtype-keyid" id="ref-for-dom-sframetransformerroreventtype-keyid">keyID</a></code>, |
1204 | 1204 | its <code class="idl"><a data-link-type="idl" href="#dom-sframetransformerrorevent-frame" id="ref-for-dom-sframetransformerrorevent-frame①">frame</a></code> attribute set to <var>frame</var> and its <code class="idl"><a data-link-type="idl" href="#dom-sframetransformerrorevent-keyid" id="ref-for-dom-sframetransformerrorevent-keyid">keyID</a></code> attribute set to the keyID value parsed in the SFrame header.</p> |
1205 | 1205 | <li data-md> |
1206 | | - <p>If the processing fails on decryption side due to validation of the authentication tag, <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-fire" id="ref-for-concept-event-fire②">fire an event</a> named <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/webrtc-encoded-transform/#dom-sframetransform-onerror" id="ref-for-dom-sframetransform-onerror②">error</a></code> at <var>this</var>, |
| 1206 | + <p>If the processing fails on decryption side due to validation of the authentication tag, <a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-fire" id="ref-for-concept-event-fire②">fire an event</a> named <code class="idl"><a data-link-type="idl" href="#dom-sframekeymanagement-onerror" id="ref-for-dom-sframekeymanagement-onerror②">error</a></code> at <var>this</var>, |
1207 | 1207 | using the <code class="idl"><a data-link-type="idl" href="#sframetransformerrorevent" id="ref-for-sframetransformerrorevent②">SFrameTransformErrorEvent</a></code> interface with its <code class="idl"><a data-link-type="idl" href="#dom-sframetransformerrorevent-errortype" id="ref-for-dom-sframetransformerrorevent-errortype②">errorType</a></code> attribute set to <code class="idl"><a data-link-type="idl" href="#dom-sframetransformerroreventtype-authentication" id="ref-for-dom-sframetransformerroreventtype-authentication">authentication</a></code> |
1208 | 1208 | and its <code class="idl"><a data-link-type="idl" href="#dom-sframetransformerrorevent-frame" id="ref-for-dom-sframetransformerrorevent-frame②">frame</a></code> attribute set to <var>frame</var>.</p> |
1209 | 1209 | <li data-md> |
@@ -2353,11 +2353,6 @@ <h3 class="no-num no-ref heading settled" id="index-defined-elsewhere"><span cla |
2353 | 2353 | <li><span class="dfn-paneled" id="e4db230f">RTCRtpReceiver</span> |
2354 | 2354 | <li><span class="dfn-paneled" id="b161d57f">RTCRtpSender</span> |
2355 | 2355 | </ul> |
2356 | | - <li> |
2357 | | - <a data-link-type="biblio">[WEBRTC-ENCODED-TRANSFORM]</a> defines the following terms: |
2358 | | - <ul> |
2359 | | - <li><span class="dfn-paneled" id="134fcc6a">onerror</span> |
2360 | | - </ul> |
2361 | 2356 | </ul> |
2362 | 2357 | <h2 class="no-num no-ref heading settled" id="references"><span class="content">References</span><a class="self-link" href="#references"></a></h2> |
2363 | 2358 | <h3 class="no-num no-ref heading settled" id="normative"><span class="content">Normative References</span><a class="self-link" href="#normative"></a></h3> |
@@ -2390,8 +2385,6 @@ <h3 class="no-num no-ref heading settled" id="normative"><span class="content">N |
2390 | 2385 | <dd>Edgar Chen; Timothy Gu. <a href="https://webidl.spec.whatwg.org/"><cite>Web IDL Standard</cite></a>. Living Standard. URL: <a href="https://webidl.spec.whatwg.org/">https://webidl.spec.whatwg.org/</a> |
2391 | 2386 | <dt id="biblio-webrtc">[WEBRTC] |
2392 | 2387 | <dd>Cullen Jennings; et al. <a href="https://w3c.github.io/webrtc-pc/"><cite>WebRTC: Real-Time Communication in Browsers</cite></a>. URL: <a href="https://w3c.github.io/webrtc-pc/">https://w3c.github.io/webrtc-pc/</a> |
2393 | | - <dt id="biblio-webrtc-encoded-transform">[WEBRTC-ENCODED-TRANSFORM] |
2394 | | - <dd>Harald Alvestrand; Guido Urdaneta; youenn fablet. <a href="https://w3c.github.io/webrtc-encoded-transform/"><cite>WebRTC Encoded Transform</cite></a>. URL: <a href="https://w3c.github.io/webrtc-encoded-transform/">https://w3c.github.io/webrtc-encoded-transform/</a> |
2395 | 2388 | </dl> |
2396 | 2389 | <h3 class="no-num no-ref heading settled" id="informative"><span class="content">Informative References</span><a class="self-link" href="#informative"></a></h3> |
2397 | 2390 | <dl> |
@@ -2802,7 +2795,6 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I |
2802 | 2795 | "0e9f636b": {"dfnID":"0e9f636b","dfnText":"DOMHighResTimeStamp","external":true,"refSections":[{"refs":[{"id":"ref-for-dom-domhighrestimestamp"},{"id":"ref-for-dom-domhighrestimestamp\u2460"},{"id":"ref-for-dom-domhighrestimestamp\u2461"}],"title":"4.1. RTCEncodedFrameMetadata dictionary"},{"refs":[{"id":"ref-for-dom-domhighrestimestamp\u2462"},{"id":"ref-for-dom-domhighrestimestamp\u2463"},{"id":"ref-for-dom-domhighrestimestamp\u2464"}],"title":"4.1.1. Members"}],"url":"https://w3c.github.io/hr-time/#dom-domhighrestimestamp"}, |
2803 | 2796 | "0fe84b59": {"dfnID":"0fe84b59","dfnText":"signal","external":true,"refSections":[{"refs":[{"id":"ref-for-abortcontroller-signal"}],"title":"2.1.1. Stream creation"},{"refs":[{"id":"ref-for-abortcontroller-signal\u2460"},{"id":"ref-for-abortcontroller-signal\u2461"},{"id":"ref-for-abortcontroller-signal\u2462"},{"id":"ref-for-abortcontroller-signal\u2463"}],"title":"2.2. Extension attribute"}],"url":"https://dom.spec.whatwg.org/#abortcontroller-signal"}, |
2804 | 2797 | "129bdae8": {"dfnID":"129bdae8","dfnText":"Event","external":true,"refSections":[{"refs":[{"id":"ref-for-event"}],"title":"3. SFrameTransform"},{"refs":[{"id":"ref-for-event\u2460"},{"id":"ref-for-event\u2461"}],"title":"4.7. Interfaces"}],"url":"https://dom.spec.whatwg.org/#event"}, |
2805 | | -"134fcc6a": {"dfnID":"134fcc6a","dfnText":"onerror","external":true,"refSections":[{"refs":[{"id":"ref-for-dom-sframetransform-onerror"},{"id":"ref-for-dom-sframetransform-onerror\u2460"},{"id":"ref-for-dom-sframetransform-onerror\u2461"}],"title":"3.1. Algorithms"}],"url":"https://w3c.github.io/webrtc-encoded-transform/#dom-sframetransform-onerror"}, |
2806 | 2798 | "2296404c": {"dfnID":"2296404c","dfnText":"signal abort","external":true,"refSections":[{"refs":[{"id":"ref-for-abortcontroller-signal-abort"}],"title":"2.2. Extension attribute"}],"url":"https://dom.spec.whatwg.org/#abortcontroller-signal-abort"}, |
2807 | 2799 | "2bc0cdf4": {"dfnID":"2bc0cdf4","dfnText":"EventTarget","external":true,"refSections":[{"refs":[{"id":"ref-for-eventtarget"},{"id":"ref-for-eventtarget\u2460"},{"id":"ref-for-eventtarget\u2461"}],"title":"3. SFrameTransform"},{"refs":[{"id":"ref-for-eventtarget\u2462"}],"title":"4.7. Interfaces"}],"url":"https://dom.spec.whatwg.org/#eventtarget"}, |
2808 | 2800 | "2e66eaf1": {"dfnID":"2e66eaf1","dfnText":"AbortController","external":true,"refSections":[{"refs":[{"id":"ref-for-abortcontroller"}],"title":"2.1.1. Stream creation"},{"refs":[{"id":"ref-for-abortcontroller\u2460"}],"title":"2.2. Extension attribute"}],"url":"https://dom.spec.whatwg.org/#abortcontroller"}, |
@@ -2944,7 +2936,7 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I |
2944 | 2936 | "dom-sframedecrypterstream-sframedecrypterstream-options-options": {"dfnID":"dom-sframedecrypterstream-sframedecrypterstream-options-options","dfnText":"options","external":false,"refSections":[],"url":"#dom-sframedecrypterstream-sframedecrypterstream-options-options"}, |
2945 | 2937 | "dom-sframeencrypterstream-sframeencrypterstream": {"dfnID":"dom-sframeencrypterstream-sframeencrypterstream","dfnText":"new SFrameEncrypterStream(options)","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-sframeencrypterstream-sframeencrypterstream"}],"title":"3. SFrameTransform"}],"url":"#dom-sframeencrypterstream-sframeencrypterstream"}, |
2946 | 2938 | "dom-sframeencrypterstream-sframeencrypterstream-options-options": {"dfnID":"dom-sframeencrypterstream-sframeencrypterstream-options-options","dfnText":"options","external":false,"refSections":[],"url":"#dom-sframeencrypterstream-sframeencrypterstream-options-options"}, |
2947 | | -"dom-sframekeymanagement-onerror": {"dfnID":"dom-sframekeymanagement-onerror","dfnText":"onerror","external":false,"refSections":[],"url":"#dom-sframekeymanagement-onerror"}, |
| 2939 | +"dom-sframekeymanagement-onerror": {"dfnID":"dom-sframekeymanagement-onerror","dfnText":"onerror","external":false,"refSections":[{"refs":[{"id":"ref-for-dom-sframekeymanagement-onerror"},{"id":"ref-for-dom-sframekeymanagement-onerror\u2460"},{"id":"ref-for-dom-sframekeymanagement-onerror\u2461"}],"title":"3.1. Algorithms"}],"url":"#dom-sframekeymanagement-onerror"}, |
2948 | 2940 | "dom-sframekeymanagement-setencryptionkey": {"dfnID":"dom-sframekeymanagement-setencryptionkey","dfnText":"setEncryptionKey","external":false,"refSections":[],"url":"#dom-sframekeymanagement-setencryptionkey"}, |
2949 | 2941 | "dom-sframekeymanagement-setencryptionkey-key-keyid-key": {"dfnID":"dom-sframekeymanagement-setencryptionkey-key-keyid-key","dfnText":"key","external":false,"refSections":[],"url":"#dom-sframekeymanagement-setencryptionkey-key-keyid-key"}, |
2950 | 2942 | "dom-sframekeymanagement-setencryptionkey-key-keyid-keyid": {"dfnID":"dom-sframekeymanagement-setencryptionkey-key-keyid-keyid","dfnText":"keyID","external":false,"refSections":[],"url":"#dom-sframekeymanagement-setencryptionkey-key-keyid-keyid"}, |
@@ -3429,6 +3421,7 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I |
3429 | 3421 | "#dom-rtctransformevent-transformer": {"displayText":"transformer","export":true,"for_":["RTCTransformEvent"],"level":"","normative":true,"shortname":"webrtc-encoded-transform","spec":"webrtc-encoded-transform","status":"local","text":"transformer","type":"attribute","url":"#dom-rtctransformevent-transformer"}, |
3430 | 3422 | "#dom-sframedecrypterstream-sframedecrypterstream": {"displayText":"SFrameDecrypterStream(options)","export":true,"for_":["SFrameDecrypterStream"],"level":"","normative":true,"shortname":"webrtc-encoded-transform","spec":"webrtc-encoded-transform","status":"local","text":"SFrameDecrypterStream(options)","type":"constructor","url":"#dom-sframedecrypterstream-sframedecrypterstream"}, |
3431 | 3423 | "#dom-sframeencrypterstream-sframeencrypterstream": {"displayText":"SFrameEncrypterStream(options)","export":true,"for_":["SFrameEncrypterStream"],"level":"","normative":true,"shortname":"webrtc-encoded-transform","spec":"webrtc-encoded-transform","status":"local","text":"SFrameEncrypterStream(options)","type":"constructor","url":"#dom-sframeencrypterstream-sframeencrypterstream"}, |
| 3424 | +"#dom-sframekeymanagement-onerror": {"displayText":"onerror","export":true,"for_":["SFrameKeyManagement"],"level":"","normative":true,"shortname":"webrtc-encoded-transform","spec":"webrtc-encoded-transform","status":"local","text":"onerror","type":"attribute","url":"#dom-sframekeymanagement-onerror"}, |
3432 | 3425 | "#dom-sframetransform-sframetransform": {"displayText":"SFrameTransform(options)","export":true,"for_":["SFrameTransform"],"level":"","normative":true,"shortname":"webrtc-encoded-transform","spec":"webrtc-encoded-transform","status":"local","text":"SFrameTransform(options)","type":"constructor","url":"#dom-sframetransform-sframetransform"}, |
3433 | 3426 | "#dom-sframetransformerrorevent-errortype": {"displayText":"errorType","export":true,"for_":["SFrameTransformErrorEvent"],"level":"","normative":true,"shortname":"webrtc-encoded-transform","spec":"webrtc-encoded-transform","status":"local","text":"errorType","type":"attribute","url":"#dom-sframetransformerrorevent-errortype"}, |
3434 | 3427 | "#dom-sframetransformerrorevent-frame": {"displayText":"frame","export":true,"for_":["SFrameTransformErrorEvent"],"level":"","normative":true,"shortname":"webrtc-encoded-transform","spec":"webrtc-encoded-transform","status":"local","text":"frame","type":"attribute","url":"#dom-sframetransformerrorevent-frame"}, |
@@ -3504,7 +3497,6 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I |
3504 | 3497 | "https://w3c.github.io/mediacapture-main/#dom-mediastreamtrack": {"displayText":"MediaStreamTrack","export":true,"for_":[],"level":"1","normative":true,"shortname":"mediacapture-streams","spec":"mediacapture-streams","status":"current","text":"MediaStreamTrack","type":"interface","url":"https://w3c.github.io/mediacapture-main/#dom-mediastreamtrack"}, |
3505 | 3498 | "https://w3c.github.io/webcodecs/#dom-videoframe-timestamp": {"displayText":"timestamp","export":true,"for_":["VideoFrame"],"level":"1","normative":true,"shortname":"webcodecs","spec":"webcodecs","status":"current","text":"timestamp","type":"attribute","url":"https://w3c.github.io/webcodecs/#dom-videoframe-timestamp"}, |
3506 | 3499 | "https://w3c.github.io/webcrypto/#dfn-CryptoKey": {"displayText":"CryptoKey","export":true,"for_":[],"level":"2","normative":true,"shortname":"webcrypto","spec":"webcrypto-2","status":"current","text":"CryptoKey","type":"interface","url":"https://w3c.github.io/webcrypto/#dfn-CryptoKey"}, |
3507 | | -"https://w3c.github.io/webrtc-encoded-transform/#dom-sframetransform-onerror": {"displayText":"onerror","export":true,"for_":["SFrameTransform"],"level":"1","normative":true,"shortname":"webrtc-encoded-transform","spec":"webrtc-encoded-transform","status":"current","text":"onerror","type":"attribute","url":"https://w3c.github.io/webrtc-encoded-transform/#dom-sframetransform-onerror"}, |
3508 | 3500 | "https://w3c.github.io/webrtc-pc/#dom-rtcconfiguration": {"displayText":"RTCConfiguration","export":true,"for_":[],"level":"1","normative":true,"shortname":"webrtc","spec":"webrtc","status":"current","text":"RTCConfiguration","type":"dictionary","url":"https://w3c.github.io/webrtc-pc/#dom-rtcconfiguration"}, |
3509 | 3501 | "https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection": {"displayText":"RTCPeerConnection","export":true,"for_":[],"level":"1","normative":true,"shortname":"webrtc","spec":"webrtc","status":"current","text":"RTCPeerConnection","type":"interface","url":"https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection"}, |
3510 | 3502 | "https://w3c.github.io/webrtc-pc/#dom-rtcrtpreceiver": {"displayText":"RTCRtpReceiver","export":true,"for_":[],"level":"1","normative":true,"shortname":"webrtc","spec":"webrtc","status":"current","text":"RTCRtpReceiver","type":"interface","url":"https://w3c.github.io/webrtc-pc/#dom-rtcrtpreceiver"}, |
|
0 commit comments