# Track

> A composition that lays its children end to end.

Symbols in this group are spelled `otio_track_…`. An SDK drops that prefix.

## `kind`

`otio_track_kind` · getter

Returns what a track carries, such as `"Video"` or `"Audio"`.

```c
OtioStatus otio_track_kind(
    const OtioDocument *source,
    OtioNode node_handle,
    OtioBuffer *out_kind,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `source` (optional) | `document` | document in |
| `node_handle` | `node` | receiver |
| `out_kind` | `text` | output |
| `out_error` | `text` | error |

## `new`

`otio_track_new` · constructor

Creates a track. `kind` may be null, which means `"Video"`, as upstream's default does.

```c
OtioStatus otio_track_new(
    OtioDocument *target,
    const char *name,
    const char *kind,
    OtioNode *out_node,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `name` (optional) | `text` | input |
| `kind` (optional) | `text` | input |
| `out_node` | `node` | output |
| `out_error` | `text` | error |

## `set_kind`

`otio_track_set_kind` · setter

Sets what a track carries.

```c
OtioStatus otio_track_set_kind(
    OtioDocument *target,
    OtioNode node_handle,
    const char *kind,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `node_handle` | `node` | receiver |
| `kind` | `text` | input |
| `out_error` | `text` | error |

---

Page: https://otio-rust-docs.vercel.app/reference/track/
