gitextract_t5d8f4yo/ ├── .eslintrc.js ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── config.yml │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── interop-tests.yml │ └── test.yml ├── .gitignore ├── .npmrc ├── .stylelintrc ├── AUTHORS ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── google1b7eb21c5b594ba0.html ├── index.html ├── package.json ├── src/ │ ├── content/ │ │ ├── capture/ │ │ │ ├── canvas-filter/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ └── main.js │ │ │ ├── canvas-pc/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ └── main.js │ │ │ ├── canvas-record/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ └── main.js │ │ │ ├── canvas-video/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ └── main.js │ │ │ ├── video-contenthint/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ └── main.js │ │ │ ├── video-pc/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ └── main.js │ │ │ ├── video-video/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ └── main.js │ │ │ └── worker-process/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ └── worker.js │ │ ├── datachannel/ │ │ │ ├── basic/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ ├── main.js │ │ │ │ └── test.js │ │ │ ├── channel/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ ├── main.js │ │ │ │ └── test.js │ │ │ ├── datatransfer/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ ├── main.js │ │ │ │ └── test.js │ │ │ ├── filetransfer/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ ├── main.js │ │ │ │ └── test.js │ │ │ └── messaging/ │ │ │ ├── index.html │ │ │ ├── main.css │ │ │ └── main.js │ │ ├── devices/ │ │ │ ├── input-output/ │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ ├── main.js │ │ │ │ └── test.js │ │ │ └── multi/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ ├── js/ │ │ │ │ └── main.js │ │ │ └── video/ │ │ │ ├── chrome.ogv │ │ │ └── chrome.webm │ │ ├── extensions/ │ │ │ ├── multipleroutes/ │ │ │ │ └── src/ │ │ │ │ ├── README.md │ │ │ │ ├── _locales/ │ │ │ │ │ └── en/ │ │ │ │ │ └── messages.json │ │ │ │ ├── manifest.json │ │ │ │ ├── options.html │ │ │ │ └── options.js │ │ │ └── svc/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ └── main.js │ │ ├── getusermedia/ │ │ │ ├── audio/ │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ └── main.js │ │ │ ├── canvas/ │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ └── main.js │ │ │ ├── exposure/ │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ └── main.js │ │ │ ├── filter/ │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ └── main.js │ │ │ ├── getdisplaymedia/ │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ └── main.js │ │ │ ├── gum/ │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ ├── main.js │ │ │ │ └── test.js │ │ │ ├── pan-tilt-zoom/ │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ └── main.js │ │ │ ├── record/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ └── main.js │ │ │ ├── resolution/ │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ ├── main.js │ │ │ │ └── test.js │ │ │ ├── source/ │ │ │ │ └── index.html │ │ │ └── volume/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ ├── soundmeter.js │ │ │ └── volume-meter-processor.js │ │ ├── insertable-streams/ │ │ │ ├── audio-processing/ │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ ├── main.js │ │ │ │ └── worker.js │ │ │ ├── endtoend-encryption/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ ├── main.js │ │ │ │ ├── test.js │ │ │ │ ├── videopipe.js │ │ │ │ └── worker.js │ │ │ ├── video/ │ │ │ │ └── index.html │ │ │ ├── video-analyzer/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ └── main.js │ │ │ ├── video-crop/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ ├── main.js │ │ │ │ └── worker.js │ │ │ ├── video-processing/ │ │ │ │ ├── css/ │ │ │ │ │ └── main.css │ │ │ │ ├── index.html │ │ │ │ └── js/ │ │ │ │ ├── camera-source.js │ │ │ │ ├── canvas-source.js │ │ │ │ ├── canvas-transform.js │ │ │ │ ├── main.js │ │ │ │ ├── peer-connection-pipe.js │ │ │ │ ├── peer-connection-sink.js │ │ │ │ ├── peer-connection-source.js │ │ │ │ ├── pipeline.js │ │ │ │ ├── simple-transforms.js │ │ │ │ ├── video-mirror-helper.js │ │ │ │ ├── video-sink.js │ │ │ │ ├── video-source.js │ │ │ │ ├── webcodec-transform.js │ │ │ │ └── webgl-transform.js │ │ │ └── webgpu/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ ├── multi_video_main.js │ │ │ ├── multi_video_worker.js │ │ │ └── multi_video_worker_manager.js │ │ └── peerconnection/ │ │ ├── always-negotiate-datachannels/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ └── main.js │ │ ├── audio/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ └── test.js │ │ ├── bandwidth/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ └── main.js │ │ ├── change-codecs/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ └── test.js │ │ ├── channel/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ └── test.js │ │ ├── constraints/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ └── main.js │ │ ├── create-offer/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ └── main.js │ │ ├── dtmf/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ └── test.js │ │ ├── endtoend-encryption/ │ │ │ └── index.html │ │ ├── multiple/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ └── test.js │ │ ├── multiple-relay/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ └── main.js │ │ ├── munge-sdp/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ └── test.js │ │ ├── negotiate-timing/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ └── test.js │ │ ├── pc1/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ └── test.js │ │ ├── per-frame-callback/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ └── main.js │ │ ├── perfect-negotiation/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ └── peer.js │ │ ├── pr-answer/ │ │ │ ├── index.html │ │ │ └── js/ │ │ │ └── main.js │ │ ├── restart-ice/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ └── test.js │ │ ├── states/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ └── test.js │ │ ├── trickle-ice/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ └── test.js │ │ ├── upgrade/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ └── test.js │ │ ├── video-analyzer/ │ │ │ └── index.html │ │ ├── webaudio-input/ │ │ │ ├── css/ │ │ │ │ └── main.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── main.js │ │ │ └── webaudioextended.js │ │ └── webaudio-output/ │ │ ├── css/ │ │ │ └── main.css │ │ ├── index.html │ │ └── js/ │ │ └── main.js │ ├── css/ │ │ └── main.css │ ├── js/ │ │ ├── lib/ │ │ │ └── ga.js │ │ ├── third_party/ │ │ │ ├── graph.js │ │ │ ├── streamvisualizer.js │ │ │ └── webgl_teapot/ │ │ │ ├── cameracontroller.js │ │ │ ├── demo.js │ │ │ ├── matrix4x4.js │ │ │ ├── teapot-streams.js │ │ │ ├── webgl-debug.js │ │ │ └── webgl-utils.js │ │ └── videopipe.js │ └── video/ │ ├── chrome.webm │ └── mixed-content.webm └── test/ ├── download-browsers.js ├── interop/ │ └── connection.test.js ├── steps.js ├── webdriver.js └── webrtcclient.js