// 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 { 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 }; // 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 timestamp; attribute ArrayBuffer data; RTCEncodedVideoFrameMetadata getMetadata(); }; dictionary RTCEncodedAudioFrameMetadata { unsigned long synchronizationSource; octet payloadType; sequence contributingSources; short sequenceNumber; }; [Exposed=(Window,DedicatedWorker)] interface RTCEncodedAudioFrame { readonly attribute unsigned long timestamp; attribute ArrayBuffer data; RTCEncodedAudioFrameMetadata getMetadata(); }; [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 generateKeyFrame(optional DOMString rid); Promise sendKeyFrameRequest(); }; [Exposed=Window] interface RTCRtpScriptTransform { constructor(Worker worker, optional any options, optional sequence transfer); }; partial interface RTCRtpSender { Promise generateKeyFrame(optional sequence rids); };