# Item

> Anything that occupies time.

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

## `append_effect`

`otio_item_append_effect` · method

Adds an effect to an item. Effects apply in the order they are added.

```c
OtioStatus otio_item_append_effect(
    OtioDocument *target,
    OtioNode node_handle,
    OtioNode effect_handle,
    OtioBuffer *out_error);
```

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

## `append_marker`

`otio_item_append_marker` · method

Adds a marker to an item.

```c
OtioStatus otio_item_append_marker(
    OtioDocument *target,
    OtioNode node_handle,
    OtioNode marker_handle,
    OtioBuffer *out_error);
```

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

## `available_range`

`otio_item_available_range` · getter

Returns the span of media an object could draw on, before trimming.

```c
OtioStatus otio_item_available_range(
    const OtioDocument *source,
    OtioNode node_handle,
    OtioTimeRange *out_range,
    OtioBuffer *out_error);
```

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

## `clear_color`

`otio_item_clear_color` · clearer

Clears an item's display tint.

```c
OtioStatus otio_item_clear_color(
    OtioDocument *target,
    OtioNode node_handle,
    OtioBuffer *out_error);
```

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

## `clear_source_range`

`otio_item_clear_source_range` · clearer

Clears an item's source range, so that it takes all of its media.

```c
OtioStatus otio_item_clear_source_range(
    OtioDocument *target,
    OtioNode node_handle,
    OtioBuffer *out_error);
```

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

## `color`

`otio_item_color` · method · may answer nothing

Returns an item's display tint, and the name that goes with it.

`out_name` may be null if the name is not wanted. Reports `OTIO_STATUS_NO_VALUE` for an untinted item.

```c
OtioStatus otio_item_color(
    const OtioDocument *source,
    OtioNode node_handle,
    OtioColor *out_color,
    OtioBuffer *out_name,
    OtioBuffer *out_error);
```

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

## `duration`

`otio_item_duration` · getter

Returns how long an object occupies its parent's timeline.

```c
OtioStatus otio_item_duration(
    const OtioDocument *source,
    OtioNode node_handle,
    OtioRationalTime *out_duration,
    OtioBuffer *out_error);
```

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

## `effect_at`

`otio_item_effect_at` · method

Returns one of an item's effects.

```c
OtioStatus otio_item_effect_at(
    const OtioDocument *source,
    OtioNode node_handle,
    size_t index,
    OtioNode *out_effect,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `source` (optional) | `document` | document in |
| `node_handle` | `node` | receiver |
| `index` | `size` | input |
| `out_effect` | `node` | output |
| `out_error` | `text` | error |

## `effect_count`

`otio_item_effect_count` · getter

Returns how many effects an item carries.

```c
OtioStatus otio_item_effect_count(
    const OtioDocument *source,
    OtioNode node_handle,
    size_t *out_count,
    OtioBuffer *out_error);
```

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

## `enabled`

`otio_item_enabled` · getter

Returns whether an item contributes to its composition.

```c
OtioStatus otio_item_enabled(
    const OtioDocument *source,
    OtioNode node_handle,
    bool *out_enabled,
    OtioBuffer *out_error);
```

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

## `marker_at`

`otio_item_marker_at` · method

Returns one of an item's markers.

```c
OtioStatus otio_item_marker_at(
    const OtioDocument *source,
    OtioNode node_handle,
    size_t index,
    OtioNode *out_marker,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `source` (optional) | `document` | document in |
| `node_handle` | `node` | receiver |
| `index` | `size` | input |
| `out_marker` | `node` | output |
| `out_error` | `text` | error |

## `marker_count`

`otio_item_marker_count` · getter

Returns how many markers an item carries.

```c
OtioStatus otio_item_marker_count(
    const OtioDocument *source,
    OtioNode node_handle,
    size_t *out_count,
    OtioBuffer *out_error);
```

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

## `new`

`otio_item_new` · constructor

Creates a bare item: something that occupies time without saying what fills it.

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

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

## `range_in_parent`

`otio_item_range_in_parent` · getter

Returns where an object sits in its parent's clock.

```c
OtioStatus otio_item_range_in_parent(
    const OtioDocument *source,
    OtioNode node_handle,
    OtioTimeRange *out_range,
    OtioBuffer *out_error);
```

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

## `remove_effect`

`otio_item_remove_effect` · method

Removes one of an item's effects, and returns it.

```c
OtioStatus otio_item_remove_effect(
    OtioDocument *target,
    OtioNode node_handle,
    size_t index,
    OtioNode *out_effect,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `node_handle` | `node` | receiver |
| `index` | `size` | input |
| `out_effect` | `node` | output |
| `out_error` | `text` | error |

## `remove_marker`

`otio_item_remove_marker` · method

Removes one of an item's markers, and returns it.

The marker stays in the document; remove it with `otio_document_remove_recursive` if nothing else holds it.

```c
OtioStatus otio_item_remove_marker(
    OtioDocument *target,
    OtioNode node_handle,
    size_t index,
    OtioNode *out_marker,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `node_handle` | `node` | receiver |
| `index` | `size` | input |
| `out_marker` | `node` | output |
| `out_error` | `text` | error |

## `set_color`

`otio_item_set_color` · setter

Sets an item's display tint. `name` may be null for an unnamed colour.

```c
OtioStatus otio_item_set_color(
    OtioDocument *target,
    OtioNode node_handle,
    OtioColor color,
    const char *name,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `node_handle` | `node` | receiver |
| `color` | `OtioColor` | input |
| `name` (optional) | `text` | input |
| `out_error` | `text` | error |

## `set_enabled`

`otio_item_set_enabled` · setter

Sets whether an item contributes to its composition.

```c
OtioStatus otio_item_set_enabled(
    OtioDocument *target,
    OtioNode node_handle,
    bool enabled,
    OtioBuffer *out_error);
```

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

## `set_source_range`

`otio_item_set_source_range` · setter

Sets the portion of its media an item uses.

```c
OtioStatus otio_item_set_source_range(
    OtioDocument *target,
    OtioNode node_handle,
    OtioTimeRange range,
    OtioBuffer *out_error);
```

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

## `source_range`

`otio_item_source_range` · getter · may answer nothing

Returns the portion of its media an item uses.

Reports `OTIO_STATUS_NO_VALUE` for an item that takes all of it.

```c
OtioStatus otio_item_source_range(
    const OtioDocument *source,
    OtioNode node_handle,
    OtioTimeRange *out_range,
    OtioBuffer *out_error);
```

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

## `trimmed_range`

`otio_item_trimmed_range` · getter

Returns the span of media an object uses, in its own clock.

```c
OtioStatus otio_item_trimmed_range(
    const OtioDocument *source,
    OtioNode node_handle,
    OtioTimeRange *out_range,
    OtioBuffer *out_error);
```

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

## `trimmed_range_in_parent`

`otio_item_trimmed_range_in_parent` · getter · may answer nothing

Returns where an object sits in its parent's clock, after the parent's own trim.

Reports `OTIO_STATUS_NO_VALUE` when the parent's trim excludes the object entirely.

```c
OtioStatus otio_item_trimmed_range_in_parent(
    const OtioDocument *source,
    OtioNode node_handle,
    OtioTimeRange *out_range,
    OtioBuffer *out_error);
```

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

## `visible_range`

`otio_item_visible_range` · getter

Returns the span of media an object shows, including what its transitions reach into.

```c
OtioStatus otio_item_visible_range(
    const OtioDocument *source,
    OtioNode node_handle,
    OtioTimeRange *out_range,
    OtioBuffer *out_error);
```

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

---

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