# Quality

Video rendition state and actions for the player store

Tracks video renditions and selects a manual rendition or automatic adaptive bitrate.

## Import

```ts
import { qualityFeature } from '@videojs/html';
```

The `videoFeatures` [feature bundle](../../guides/presets.md) includes this feature.

## API Reference

### State

| Property | Type | Description |
| --- | --- | --- |
| `videoRenditionList` | `MediaVideoRendition[]` | Video renditions available for manual quality selection. |
| `activeVideoRendition` | `{ id?: string; width?: number; height?: number; bitrate?: number; frameRate?: number; codec?: string; selected: boolean } \| null` | Video rendition currently playing, including when automatic ABR is selected. |

### Actions

| Action | Type | Description |
| --- | --- | --- |
| `selectVideoRendition` | `(value: string) => void` | Select a video rendition by menu value, or automatic ABR with `"auto"`. |

### Selector

Pass `selectQuality` to [`PlayerController`](./player-controller.md) to subscribe to quality state. Returns `undefined` if the quality feature is not configured.

**quality-info.ts**

```ts
import { createPlayer, UIElement, selectQuality } from '@videojs/html';
import { videoFeatures } from '@videojs/html/video';

const { PlayerController } = createPlayer({ features: videoFeatures });

class QualityInfo extends UIElement {
  readonly #quality = new PlayerController(this, selectQuality);
}
```