tor-browser

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

RTCRtpScriptTransform-encoded-transform-drop-frames-worker.js (1133B)


      1 let frameRtpTimestamp;
      2 
      3 // Dropping all but the fifth frame on the sender,
      4 // verifying the receiver only gets that frame.
      5 onrtctransform = (event) => {
      6    const transformer = event.transformer;
      7 
      8    transformer.reader = transformer.readable.getReader();
      9    transformer.writer = transformer.writable.getWriter();
     10    let countRead = 0;
     11 
     12    async function process(transformer)
     13    {
     14        const chunk = await transformer.reader.read();
     15        countRead++;
     16        if (chunk.done)
     17            return;
     18        if (transformer.options.name === 'sender') {
     19            if(countRead == 5) {
     20                frameRtpTimestamp = chunk.value.getMetadata().rtpTimestamp;
     21                transformer.writer.write(chunk.value); // only writing once
     22            }
     23        } else  {
     24            if(chunk.value.getMetadata().rtpTimestamp == frameRtpTimestamp && countRead == 1)
     25                self.postMessage("got expected");
     26            else
     27                self.postMessage("received a different frame");
     28            return;
     29        }
     30        await process(transformer);
     31    }
     32    process(transformer);
     33 };
     34 self.postMessage("registered");