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");