|
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="aeceff85acba2457effbd857f87b80d2972d7afe" name="revision"> |
| 10 | + <meta content="4b230504f5124298df6d8fb3a7db748d6cc4e770" 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-08-21">21 August 2025</time></p> |
| 702 | + <time class="dt-updated" datetime="2025-09-04">4 September 2025</time></p> |
703 | 703 | <details open>
|
704 | 704 | <summary>More details about this document</summary>
|
705 | 705 | <div data-fill-with="spec-metadata">
|
@@ -1738,8 +1738,8 @@ <h3 class="heading settled" data-level="4.7" id="RTCRtpScriptTransformer-interfa
|
1738 | 1738 | <c- b>interface</c-> <dfn class="dfn-paneled idl-code" data-dfn-type="interface" data-export id="rtcrtpscripttransformer"><code><c- g>RTCRtpScriptTransformer</c-></code></dfn> : <a data-link-type="idl-name" href="https://dom.spec.whatwg.org/#eventtarget" id="ref-for-eventtarget①"><c- n>EventTarget</c-></a> {
|
1739 | 1739 | // Attributes and methods related to the transformer source
|
1740 | 1740 | <c- b>readonly</c-> <c- b>attribute</c-> <a data-link-type="idl-name" href="https://streams.spec.whatwg.org/#readablestream" id="ref-for-readablestream②"><c- n>ReadableStream</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="ReadableStream" href="#dom-rtcrtpscripttransformer-readable" id="ref-for-dom-rtcrtpscripttransformer-readable"><c- g>readable</c-></a>;
|
1741 |
| - <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-promise" id="ref-for-idl-promise①"><c- b>Promise</c-></a><<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-unsigned-long-long" id="ref-for-idl-unsigned-long-long④"><c- b>unsigned</c-> <c- b>long</c-> <c- b>long</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-rtcrtpscripttransformer-generatekeyframe" id="ref-for-dom-rtcrtpscripttransformer-generatekeyframe"><c- g>generateKeyFrame</c-></a>(<c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-DOMString" id="ref-for-idl-DOMString③"><c- b>DOMString</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="RTCRtpScriptTransformer/generateKeyFrame(rid), RTCRtpScriptTransformer/generateKeyFrame()" data-dfn-type="argument" data-export id="dom-rtcrtpscripttransformer-generatekeyframe-rid-rid"><code><c- g>rid</c-></code></dfn>); |
1742 |
| - <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-promise" id="ref-for-idl-promise②"><c- b>Promise</c-></a><<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-undefined" id="ref-for-idl-undefined①"><c- b>undefined</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-rtcrtpscripttransformer-sendkeyframerequest" id="ref-for-dom-rtcrtpscripttransformer-sendkeyframerequest"><c- g>sendKeyFrameRequest</c-></a>(); |
| 1741 | + <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-promise" id="ref-for-idl-promise①"><c- b>Promise</c-></a><<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-undefined" id="ref-for-idl-undefined①"><c- b>undefined</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-rtcrtpscripttransformer-generatekeyframe" id="ref-for-dom-rtcrtpscripttransformer-generatekeyframe"><c- g>generateKeyFrame</c-></a>(<c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-DOMString" id="ref-for-idl-DOMString③"><c- b>DOMString</c-></a> <dfn class="dfn-paneled idl-code" data-dfn-for="RTCRtpScriptTransformer/generateKeyFrame(rid), RTCRtpScriptTransformer/generateKeyFrame()" data-dfn-type="argument" data-export id="dom-rtcrtpscripttransformer-generatekeyframe-rid-rid"><code><c- g>rid</c-></code></dfn>); |
| 1742 | + <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-promise" id="ref-for-idl-promise②"><c- b>Promise</c-></a><<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-undefined" id="ref-for-idl-undefined②"><c- b>undefined</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-rtcrtpscripttransformer-sendkeyframerequest" id="ref-for-dom-rtcrtpscripttransformer-sendkeyframerequest"><c- g>sendKeyFrameRequest</c-></a>(); |
1743 | 1743 | // Attributes and methods related to the transformer sink
|
1744 | 1744 | <c- b>readonly</c-> <c- b>attribute</c-> <a data-link-type="idl-name" href="https://streams.spec.whatwg.org/#writablestream" id="ref-for-writablestream②"><c- n>WritableStream</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="WritableStream" href="#dom-rtcrtpscripttransformer-writable" id="ref-for-dom-rtcrtpscripttransformer-writable"><c- g>writable</c-></a>;
|
1745 | 1745 | <c- b>attribute</c-> <a data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler" id="ref-for-eventhandler②"><c- n>EventHandler</c-></a> <a class="idl-code" data-link-type="attribute" data-type="EventHandler" href="#dom-rtcrtpscripttransformer-onkeyframerequest" id="ref-for-dom-rtcrtpscripttransformer-onkeyframerequest"><c- g>onkeyframerequest</c-></a>;
|
@@ -1932,7 +1932,7 @@ <h3 class="heading settled" data-level="4.11" id="KeyFrame-algorithms"><span cla
|
1932 | 1932 | <li data-md>
|
1933 | 1933 | <p>Remove <var>task</var> from <var>encoder</var>.<code>[[pendingKeyFrameTasks]]</code>.</p>
|
1934 | 1934 | <li data-md>
|
1935 |
| - <p>Resolve <var>task</var>.<code>[[promise]]</code> with <var>frame</var>’s timestamp.</p> |
| 1935 | + <p>Resolve <var>task</var>.<code>[[promise]]</code> with undefined.</p> |
1936 | 1936 | </ol>
|
1937 | 1937 | </ol>
|
1938 | 1938 | </ol>
|
@@ -1960,7 +1960,7 @@ <h3 class="heading settled" data-level="4.11" id="KeyFrame-algorithms"><span cla
|
1960 | 1960 | <h2 class="heading settled" data-level="5" id="rtcrtpsender-extension"><span class="secno">5. </span><span class="content">RTCRtpSender extension</span><a class="self-link" href="#rtcrtpsender-extension"></a></h2>
|
1961 | 1961 | <p>An additional API on <code class="idl"><a data-link-type="idl" href="https://w3c.github.io/webrtc-pc/#dom-rtcrtpsender" id="ref-for-dom-rtcrtpsender①③">RTCRtpSender</a></code> is added to complement the generation of key frame added to <code class="idl"><a data-link-type="idl" href="#rtcrtpscripttransformer" id="ref-for-rtcrtpscripttransformer①⓪">RTCRtpScriptTransformer</a></code>.</p>
|
1962 | 1962 | <pre class="idl highlight def"><c- b>partial</c-> <c- b>interface</c-> <a class="idl-code" data-link-type="interface" href="https://w3c.github.io/webrtc-pc/#dom-rtcrtpsender" id="ref-for-dom-rtcrtpsender①④"><c- g>RTCRtpSender</c-></a> {
|
1963 |
| - <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-promise" id="ref-for-idl-promise③"><c- b>Promise</c-></a><<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-undefined" id="ref-for-idl-undefined②"><c- b>undefined</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-rtcrtpsender-generatekeyframe" id="ref-for-dom-rtcrtpsender-generatekeyframe"><c- g>generateKeyFrame</c-></a>(<c- b>optional</c-> <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#idl-sequence" id="ref-for-idl-sequence③"><c- b>sequence</c-></a> <<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-DOMString" id="ref-for-idl-DOMString⑦"><c- b>DOMString</c-></a>> <dfn class="dfn-paneled idl-code" data-dfn-for="RTCRtpSender/generateKeyFrame(rids), RTCRtpSender/generateKeyFrame()" data-dfn-type="argument" data-export id="dom-rtcrtpsender-generatekeyframe-rids-rids"><code><c- g>rids</c-></code></dfn>); |
| 1963 | + <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-promise" id="ref-for-idl-promise③"><c- b>Promise</c-></a><<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-undefined" id="ref-for-idl-undefined③"><c- b>undefined</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-rtcrtpsender-generatekeyframe" id="ref-for-dom-rtcrtpsender-generatekeyframe"><c- g>generateKeyFrame</c-></a>(<c- b>optional</c-> <a data-link-type="dfn" href="https://webidl.spec.whatwg.org/#idl-sequence" id="ref-for-idl-sequence③"><c- b>sequence</c-></a> <<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-DOMString" id="ref-for-idl-DOMString⑦"><c- b>DOMString</c-></a>> <dfn class="dfn-paneled idl-code" data-dfn-for="RTCRtpSender/generateKeyFrame(rids), RTCRtpSender/generateKeyFrame()" data-dfn-type="argument" data-export id="dom-rtcrtpsender-generatekeyframe-rids-rids"><code><c- g>rids</c-></code></dfn>); |
1964 | 1964 | };
|
1965 | 1965 | </pre>
|
1966 | 1966 | <h3 class="heading settled" data-level="5.1" id="sender-operation"><span class="secno">5.1. </span><span class="content">Extension operation</span><a class="self-link" href="#sender-operation"></a></h3>
|
@@ -2535,7 +2535,7 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I
|
2535 | 2535 | <c- b>interface</c-> <a href="#rtcrtpscripttransformer"><code><c- g>RTCRtpScriptTransformer</c-></code></a> : <a data-link-type="idl-name" href="https://dom.spec.whatwg.org/#eventtarget"><c- n>EventTarget</c-></a> {
|
2536 | 2536 | // Attributes and methods related to the transformer source
|
2537 | 2537 | <c- b>readonly</c-> <c- b>attribute</c-> <a data-link-type="idl-name" href="https://streams.spec.whatwg.org/#readablestream"><c- n>ReadableStream</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="ReadableStream" href="#dom-rtcrtpscripttransformer-readable"><c- g>readable</c-></a>;
|
2538 |
| - <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-promise"><c- b>Promise</c-></a><<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-unsigned-long-long"><c- b>unsigned</c-> <c- b>long</c-> <c- b>long</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-rtcrtpscripttransformer-generatekeyframe"><c- g>generateKeyFrame</c-></a>(<c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-DOMString"><c- b>DOMString</c-></a> <a href="#dom-rtcrtpscripttransformer-generatekeyframe-rid-rid"><code><c- g>rid</c-></code></a>); |
| 2538 | + <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-promise"><c- b>Promise</c-></a><<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-undefined"><c- b>undefined</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-rtcrtpscripttransformer-generatekeyframe"><c- g>generateKeyFrame</c-></a>(<c- b>optional</c-> <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-DOMString"><c- b>DOMString</c-></a> <a href="#dom-rtcrtpscripttransformer-generatekeyframe-rid-rid"><code><c- g>rid</c-></code></a>); |
2539 | 2539 | <a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-promise"><c- b>Promise</c-></a><<a class="idl-code" data-link-type="interface" href="https://webidl.spec.whatwg.org/#idl-undefined"><c- b>undefined</c-></a>> <a class="idl-code" data-link-type="method" href="#dom-rtcrtpscripttransformer-sendkeyframerequest"><c- g>sendKeyFrameRequest</c-></a>();
|
2540 | 2540 | // Attributes and methods related to the transformer sink
|
2541 | 2541 | <c- b>readonly</c-> <c- b>attribute</c-> <a data-link-type="idl-name" href="https://streams.spec.whatwg.org/#writablestream"><c- n>WritableStream</c-></a> <a class="idl-code" data-link-type="attribute" data-readonly data-type="WritableStream" href="#dom-rtcrtpscripttransformer-writable"><c- g>writable</c-></a>;
|
@@ -2784,7 +2784,7 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I
|
2784 | 2784 | "5991ccfb": {"dfnID":"5991ccfb","dfnText":"relevant realm","external":true,"refSections":[{"refs":[{"id":"ref-for-concept-relevant-realm"}],"title":"2.1.2. Stream processing"}],"url":"https://html.spec.whatwg.org/multipage/webappapis.html#concept-relevant-realm"},
|
2785 | 2785 | "59dc45b5": {"dfnID":"59dc45b5","dfnText":"WritableStream","external":true,"refSections":[{"refs":[{"id":"ref-for-writablestream"}],"title":"2.1.1. Stream creation"},{"refs":[{"id":"ref-for-writablestream\u2460"}],"title":"2.2. Extension attribute"},{"refs":[{"id":"ref-for-writablestream\u2461"}],"title":"4.7. Interfaces"}],"url":"https://streams.spec.whatwg.org/#writablestream"},
|
2786 | 2786 | "59ed4e57": {"dfnID":"59ed4e57","dfnText":"ReadableStream","external":true,"refSections":[{"refs":[{"id":"ref-for-readablestream"}],"title":"2.1.1. Stream creation"},{"refs":[{"id":"ref-for-readablestream\u2460"}],"title":"2.2. Extension attribute"},{"refs":[{"id":"ref-for-readablestream\u2461"}],"title":"4.7. Interfaces"}],"url":"https://streams.spec.whatwg.org/#readablestream"},
|
2787 |
| -"5f90bbfb": {"dfnID":"5f90bbfb","dfnText":"undefined","external":true,"refSections":[{"refs":[{"id":"ref-for-idl-undefined"}],"title":"3. SFrameTransform"},{"refs":[{"id":"ref-for-idl-undefined\u2460"}],"title":"4.7. Interfaces"},{"refs":[{"id":"ref-for-idl-undefined\u2461"}],"title":"5. RTCRtpSender extension"}],"url":"https://webidl.spec.whatwg.org/#idl-undefined"}, |
| 2787 | +"5f90bbfb": {"dfnID":"5f90bbfb","dfnText":"undefined","external":true,"refSections":[{"refs":[{"id":"ref-for-idl-undefined"}],"title":"3. SFrameTransform"},{"refs":[{"id":"ref-for-idl-undefined\u2460"},{"id":"ref-for-idl-undefined\u2461"}],"title":"4.7. Interfaces"},{"refs":[{"id":"ref-for-idl-undefined\u2462"}],"title":"5. RTCRtpSender extension"}],"url":"https://webidl.spec.whatwg.org/#idl-undefined"}, |
2788 | 2788 | "5fc623fc": {"dfnID":"5fc623fc","dfnText":"CryptoKey","external":true,"refSections":[{"refs":[{"id":"ref-for-dfn-CryptoKey"}],"title":"3. SFrameTransform"}],"url":"https://w3c.github.io/webcrypto/#dfn-CryptoKey"},
|
2789 | 2789 | "5fd23811": {"dfnID":"5fd23811","dfnText":"fire an event","external":true,"refSections":[{"refs":[{"id":"ref-for-concept-event-fire"},{"id":"ref-for-concept-event-fire\u2460"},{"id":"ref-for-concept-event-fire\u2461"}],"title":"3.1. Algorithm"},{"refs":[{"id":"ref-for-concept-event-fire\u2462"}],"title":"4.8. Operations"},{"refs":[{"id":"ref-for-concept-event-fire\u2463"}],"title":"4.10. Events"}],"url":"https://dom.spec.whatwg.org/#concept-event-fire"},
|
2790 | 2790 | "6b6bb798": {"dfnID":"6b6bb798","dfnText":"enqueue","external":true,"refSections":[{"refs":[{"id":"ref-for-readablestream-enqueue"}],"title":"2.1.2. Stream processing"},{"refs":[{"id":"ref-for-readablestream-enqueue\u2460"}],"title":"3.1. Algorithm"}],"url":"https://streams.spec.whatwg.org/#readablestream-enqueue"},
|
@@ -2938,7 +2938,7 @@ <h2 class="no-num no-ref heading settled" id="idl-index"><span class="content">I
|
2938 | 2938 | "enumdef-sframetransformrole": {"dfnID":"enumdef-sframetransformrole","dfnText":"SFrameTransformRole","external":false,"refSections":[{"refs":[{"id":"ref-for-enumdef-sframetransformrole"}],"title":"3. SFrameTransform"}],"url":"#enumdef-sframetransformrole"},
|
2939 | 2939 | "eventdef-dedicatedworkerglobalscope-rtctransform": {"dfnID":"eventdef-dedicatedworkerglobalscope-rtctransform","dfnText":"rtctransform","external":false,"refSections":[],"url":"#eventdef-dedicatedworkerglobalscope-rtctransform"},
|
2940 | 2940 | "f0951476": {"dfnID":"f0951476","dfnText":"EventHandler","external":true,"refSections":[{"refs":[{"id":"ref-for-eventhandler"}],"title":"3. SFrameTransform"},{"refs":[{"id":"ref-for-eventhandler\u2460"},{"id":"ref-for-eventhandler\u2461"}],"title":"4.7. Interfaces"}],"url":"https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler"},
|
2941 |
| -"f14b47b8": {"dfnID":"f14b47b8","dfnText":"unsigned long long","external":true,"refSections":[{"refs":[{"id":"ref-for-idl-unsigned-long-long"}],"title":"3. SFrameTransform"},{"refs":[{"id":"ref-for-idl-unsigned-long-long\u2460"},{"id":"ref-for-idl-unsigned-long-long\u2461"}],"title":"4.3. RTCEncodedVideoFrameMetadata dictionary"},{"refs":[{"id":"ref-for-idl-unsigned-long-long\u2462"}],"title":"4.3.1. Members"},{"refs":[{"id":"ref-for-idl-unsigned-long-long\u2463"}],"title":"4.7. Interfaces"}],"url":"https://webidl.spec.whatwg.org/#idl-unsigned-long-long"}, |
| 2941 | +"f14b47b8": {"dfnID":"f14b47b8","dfnText":"unsigned long long","external":true,"refSections":[{"refs":[{"id":"ref-for-idl-unsigned-long-long"}],"title":"3. SFrameTransform"},{"refs":[{"id":"ref-for-idl-unsigned-long-long\u2460"},{"id":"ref-for-idl-unsigned-long-long\u2461"}],"title":"4.3. RTCEncodedVideoFrameMetadata dictionary"},{"refs":[{"id":"ref-for-idl-unsigned-long-long\u2462"}],"title":"4.3.1. Members"}],"url":"https://webidl.spec.whatwg.org/#idl-unsigned-long-long"}, |
2942 | 2942 | "f2f85335": {"dfnID":"f2f85335","dfnText":"structuredClone(value, options)","external":true,"refSections":[{"refs":[{"id":"ref-for-dom-structuredclone"}],"title":"4.4.4. Serialization"}],"url":"https://html.spec.whatwg.org/multipage/structured-data.html#dom-structuredclone"},
|
2943 | 2943 | "f32dc6c1": {"dfnID":"f32dc6c1","dfnText":"serialization steps","external":true,"refSections":[{"refs":[{"id":"ref-for-serialization-steps"}],"title":"4.4.4. Serialization"},{"refs":[{"id":"ref-for-serialization-steps\u2460"}],"title":"4.6.4. Serialization"}],"url":"https://html.spec.whatwg.org/multipage/structured-data.html#serialization-steps"},
|
2944 | 2944 | "f4acb816": {"dfnID":"f4acb816","dfnText":"getting a writer","external":true,"refSections":[{"refs":[{"id":"ref-for-writablestream-get-a-writer"}],"title":"2.2. Extension attribute"}],"url":"https://streams.spec.whatwg.org/#writablestream-get-a-writer"},
|
|
0 commit comments