# Graft host pipeline C surface

<a id="grafthostpipelinecsurface"></a>

# Graft host pipeline C surface

Narrow host-exported C ABI for the first Rust-facing pipeline surface.

## Classes

| Name | Description |
|------|-------------|
| [`icy_pipeline_options`](https://auscaster.com/icey/docs/api-reference/icy_pipeline_options.md#icy_pipeline_options) | Options for [icy_pipeline_api.create](https://auscaster.com/icey/docs/api-reference/icy_pipeline_api.md#create-11): the pipeline's name, signalling token, room and ICE server, with struct_size set to the size the caller was built with. |
| [`icy_pipeline_api`](https://auscaster.com/icey/docs/api-reference/icy_pipeline_api.md#icy_pipeline_api-1) | The pipeline host API returned by [icy_pipeline_api()](https://auscaster.com/icey/docs/api-reference/icy_pipeline_api.md#icy_pipeline_api-1): create a pipeline, attach an RTSP source and a WebRTC sender, start and stop it, and read its last error. |

## Macros

| Name | Description |
|------|-------------|
| [`ICY_PIPELINE_API_ABI_VERSION`](#icy_pipeline_api_abi_version)  |  |
| [`ICY_PIPELINE_API_MANIFEST_SYMBOL`](#icy_pipeline_api_manifest_symbol)  |  |
| [`ICY_PIPELINE_API_ENTRYPOINT`](#icy_pipeline_api_entrypoint)  |  |

---

<a id="icy_pipeline_api_abi_version"></a>

### ICY_PIPELINE_API_ABI_VERSION

```cpp
#define ICY_PIPELINE_API_ABI_VERSION 1u
```

Defined in src/graft/include/icy/graft/host/pipeline.h:22

---

<a id="icy_pipeline_api_manifest_symbol"></a>

### ICY_PIPELINE_API_MANIFEST_SYMBOL

```cpp
#define ICY_PIPELINE_API_MANIFEST_SYMBOL "icy_pipeline_api_manifest"
```

Defined in src/graft/include/icy/graft/host/pipeline.h:23

---

<a id="icy_pipeline_api_entrypoint"></a>

### ICY_PIPELINE_API_ENTRYPOINT

```cpp
#define ICY_PIPELINE_API_ENTRYPOINT "icy_pipeline_api"
```

Defined in src/graft/include/icy/graft/host/pipeline.h:24

## Typedefs

| Return | Name | Description |
|--------|------|-------------|
| `struct icy_pipeline` | [`icy_pipeline_t`](#icy_pipeline_t)  |  |
| struct [`icy_pipeline_options`](https://auscaster.com/icey/docs/api-reference/icy_pipeline_options.md#icy_pipeline_options) | [`icy_pipeline_options_t`](#icy_pipeline_options_t)  | Options for [icy_pipeline_api.create](https://auscaster.com/icey/docs/api-reference/icy_pipeline_api.md#create-11): the pipeline's name, signalling token, room and ICE server, with struct_size set to the size the caller was built with. |
| struct [`icy_pipeline_api`](https://auscaster.com/icey/docs/api-reference/icy_pipeline_api.md#icy_pipeline_api-1) | [`icy_pipeline_api_t`](#icy_pipeline_api_t)  | The pipeline host API returned by [icy_pipeline_api()](https://auscaster.com/icey/docs/api-reference/icy_pipeline_api.md#icy_pipeline_api-1): create a pipeline, attach an RTSP source and a WebRTC sender, start and stop it, and read its last error. |
| const [`icy_pipeline_api_t`](#icy_pipeline_api_t) *(* | [`icy_pipeline_api_get_t`](#icy_pipeline_api_get_t)  |  |

---

<a id="icy_pipeline_t"></a>

### icy_pipeline_t

```cpp
using icy_pipeline_t = struct icy_pipeline
```

Defined in src/graft/include/icy/graft/host/pipeline.h:33

---

<a id="icy_pipeline_options_t"></a>

### icy_pipeline_options_t

```cpp
using icy_pipeline_options_t = struct icy_pipeline_options
```

Type: struct [`icy_pipeline_options`](https://auscaster.com/icey/docs/api-reference/icy_pipeline_options.md#icy_pipeline_options)

Defined in src/graft/include/icy/graft/host/pipeline.h:45

Options for [icy_pipeline_api.create](https://auscaster.com/icey/docs/api-reference/icy_pipeline_api.md#create-11): the pipeline's name, signalling token, room and ICE server, with struct_size set to the size the caller was built with.

---

<a id="icy_pipeline_api_t"></a>

### icy_pipeline_api_t

```cpp
using icy_pipeline_api_t = struct icy_pipeline_api
```

Type: struct [`icy_pipeline_api`](https://auscaster.com/icey/docs/api-reference/icy_pipeline_api.md#icy_pipeline_api-1)

Defined in src/graft/include/icy/graft/host/pipeline.h:67

The pipeline host API returned by [icy_pipeline_api()](https://auscaster.com/icey/docs/api-reference/icy_pipeline_api.md#icy_pipeline_api-1): create a pipeline, attach an RTSP source and a WebRTC sender, start and stop it, and read its last error.

---

<a id="icy_pipeline_api_get_t"></a>

### icy_pipeline_api_get_t

```cpp
using icy_pipeline_api_get_t = const icy_pipeline_api_t *(*
```

Defined in src/graft/include/icy/graft/host/pipeline.h:70

## Functions

| Return | Name | Description |
|--------|------|-------------|
| const [`icy_pipeline_api_t`](#icy_pipeline_api_t) * | [`icy_pipeline_api`](#icy_pipeline_api)  |  |

---

<a id="icy_pipeline_api"></a>

### icy_pipeline_api

```cpp
const icy_pipeline_api_t * icy_pipeline_api(void)
```

Defined in src/graft/include/icy/graft/host/pipeline.h:73

## Variables

| Return | Name | Description |
|--------|------|-------------|
| [`ICY_GRAFT_EXTERN_C_BEGIN`](https://auscaster.com/icey/docs/api-reference/graftabi.md#icy_graft_extern_c_begin) const [`icy_graft_manifest_t`](https://auscaster.com/icey/docs/api-reference/graftabi.md#icy_graft_manifest_t) | [`icy_pipeline_api_manifest`](#icy_pipeline_api_manifest)  |  |

---

<a id="icy_pipeline_api_manifest"></a>

### icy_pipeline_api_manifest

```cpp
ICY_GRAFT_EXTERN_C_BEGIN const icy_graft_manifest_t icy_pipeline_api_manifest
```

Type: [`ICY_GRAFT_EXTERN_C_BEGIN`](https://auscaster.com/icey/docs/api-reference/graftabi.md#icy_graft_extern_c_begin) const [`icy_graft_manifest_t`](https://auscaster.com/icey/docs/api-reference/graftabi.md#icy_graft_manifest_t)

Defined in src/graft/include/icy/graft/host/pipeline.h:30
