summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/interfaces/webrtc-encoded-transform.idl
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/tests/interfaces/webrtc-encoded-transform.idl
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/interfaces/webrtc-encoded-transform.idl')
-rw-r--r--testing/web-platform/tests/interfaces/webrtc-encoded-transform.idl140
1 files changed, 140 insertions, 0 deletions
diff --git a/testing/web-platform/tests/interfaces/webrtc-encoded-transform.idl b/testing/web-platform/tests/interfaces/webrtc-encoded-transform.idl
new file mode 100644
index 0000000000..8a756702c7
--- /dev/null
+++ b/testing/web-platform/tests/interfaces/webrtc-encoded-transform.idl
@@ -0,0 +1,140 @@
+// 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/)
+
+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 : EventTarget {
+ 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 {
+ unsigned long long frameId;
+ sequence<unsigned long long> dependencies;
+ unsigned short width;
+ unsigned short height;
+ unsigned long spatialIndex;
+ unsigned long temporalIndex;
+ unsigned long synchronizationSource;
+ octet payloadType;
+ sequence<unsigned long> contributingSources;
+ long long timestamp; // microseconds
+ unsigned long rtpTimestamp;
+ DOMString mimeType;
+};
+
+// New interfaces to define encoded video and audio frames. Will eventually
+// re-use or extend the equivalent defined in WebCodecs.
+[Exposed=(Window,DedicatedWorker), Serializable]
+interface RTCEncodedVideoFrame {
+ readonly attribute RTCEncodedVideoFrameType type;
+ attribute ArrayBuffer data;
+ RTCEncodedVideoFrameMetadata getMetadata();
+};
+
+dictionary RTCEncodedAudioFrameMetadata {
+ unsigned long synchronizationSource;
+ octet payloadType;
+ sequence<unsigned long> contributingSources;
+ short sequenceNumber;
+ unsigned long rtpTimestamp;
+ DOMString mimeType;
+};
+
+[Exposed=(Window,DedicatedWorker), Serializable]
+interface RTCEncodedAudioFrame {
+ attribute ArrayBuffer data;
+ RTCEncodedAudioFrameMetadata getMetadata();
+};
+
+[Exposed=DedicatedWorker]
+interface RTCTransformEvent : Event {
+ readonly attribute RTCRtpScriptTransformer transformer;
+};
+
+partial interface DedicatedWorkerGlobalScope {
+ attribute EventHandler onrtctransform;
+};
+
+[Exposed=DedicatedWorker]
+interface RTCRtpScriptTransformer : EventTarget {
+ // Attributes and methods related to the transformer source
+ readonly attribute ReadableStream readable;
+ Promise<unsigned long long> generateKeyFrame(optional DOMString rid);
+ Promise<undefined> sendKeyFrameRequest();
+ // Attributes and methods related to the transformer sink
+ readonly attribute WritableStream writable;
+ attribute EventHandler onkeyframerequest;
+ // Attributes for configuring the Javascript code
+ readonly attribute any options;
+};
+
+[Exposed=Window]
+interface RTCRtpScriptTransform {
+ constructor(Worker worker, optional any options, optional sequence<object> transfer);
+};
+
+[Exposed=DedicatedWorker]
+interface KeyFrameRequestEvent : Event {
+ constructor(DOMString type, optional DOMString rid);
+ readonly attribute DOMString? rid;
+};
+
+partial interface RTCRtpSender {
+ Promise<undefined> generateKeyFrame(optional sequence <DOMString> rids);
+};