forked from mirrors/gecko-dev
		
	 1b0ed5f17c
			
		
	
	
		1b0ed5f17c
		
	
	
	
	
		
			
			Added test coverage for sendKeyFrameRequest/generateKeyFrame. Also, some simplifications and code-reuse in existing tests. Differential Revision: https://phabricator.services.mozilla.com/D179732
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| onrtctransform = (event) => {
 | |
|     const transformer = event.transformer;
 | |
|     transformer.options.port.onmessage = (event) => {
 | |
|       if (event.data == "ping") {
 | |
|         transformer.options.port.postMessage("pong");
 | |
|       }
 | |
|     };
 | |
| 
 | |
|     transformer.options.port.postMessage("started");
 | |
|     transformer.reader = transformer.readable.getReader();
 | |
|     transformer.writer = transformer.writable.getWriter();
 | |
| 
 | |
|     function process(transformer)
 | |
|     {
 | |
|         transformer.reader.read().then(chunk => {
 | |
|             if (chunk.done)
 | |
|                 return;
 | |
|             if (chunk.value instanceof RTCEncodedVideoFrame) {
 | |
|                 transformer.options.port.postMessage("video chunk");
 | |
|                 if (chunk.value.type == "key") {
 | |
|                   transformer.options.port.postMessage("video keyframe");
 | |
|                 }
 | |
|             }
 | |
|             else if (chunk.value instanceof RTCEncodedAudioFrame)
 | |
|                 transformer.options.port.postMessage("audio chunk");
 | |
|             transformer.writer.write(chunk.value);
 | |
|             process(transformer);
 | |
|         });
 | |
|     }
 | |
| 
 | |
|     process(transformer);
 | |
| };
 | |
| self.postMessage("registered");
 |