Baseline 2023
Newly available
Note: This feature is available in Dedicated Web Workers.
The type
read-only property of the RTCEncodedVideoFrame
interface indicates whether this frame is a key frame, delta frame, or empty frame.
The type can have one of the following values:
key
This is a "key frame", which contains all the information needed to render an image. It can be decoded without reference to any other frames.
delta
This is a "delta frame", which contains changes to an image relative to some previous frame. The frame cannot be decoded without access to the frame(s) that it references.
empty
This frame contains no data. This value is unexpected, and may indicate that the transform is holding a reference to frames after they have been transformed and piped to RTCRtpScriptTransformer.writable
(after transferring back to the main-thread WebRTC pipeline the worker side frame object will have no data).
The implementation of a transform()
function in a WebRTC Encoded Transform can look at the type
and modify the transform code based on whether it is dealing with a key frame or delta frame:
const transformer = new TransformStream({
async transform(encodedFrame, controller) {
if (encodedFrame.type === "key") {
// Apply key frame transformation
} else if (encodedFrame.type === "delta") {
// Apply delta frame transformation
} else {
// Empty
// Check transform is not holding reference to frames after processing!
}
controller.enqueue(encodedFrame);
},
});
Specifications Browser compatibility See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4