# FrameWriterOptions

URL: https://www.caprid.com/docs/reference/typescript/caprid/relay/media/interfaces/framewriteroptions/

Defined in: [relay-sdks/ts/src/frame-writer.ts:45](https://github.com/caprids/relay-sdks/blob/main/ts/src/frame-writer.ts#L45)

Options for [createFrameWriter](https://www.caprid.com/docs/reference/typescript/caprid/relay/media/functions/createframewriter/).

## Type Parameters

| Type Parameter | Default type |
| ------ | ------ |
| <a id="type-parameter-f"></a> `F` *extends* [`Frame`](https://www.caprid.com/docs/reference/typescript/caprid/relay/media/interfaces/frame/) | [`Frame`](https://www.caprid.com/docs/reference/typescript/caprid/relay/media/interfaces/frame/) |

## Properties

### grouping?

```ts
grouping?: FrameGrouping;
```

Defined in: [relay-sdks/ts/src/frame-writer.ts:47](https://github.com/caprids/relay-sdks/blob/main/ts/src/frame-writer.ts#L47)

Default `'keyframe'`.

***

### maxBacklog?

```ts
maxBacklog?: number;
```

Defined in: [relay-sdks/ts/src/frame-writer.ts:57](https://github.com/caprids/relay-sdks/blob/main/ts/src/frame-writer.ts#L57)

How many frames may wait behind the one being written before the writer drops. A positive integer; default 8
under keyframe grouping, 25 under frame grouping.

***

### onKeyframeNeeded?

```ts
onKeyframeNeeded?: () => void;
```

Defined in: [relay-sdks/ts/src/frame-writer.ts:62](https://github.com/caprids/relay-sdks/blob/main/ts/src/frame-writer.ts#L62)

Called synchronously each time the writer comes to need a keyframe after its start (see
[FrameWriter.keyframeNeeded](https://www.caprid.com/docs/reference/typescript/caprid/relay/media/interfaces/framewriter/#keyframeneeded)), so an encoder can force one. An exception from it goes to `console.error`.

#### Returns

`void`

***

### stale?

```ts
stale?: (frame) => boolean;
```

Defined in: [relay-sdks/ts/src/frame-writer.ts:52](https://github.com/caprids/relay-sdks/blob/main/ts/src/frame-writer.ts#L52)

Whether a frame is too late to send, against the application's own clock. Consulted before a group opens and again
before each write, since time passes inside those steps.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `frame` | `F` |

#### Returns

`boolean`
