DedicatedWorkerGlobalScope: rtctransform event
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Note: This feature is only available in Dedicated Web Workers.
The rtctransform event is fired at a worker's DedicatedWorkerGlobalScope object when an encoded video or audio frame has been queued for processing by a WebRTC Encoded Transform.
The event's transformer property returns a RTCRtpScriptTransformer that exposes the ReadableStream on which the frame is queued, and a WritableStream where the frame can be written to inject it back into the WebRTC pipeline.
This event is not cancellable and does not bubble.
Syntax
Use the event name in methods like addEventListener(), or set an event handler property.
addEventListener("rtctransform", (event) => {});
onrtctransform = (event) => {};
Event type
A RTCTransformEvent. Inherits from Event.
Event properties
This interface also inherits properties from its parent, Event.
RTCTransformEvent.transformerRead only-
Returns the
RTCRtpScriptTransformerassociated with the event.
Example
The following code snippet shows a handler for the rtctransform event in the worker, added to the global scope using addEventListener().
The event.transformer is a RTCRtpScriptTransformer, the worker side counterpart to RTCRtpScriptTransform.
addEventListener("rtctransform", (event) => {
let transform;
// Select a transform based on passed options
if (event.transformer.options.name == "senderTransform")
transform = createSenderTransform(); // A TransformStream
else if (event.transformer.options.name == "receiverTransform")
transform = createReceiverTransform(); // A TransformStream
else return;
//Pipe frames from the readable to writeable through TransformStream
event.transformer.readable
.pipeThrough(transform)
.pipeTo(event.transformer.writable);
});
The rtctransform event is fired when an encoded frame is enqueued on the RTCRtpScriptTransformer and just once when the transformer's corresponding RTCRtpScriptTransformer is constructed.
The code first determines what transform to apply using name value passed in the options (this allows RTCRtpScriptTransform instances added to the incoming and outgoing WebRTC pipelines to share a single worker).
Encoded frames are then piped from the readable, through the selected transform TransformStream, to a writeable.
The actual tranforming code is not shown.
Note that this code is part of a more complete example provided in Using WebRTC Encoded Transforms.
Specifications
| Specification |
|---|
| WebRTC Encoded Transform # dom-dedicatedworkerglobalscope-onrtctransform |
Browser compatibility
BCD tables only load in the browser