W3cubDocs

/Web APIs

RTCEncodedVideoFrame: type property

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:

js

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

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
type 86 86 117 No 72 15.4 86 86 117 61 15.4 14.0

See also

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCEncodedVideoFrame/type