tor-browser

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

script-transform-worker.js (1132B)


      1 onrtctransform = (event) => {
      2    const transformer = event.transformer;
      3    transformer.options.port.onmessage = (event) => {
      4      if (event.data == "ping") {
      5        transformer.options.port.postMessage("pong");
      6      }
      7    };
      8 
      9    transformer.options.port.postMessage("started");
     10    transformer.reader = transformer.readable.getReader();
     11    transformer.writer = transformer.writable.getWriter();
     12 
     13    function process(transformer)
     14    {
     15        transformer.reader.read().then(chunk => {
     16            if (chunk.done)
     17                return;
     18            if (chunk.value instanceof RTCEncodedVideoFrame) {
     19                transformer.options.port.postMessage("video chunk");
     20                if (chunk.value.type == "key") {
     21                  transformer.options.port.postMessage("video keyframe");
     22                }
     23            }
     24            else if (chunk.value instanceof RTCEncodedAudioFrame)
     25                transformer.options.port.postMessage("audio chunk");
     26            transformer.writer.write(chunk.value);
     27            process(transformer);
     28        });
     29    }
     30 
     31    process(transformer);
     32 };
     33 self.postMessage("registered");