---
sidebar:
  hidden: true
title: roboto.experimental.video.vp9
---
Minimal VP9 bitstream inspection.

VP9 has no Annex B framing: a message payload is one raw frame (possibly a superframe, whose index trails the payload — so byte 0 always starts the first frame). This module parses only the fixed-position leading bits of the uncompressed frame header (VP9 Bitstream Specification section 6.2) needed for keyframe detection; the decoder reads everything else from the stream.

## Module Contents

### is_keyframe()

```python
def roboto.experimental.video.vp9.is_keyframe(data: bytes) -> bool
```

`from roboto.experimental.video.vp9 import is_keyframe`

[Source](https://github.com/roboto-ai/roboto-python-sdk/blob/main/src/roboto/experimental/video/vp9.py#L31-L69)

Whether the VP9 frame is a keyframe (intra-only, clean decoder entry point).

A keyframe has `frame_type` KEY_FRAME in its uncompressed header and is confirmed by the frame sync code. `show_existing_frame` payloads (which re-display an already decoded frame) are never keyframes.

**Parameters**

- **data** (`bytes`): One frame's raw VP9 bytes.

**Returns**

- `bool`: True when the frame is a keyframe.
