RTCEncodedVideoFrame: type property
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Note: This feature is available in Dedicated Web Workers.
The readonly type
property of the RTCEncodedVideoFrame
interface indicates whether this frame is a key frame, delta frame, or empty frame.
Value
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).
Examples
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({
transform: async (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
Specification |
---|
WebRTC Encoded Transform # dom-rtcencodedvideoframe-type |
Browser compatibility
BCD tables only load in the browser