blob: 0f9b279553063ae3f1dabf83c697f51f9e6de3b1 [file] [log] [blame]
!include helpers.txt
<root root=true> = <lines count=100>
<VideoFrame> = videoFrame1
<VideoFrame> = videoFrame2
<AudioData> = audioData1
<Canvas> = canvas
<VideoCodec> = <AV1>
<VideoCodec> = <HEVC>
<VideoCodec> = <VP8>
<VideoCodec> = <VP9>
<AudioCodec> = <FLAC>
<AudioCodec> = <MP3>
<AudioCodec> = <AAC>
<AudioCodec> = <OPUS>
<AudioCodec> = <VORBIS>
<AudioCodec> = <ULAW>
<AudioCodec> = <ALAW>
<AudioCodec> = <PCM>
<HardwarePreference> = "no-preference"
<HardwarePreference> = "prefer-software"
<HardwarePreference> = "prefer-hardware"
<VideoSizes> = <int min=1 max=1024>
<NumChannels> = <int min=1 max=32>
<NumChannels> = 1
<NumChannels> = 2
<SampleRate> = <int min=3000 max=768000>
<SampleRate> = 48000
<SampleRate> = 16000
<SampleRate> = 44100
<ScalabilityMode> = "L1T1"
<ScalabilityMode> = "L1T2"
<ScalabilityMode> = "L1T3"
<ScalabilityMode> = "L2T1"
<ScalabilityMode> = "L2T2"
<ScalabilityMode> = "L2T3"
<ScalabilityMode> = "L3T1"
<ScalabilityMode> = "L3T2"
<ScalabilityMode> = "L3T3"
<ScalabilityMode> = "L2T1h"
<ScalabilityMode> = "L2T2h"
<ScalabilityMode> = "L2T3h"
<ScalabilityMode> = "L3T1h"
<ScalabilityMode> = "L3T2h"
<ScalabilityMode> = "L3T3h"
<ScalabilityMode> = "S2T1"
<ScalabilityMode> = "S2T2"
<ScalabilityMode> = "S2T3"
<ScalabilityMode> = "S2T1h"
<ScalabilityMode> = "S2T2h"
<ScalabilityMode> = "S2T3h"
<ScalabilityMode> = "S3T1"
<ScalabilityMode> = "S3T2"
<ScalabilityMode> = "S3T3"
<ScalabilityMode> = "S3T1h"
<ScalabilityMode> = "S3T2h"
<ScalabilityMode> = "S3T3h"
<ScalabilityMode> = "L2T2_KEY"
<ScalabilityMode> = "L2T2_KEY_SHIFT"
<ScalabilityMode> = "L2T3_KEY"
<ScalabilityMode> = "L2T3_KEY_SHIFT"
<ScalabilityMode> = "L3T1_KEY"
<ScalabilityMode> = "L3T2_KEY"
<ScalabilityMode> = "L3T2_KEY_SHIFT"
<ScalabilityMode> = "L3T3_KEY"
<ScalabilityMode> = "L3T3_KEY_SHIFT"
<VideoPixelFormat> = "I420"
<VideoPixelFormat> = "I420A"
<VideoPixelFormat> = "I422"
<VideoPixelFormat> = "I444"
<VideoPixelFormat> = "NV12"
<VideoPixelFormat> = "RGBA"
<VideoPixelFormat> = "RGBX"
<VideoPixelFormat> = "BGRA"
<VideoPixelFormat> = "BGRX"
<AacBitstreamFormat> = "aac"
<AacBitstreamFormat> = "adts"
<AvcBitstreamFormat> = "annexb"
<AvcBitstreamFormat> = "avc"
<VideoEncoderBitrateMode> = "constant"
<VideoEncoderBitrateMode> = "variable"
<VideoEncoderBitrateMode> = "quantizer"
<BitrateMode> = "constant"
<BitrateMode> = "variable"
<OpusBitstreamFormat> = "opus"
<OpusBitstreamFormat> = "ogg"
<HevcBitstreamFormat> = "annexb"
<HevcBitstreamFormat> = "hevc"
<AudioSampleFormat> = "u8"
<AudioSampleFormat> = "s16"
<AudioSampleFormat> = "s32"
<AudioSampleFormat> = "f32"
<AudioSampleFormat> = "u8-planar"
<AudioSampleFormat> = "s16-planar"
<AudioSampleFormat> = "s32-planar"
<AudioSampleFormat> = "f32-planar"
<QueueingStrategy> = <ByteLengthQueuingStrategy>
<QueueingStrategy> = <CountQueuingStrategy>
<LatencyMode> = "quality"
<LatencyMode> = "realtime"
<AlphaOption> = "discard"
<AlphaOption> = "keep"
<MediaStreamTrackGeneratorKind> = "audio"
<MediaStreamTrackGeneratorKind> = "video"
<QueuingStrategyInit> = { highWaterMark: 1 }
<EncodedVideoChunkOutputCallback> = () => {}
<EncodedAudioChunkOutputCallback> = () => {}
<WebCodecsErrorCallback> = () => {}
<MediaStreamTrackGeneratorInit> = { kind: <MediaStreamTrackGeneratorKind>}
<MediaStreamTrackProcessorInit> = { track: <MediaStreamTrack> }
<VideoEncoderConfig> = { codec: <VideoCodec> }
<VideoEncoderConfig> = { codec: <VideoCodec>, height: <VideoSizes>, width: <VideoSizes> }
<VideoEncoderConfig> = { codec: <VideoCodec>, height: <VideoSizes>, width: <VideoSizes>, hardwareAcceleration: <HardwarePreference>}
<VideoEncoderEncodeOptions> = { av1: <VideoEncoderEncodeOptionsForAv1>, avc: <VideoEncoderEncodeOptionsForAvc>, keyFrame: <Boolean>, vp9: <VideoEncoderEncodeOptionsForVp9> }
<VideoEncoderEncodeOptionsForAv1> = { quantizer: <UnsignedShort> }
<VideoEncoderEncodeOptionsForAvc> = { quantizer: <UnsignedShort> }
<VideoEncoderEncodeOptionsForVp9> = { quantizer: <UnsignedShort> }
<VideoEncoderInit> = { error: <WebCodecsErrorCallback>, output: <EncodedVideoChunkOutputCallback> }
<AacEncoderConfig> = {}
<AvcEncoderConfig> = {}
<HevcEncoderConfig> = {}
<OpusEncoderConfig> = { complexity: <UnsignedLongEnforceRange>, format: <OpusBitstreamFormat>, frameDuration: <UnsignedLongLongEnforceRange>, packetlossperc: <UnsignedLongEnforceRange>, usedtx: <Boolean>, useinbandfec: <Boolean> }
<VideoEncoderEncodeOptionsForAvc> = { quantizer: <UnsignedShort> }
<AudioEncoderConfig> = { codec: <AudioCodec>, numberOfChannels: <NumChannels>, sampleRate: <SampleRate> }
<AudioEncoderInit> = { error: <WebCodecsErrorCallback>, output: <EncodedAudioChunkOutputCallback> }
<AudioEncoderSupport> = { config: <AudioEncoderConfig>, supported: <Boolean> }
<AudioDataInit> = { data: bigF32ArrayBuffer.buffer, format: <AudioSampleFormat>, numberOfChannels: <NumChannels>, numberOfFrames: <int min=1 max=100>, sampleRate: <SampleRate>, timestamp: <int min=0 max=100> }
<AudioDataInit> = { data: bigF32ArrayBuffer.buffer, format: <AudioSampleFormat>, numberOfChannels: <NumChannels>, numberOfFrames: <int>, sampleRate: <SampleRate>, timestamp: <int> }
<AudioDataInit> = { data: bigF32ArrayBuffer.buffer, format: <AudioSampleFormat>, numberOfChannels: <NumChannels>, sampleRate: <SampleRate>, numberOfFrames: this.sampleRate/100, timestamp: <int min=0 max=100> }
<VideoFrameBufferInit> = { codedHeight: <int min=80 max=1280>, codedWidth: <int min=80 max=1280>, format: <VideoPixelFormat>, timestamp: <int min=0 min=100> }
!lineguard try { <line> } catch(e) { }
!varformat fuzzvar%05d
!begin lines
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~INTERFACES~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
<new ConfigureEncoder> = (encoder, config) => { encoder.configure(config); return encoder; };
#~~~~~~~~~~~~~~~~VideoEncoder~~~~~~~~~~~~~~~~#
<new VideoEncoder> = new VideoEncoder(<VideoEncoderInit>);
# A VideoEncoder must be configured before calls to encode.
<new ConfiguredVideoEncoder> = <ConfigureEncoder>(<VideoEncoder>, <VideoEncoderConfig>);
<ConfiguredVideoEncoder>.encode(<VideoFrame>);
<ConfiguredVideoEncoder>.encode(<VideoFrame>,<VideoEncoderEncodeOptions>);
await <ConfiguredVideoEncoder>.flush();
await VideoEncoder.isConfigSupported(<VideoEncoderConfig>);
<ConfiguredVideoEncoder>.reset();
<ConfiguredVideoEncoder>.close();
#~~~~~~~~~~~~~~~~AudioEncoder~~~~~~~~~~~~~~~~#
<new AudioEncoder> = new AudioEncoder(<AudioEncoderInit>);
<new ConfiguredAudioEncoder> = <ConfigureEncoder>(<AudioEncoder>,<AudioEncoderConfig>);
<AudioEncoder>.configure(<AudioEncoderConfig>);
<ConfiguredAudioEncoder>.encode(<AudioData>);
await <ConfiguredAudioEncoder>.flush();
<ConfiguredAudioEncoder>.reset();
<ConfiguredAudioEncoder>.close();
#~~~~~~~~~~~~~~~~MediaStreamTrackGenerator~~~~~~~~~~~~~~~~#
<new MediaStreamTrackGenerator> = new MediaStreamTrackGenerator(<MediaStreamTrackGeneratorInit>);
#~~~~~~~~~~~~~~~~CanvasCaptureMediaStreamTrack~~~~~~~~~~~~~~~~#
<new CanvasCaptureMediaStreamTrack> = <Canvas>.captureStream(<int>).getTracks()[<int>];
<new CanvasCaptureMediaStreamTrack> = <Canvas>.captureStream(<int min=0 max=32>).getTracks()[<int min=0 max=32>];
<new CanvasCaptureMediaStreamTrack> = <Canvas>.captureStream(0).getTracks()[0];
#~~~~~~~~~~~~~~~~MediaStreamTrack~~~~~~~~~~~~~~~~#
<new MediaStreamTrack> = <MediaStreamTrackGenerator>;
<new MediaStreamTrack> = <CanvasCaptureMediaStreamTrack>;
#~~~~~~~~~~~~~~~~AudioData~~~~~~~~~~~~~~~~#
<new AudioData> = new AudioData(<AudioDataInit>);
<new AudioData> = <AudioData>.clone();
#~~~~~~~~~~~~~~~~VideoFrame~~~~~~~~~~~~~~~~#
<new VideoFrame> = new VideoFrame(bigF32ArrayBuffer.buffer, <VideoFrameBufferInit>);
#~~~~~~~~~~~~~~~~RTCPeerConnection~~~~~~~~~~~~~~~~#
<new RTCPeerConnection> = new RTCPeerConnection();
<RTCPeerConnection>.addTransceiver(<MediaStreamTrack>);
#~~~~~~~~~~~~~~~~WritableStream~~~~~~~~~~~~~~~~#
<new WritableStream> = <MediaStreamTrackGenerator>.writable;
<new WritableStream> = <TransformStream>.writable;
<WritableStream>.abort();
<WritableStream>.abort();
<WritableStream>.close();
#~~~~~~~~~~~~~~~~ReadableStream~~~~~~~~~~~~~~~~#
<new ReadableStream> = <MediaStreamTrackProcessor>.readable;
<ReadableStream>.cancel();
<new ReadableStream> = <ReadableStream>.pipeThrough(<TransformStream>);
<ReadableStream>.pipeTo(<WritableStream>);
<ReadableStream>.tee();
#~~~~~~~~~~~~~~~~WritableStreamDefaultWriter~~~~~~~~~~~~~~~~#
<new WritableStreamDefaultWriter> = <WritableStream>.getWriter();
<new WritableStreamDefaultWriter> = new WritableStreamDefaultWriter(<WritableStream>);
<WritableStreamDefaultWriter>.abort();
<WritableStreamDefaultWriter>.close();
<WritableStreamDefaultWriter>.releaseLock();
<WritableStreamDefaultWriter>.write();
<WritableStreamDefaultWriter>.write(<AudioData>);
<WritableStreamDefaultWriter>.write(<VideoFrame>);
#~~~~~~~~~~~~~~~~MediaStreamTrackProcessor~~~~~~~~~~~~~~~~#
<new MediaStreamTrackProcessor> = new MediaStreamTrackProcessor(<MediaStreamTrack>);
<new MediaStreamTrackProcessor> = new MediaStreamTrackProcessor(<MediaStreamTrack>,<int min=0 max=65536>);
<new MediaStreamTrackProcessor> = new MediaStreamTrackProcessor(<MediaStreamTrackProcessorInit>);
#~~~~~~~~~~~~~~~~TransformStream~~~~~~~~~~~~~~~~#
<new TransformStream> = new TransformStream();
<new TransformStream> = new TransformStream(transformer);
<new TransformStream> = new TransformStream(transformer, <QueueingStrategy>, <QueueingStrategy>);
#~~~~~~~~~~~~~~~~ByteLengthQueuingStrategy~~~~~~~~~~~~~~~~#
<new ByteLengthQueuingStrategy> = new ByteLengthQueuingStrategy(<QueuingStrategyInit>);
#~~~~~~~~~~~~~~~~CountQueuingStrategy~~~~~~~~~~~~~~~~#
<new CountQueuingStrategy> = new CountQueuingStrategy(<QueuingStrategyInit>);
cleanup();
cleanup();
!end lines