Add @webref/idl dependency
Signed-off-by: Victor Porof <victorporof@chromium.org>
Bug: 1325812
Change-Id: I044170880d20ce0402062755787cccafd63c6a42
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3695370
Reviewed-by: Mathias Bynens <mathias@chromium.org>
diff --git a/node_modules/@webref/idl/webrtc-encoded-transform.idl b/node_modules/@webref/idl/webrtc-encoded-transform.idl
new file mode 100644
index 0000000..c8e3a593
--- /dev/null
+++ b/node_modules/@webref/idl/webrtc-encoded-transform.idl
@@ -0,0 +1,134 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content was automatically extracted by Reffy into webref
+// (https://github.com/w3c/webref)
+// Source: WebRTC Encoded Transform (https://w3c.github.io/webrtc-encoded-transform/)
+
+// New dictionary
+dictionary RTCInsertableStreams {
+ ReadableStream readable;
+ WritableStream writable;
+};
+
+typedef (SFrameTransform or RTCRtpScriptTransform) RTCRtpTransform;
+
+// New methods for RTCRtpSender and RTCRtpReceiver
+partial interface RTCRtpSender {
+ attribute RTCRtpTransform? transform;
+};
+
+partial interface RTCRtpReceiver {
+ attribute RTCRtpTransform? transform;
+};
+
+enum SFrameTransformRole {
+ "encrypt",
+ "decrypt"
+};
+
+dictionary SFrameTransformOptions {
+ SFrameTransformRole role = "encrypt";
+};
+
+typedef [EnforceRange] unsigned long long SmallCryptoKeyID;
+typedef (SmallCryptoKeyID or bigint) CryptoKeyID;
+
+[Exposed=(Window,DedicatedWorker)]
+interface SFrameTransform {
+ constructor(optional SFrameTransformOptions options = {});
+ Promise<undefined> setEncryptionKey(CryptoKey key, optional CryptoKeyID keyID);
+ attribute EventHandler onerror;
+};
+SFrameTransform includes GenericTransformStream;
+
+enum SFrameTransformErrorEventType {
+ "authentication",
+ "keyID",
+ "syntax"
+};
+
+[Exposed=(Window,DedicatedWorker)]
+interface SFrameTransformErrorEvent : Event {
+ constructor(DOMString type, SFrameTransformErrorEventInit eventInitDict);
+
+ readonly attribute SFrameTransformErrorEventType errorType;
+ readonly attribute CryptoKeyID? keyID;
+ readonly attribute any frame;
+};
+
+dictionary SFrameTransformErrorEventInit : EventInit {
+ required SFrameTransformErrorEventType errorType;
+ required any frame;
+ CryptoKeyID? keyID;
+};
+
+// New enum for video frame types. Will eventually re-use the equivalent defined
+// by WebCodecs.
+enum RTCEncodedVideoFrameType {
+ "empty",
+ "key",
+ "delta",
+};
+
+dictionary RTCEncodedVideoFrameMetadata {
+ long long frameId;
+ sequence<long long> dependencies;
+ unsigned short width;
+ unsigned short height;
+ long spatialIndex;
+ long temporalIndex;
+ long synchronizationSource;
+ octet payloadType;
+ sequence<long> contributingSources;
+};
+
+// New interfaces to define encoded video and audio frames. Will eventually
+// re-use or extend the equivalent defined in WebCodecs.
+[Exposed=(Window,DedicatedWorker)]
+interface RTCEncodedVideoFrame {
+ readonly attribute RTCEncodedVideoFrameType type;
+ readonly attribute unsigned long long timestamp;
+ attribute ArrayBuffer data;
+ RTCEncodedVideoFrameMetadata getMetadata();
+};
+
+dictionary RTCEncodedAudioFrameMetadata {
+ long synchronizationSource;
+ octet payloadType;
+ sequence<long> contributingSources;
+};
+
+[Exposed=(Window,DedicatedWorker)]
+interface RTCEncodedAudioFrame {
+ readonly attribute unsigned long long timestamp;
+ attribute ArrayBuffer data;
+ RTCEncodedAudioFrameMetadata getMetadata();
+};
+
+// New interfaces to expose JavaScript-based transforms.
+
+[Exposed=DedicatedWorker]
+interface RTCTransformEvent : Event {
+ readonly attribute RTCRtpScriptTransformer transformer;
+};
+
+partial interface DedicatedWorkerGlobalScope {
+ attribute EventHandler onrtctransform;
+};
+
+[Exposed=DedicatedWorker]
+interface RTCRtpScriptTransformer {
+ readonly attribute ReadableStream readable;
+ readonly attribute WritableStream writable;
+ readonly attribute any options;
+ Promise<unsigned long long> generateKeyFrame(optional DOMString rid);
+ Promise<undefined> sendKeyFrameRequest();
+};
+
+[Exposed=Window]
+interface RTCRtpScriptTransform {
+ constructor(Worker worker, optional any options, optional sequence<object> transfer);
+};
+
+partial interface RTCRtpSender {
+ Promise<undefined> generateKeyFrame(optional sequence <DOMString> rids);
+};