tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

webrtc-encoded-transform.idl (5601B)


      1 // GENERATED CONTENT - DO NOT EDIT
      2 // Content was automatically extracted by Reffy into webref
      3 // (https://github.com/w3c/webref)
      4 // Source: WebRTC Encoded Transform (https://w3c.github.io/webrtc-encoded-transform/)
      5 
      6 typedef (SFrameSenderTransform or RTCRtpScriptTransform) RTCRtpSenderTransform;
      7 typedef (SFrameReceiverTransform or RTCRtpScriptTransform) RTCRtpReceiverTransform;
      8 
      9 // New methods for RTCRtpSender and RTCRtpReceiver
     10 partial interface RTCRtpSender {
     11    attribute RTCRtpSenderTransform? transform;
     12 };
     13 
     14 partial interface RTCRtpReceiver {
     15    attribute RTCRtpReceiverTransform? transform;
     16 };
     17 
     18 // List of supported cipher suites, as defined in [[RFC9605]] section 4.5.
     19 enum SFrameCipherSuite {
     20     "AES_128_CTR_HMAC_SHA256_80",
     21     "AES_128_CTR_HMAC_SHA256_64",
     22     "AES_128_CTR_HMAC_SHA256_32",
     23     "AES_128_GCM_SHA256_128",
     24     "AES_256_GCM_SHA512_128"
     25 };
     26 
     27 dictionary SFrameTransformOptions {
     28    required SFrameCipherSuite cipherSuite;
     29 };
     30 
     31 typedef [EnforceRange] unsigned long long SmallCryptoKeyID;
     32 typedef (SmallCryptoKeyID or bigint) CryptoKeyID;
     33 
     34 interface mixin SFrameEncrypterManager {
     35    Promise<undefined> setEncryptionKey(CryptoKey key, CryptoKeyID keyId);
     36    attribute EventHandler onerror;
     37 };
     38 
     39 interface mixin SFrameDecrypterManager {
     40    Promise<undefined> addDecryptionKey(CryptoKey key, CryptoKeyID keyId);
     41    Promise<undefined> removeDecryptionKey(CryptoKeyID keyId);
     42    attribute EventHandler onerror;
     43 };
     44 
     45 [Exposed=Window]
     46 interface SFrameSenderTransform {
     47    constructor(optional SFrameTransformOptions options = {});
     48 };
     49 SFrameSenderTransform includes SFrameEncrypterManager;
     50 
     51 [Exposed=Window]
     52 interface SFrameReceiverTransform : EventTarget {
     53    constructor(optional SFrameTransformOptions options = {});
     54 };
     55 SFrameReceiverTransform includes SFrameDecrypterManager;
     56 
     57 [Exposed=(Window,DedicatedWorker)]
     58 interface SFrameEncrypterStream : EventTarget {
     59    constructor(optional SFrameTransformOptions options = {});
     60 };
     61 SFrameEncrypterStream includes GenericTransformStream;
     62 SFrameEncrypterStream includes SFrameEncrypterManager;
     63 
     64 [Exposed=(Window,DedicatedWorker)]
     65 interface SFrameDecrypterStream : EventTarget {
     66    constructor(optional SFrameTransformOptions options = {});
     67 };
     68 SFrameDecrypterStream includes GenericTransformStream;
     69 SFrameDecrypterStream includes SFrameDecrypterManager;
     70 
     71 enum SFrameTransformErrorEventType {
     72    "authentication",
     73    "keyID",
     74    "syntax"
     75 };
     76 
     77 [Exposed=(Window,DedicatedWorker)]
     78 interface SFrameTransformErrorEvent : Event {
     79    constructor(DOMString type, SFrameTransformErrorEventInit eventInitDict);
     80 
     81    readonly attribute SFrameTransformErrorEventType errorType;
     82    readonly attribute CryptoKeyID? keyID;
     83    readonly attribute any frame;
     84 };
     85 
     86 dictionary SFrameTransformErrorEventInit : EventInit {
     87    required SFrameTransformErrorEventType errorType;
     88    required any frame;
     89    CryptoKeyID? keyID;
     90 };
     91 
     92 dictionary RTCEncodedFrameMetadata {
     93    unsigned long synchronizationSource;
     94    octet payloadType;
     95    sequence<unsigned long> contributingSources;
     96    unsigned long rtpTimestamp;
     97    DOMHighResTimeStamp receiveTime;
     98    DOMHighResTimeStamp captureTime;
     99    DOMHighResTimeStamp senderCaptureTimeOffset;
    100    DOMString mimeType;
    101 };
    102 
    103 dictionary RTCEncodedVideoFrameMetadata : RTCEncodedFrameMetadata {
    104    unsigned long long frameId;
    105    sequence<unsigned long long> dependencies;
    106    unsigned short width;
    107    unsigned short height;
    108    unsigned long spatialIndex;
    109    unsigned long temporalIndex;
    110    long long timestamp;    // microseconds
    111 };
    112 
    113 dictionary RTCEncodedVideoFrameOptions {
    114    RTCEncodedVideoFrameMetadata metadata;
    115 };
    116 
    117 // New interfaces to define RTC specific encoded video and audio frames used by RTCRtpScriptTransform.
    118 [Exposed=(Window,DedicatedWorker), Serializable]
    119 interface RTCEncodedVideoFrame {
    120    constructor(RTCEncodedVideoFrame originalFrame, optional RTCEncodedVideoFrameOptions options = {});
    121    readonly attribute EncodedVideoChunkType type;
    122    attribute ArrayBuffer data;
    123    RTCEncodedVideoFrameMetadata getMetadata();
    124 };
    125 
    126 dictionary RTCEncodedAudioFrameMetadata : RTCEncodedFrameMetadata {
    127    short sequenceNumber;
    128    double audioLevel;
    129 };
    130 
    131 dictionary RTCEncodedAudioFrameOptions {
    132    RTCEncodedAudioFrameMetadata metadata;
    133 };
    134 
    135 [Exposed=(Window,DedicatedWorker), Serializable]
    136 interface RTCEncodedAudioFrame {
    137    constructor(RTCEncodedAudioFrame originalFrame, optional RTCEncodedAudioFrameOptions options = {});
    138    attribute ArrayBuffer data;
    139    RTCEncodedAudioFrameMetadata getMetadata();
    140 };
    141 
    142 [Exposed=Window]
    143 interface RTCRtpScriptTransform {
    144    constructor(Worker worker, optional any options, optional sequence<object> transfer);
    145 };
    146 
    147 [Exposed=DedicatedWorker]
    148 interface RTCRtpScriptTransformer : EventTarget {
    149    // Attributes and methods related to the transformer source
    150    readonly attribute ReadableStream readable;
    151    Promise<undefined> generateKeyFrame(optional DOMString rid);
    152    Promise<undefined> sendKeyFrameRequest();
    153    // Attributes and methods related to the transformer sink
    154    readonly attribute WritableStream writable;
    155    attribute EventHandler onkeyframerequest;
    156    // Attributes for configuring the Javascript code
    157    readonly attribute any options;
    158 };
    159 
    160 [Exposed=DedicatedWorker]
    161 interface RTCTransformEvent : Event {
    162    readonly attribute RTCRtpScriptTransformer transformer;
    163 };
    164 
    165 partial interface DedicatedWorkerGlobalScope {
    166    attribute EventHandler onrtctransform;
    167 };
    168 
    169 [Exposed=DedicatedWorker]
    170 interface KeyFrameRequestEvent : Event {
    171  constructor(DOMString type, optional DOMString rid);
    172  readonly attribute DOMString? rid;
    173 };