!include helpers.txt = = videoFrame1 = videoFrame2 = audioData1 = canvas = = = = = = = = = = = = = "no-preference" = "prefer-software" = "prefer-hardware" = = = 1 = 2 = = 48000 = 16000 = 44100 = "L1T1" = "L1T2" = "L1T3" = "L2T1" = "L2T2" = "L2T3" = "L3T1" = "L3T2" = "L3T3" = "L2T1h" = "L2T2h" = "L2T3h" = "L3T1h" = "L3T2h" = "L3T3h" = "S2T1" = "S2T2" = "S2T3" = "S2T1h" = "S2T2h" = "S2T3h" = "S3T1" = "S3T2" = "S3T3" = "S3T1h" = "S3T2h" = "S3T3h" = "L2T2_KEY" = "L2T2_KEY_SHIFT" = "L2T3_KEY" = "L2T3_KEY_SHIFT" = "L3T1_KEY" = "L3T2_KEY" = "L3T2_KEY_SHIFT" = "L3T3_KEY" = "L3T3_KEY_SHIFT" = "I420" = "I420A" = "I422" = "I444" = "NV12" = "RGBA" = "RGBX" = "BGRA" = "BGRX" = "aac" = "adts" = "annexb" = "avc" = "constant" = "variable" = "quantizer" = "constant" = "variable" = "opus" = "ogg" = "annexb" = "hevc" = "u8" = "s16" = "s32" = "f32" = "u8-planar" = "s16-planar" = "s32-planar" = "f32-planar" = = = "quality" = "realtime" = "discard" = "keep" = "audio" = "video" = { highWaterMark: 1 } = () => {} = () => {} = () => {} = { kind: } = { track: } = { codec: } = { codec: , height: , width: } = { codec: , height: , width: , hardwareAcceleration: } = { av1: , avc: , keyFrame: , vp9: } = { quantizer: } = { quantizer: } = { quantizer: } = { error: , output: } = {} = {} = {} = { complexity: , format: , frameDuration: , packetlossperc: , usedtx: , useinbandfec: } = { quantizer: } = { codec: , numberOfChannels: , sampleRate: } = { error: , output: } = { config: , supported: } = { data: bigF32ArrayBuffer.buffer, format: , numberOfChannels: , numberOfFrames: , sampleRate: , timestamp: } = { data: bigF32ArrayBuffer.buffer, format: , numberOfChannels: , numberOfFrames: , sampleRate: , timestamp: } = { data: bigF32ArrayBuffer.buffer, format: , numberOfChannels: , sampleRate: , numberOfFrames: this.sampleRate/100, timestamp: } = { codedHeight: , codedWidth: , format: , timestamp: } !lineguard try { } catch(e) { } !varformat fuzzvar%05d !begin lines #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# #~~~~~~~~~~INTERFACES~~~~~~~~~~~~# #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~# = (encoder, config) => { encoder.configure(config); return encoder; }; #~~~~~~~~~~~~~~~~VideoEncoder~~~~~~~~~~~~~~~~# = new VideoEncoder(); # A VideoEncoder must be configured before calls to encode. = (, ); .encode(); .encode(,); await .flush(); await VideoEncoder.isConfigSupported(); .reset(); .close(); #~~~~~~~~~~~~~~~~AudioEncoder~~~~~~~~~~~~~~~~# = new AudioEncoder(); = (,); .configure(); .encode(); await .flush(); .reset(); .close(); #~~~~~~~~~~~~~~~~MediaStreamTrackGenerator~~~~~~~~~~~~~~~~# = new MediaStreamTrackGenerator(); #~~~~~~~~~~~~~~~~CanvasCaptureMediaStreamTrack~~~~~~~~~~~~~~~~# = .captureStream().getTracks()[]; = .captureStream().getTracks()[]; = .captureStream(0).getTracks()[0]; #~~~~~~~~~~~~~~~~MediaStreamTrack~~~~~~~~~~~~~~~~# = ; = ; #~~~~~~~~~~~~~~~~AudioData~~~~~~~~~~~~~~~~# = new AudioData(); = .clone(); #~~~~~~~~~~~~~~~~VideoFrame~~~~~~~~~~~~~~~~# = new VideoFrame(bigF32ArrayBuffer.buffer, ); #~~~~~~~~~~~~~~~~RTCPeerConnection~~~~~~~~~~~~~~~~# = new RTCPeerConnection(); .addTransceiver(); #~~~~~~~~~~~~~~~~WritableStream~~~~~~~~~~~~~~~~# = .writable; = .writable; .abort(); .abort(); .close(); #~~~~~~~~~~~~~~~~ReadableStream~~~~~~~~~~~~~~~~# = .readable; .cancel(); = .pipeThrough(); .pipeTo(); .tee(); #~~~~~~~~~~~~~~~~WritableStreamDefaultWriter~~~~~~~~~~~~~~~~# = .getWriter(); = new WritableStreamDefaultWriter(); .abort(); .close(); .releaseLock(); .write(); .write(); .write(); #~~~~~~~~~~~~~~~~MediaStreamTrackProcessor~~~~~~~~~~~~~~~~# = new MediaStreamTrackProcessor(); = new MediaStreamTrackProcessor(,); = new MediaStreamTrackProcessor(); #~~~~~~~~~~~~~~~~TransformStream~~~~~~~~~~~~~~~~# = new TransformStream(); = new TransformStream(transformer); = new TransformStream(transformer, , ); #~~~~~~~~~~~~~~~~ByteLengthQueuingStrategy~~~~~~~~~~~~~~~~# = new ByteLengthQueuingStrategy(); #~~~~~~~~~~~~~~~~CountQueuingStrategy~~~~~~~~~~~~~~~~# = new CountQueuingStrategy(); cleanup(); cleanup(); !end lines