// 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 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 dependencies; unsigned short width; unsigned short height; unsigned long spatialIndex; unsigned long temporalIndex; unsigned long synchronizationSource; octet payloadType; sequence 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 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 generateKeyFrame(optional DOMString rid); Promise 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 transfer); }; [Exposed=DedicatedWorker] interface KeyFrameRequestEvent : Event { constructor(DOMString type, optional DOMString rid); readonly attribute DOMString? rid; }; partial interface RTCRtpSender { Promise generateKeyFrame(optional sequence rids); };