| let frameRtpTimestamp; |
| |
| // Dropping all but the fifth frame on the sender, |
| // verifying the receiver only gets that frame. |
| onrtctransform = (event) => { |
| const transformer = event.transformer; |
| |
| transformer.reader = transformer.readable.getReader(); |
| transformer.writer = transformer.writable.getWriter(); |
| let countRead = 0; |
| |
| async function process(transformer) |
| { |
| const chunk = await transformer.reader.read(); |
| countRead++; |
| if (chunk.done) |
| return; |
| if (transformer.options.name === 'sender') { |
| if(countRead == 5) { |
| frameRtpTimestamp = chunk.value.getMetadata().rtpTimestamp; |
| transformer.writer.write(chunk.value); // only writing once |
| } |
| } else { |
| if(chunk.value.getMetadata().rtpTimestamp == frameRtpTimestamp && countRead == 1) |
| self.postMessage("got expected"); |
| else |
| self.postMessage("received a different frame"); |
| return; |
| } |
| await process(transformer); |
| } |
| process(transformer); |
| }; |
| self.postMessage("registered"); |