# icy_pipeline_api

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

# icy_pipeline_api

```cpp
#include <icy/graft/host/pipeline.h>

struct icy_pipeline_api
```

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

The pipeline host API returned by [icy_pipeline_api()](#icy_pipeline_api-1): create a pipeline, attach an RTSP source and a WebRTC sender, start and stop it, and read its last error.

## Public Attributes

| Return | Name | Description |
|--------|------|-------------|
| `uint32_t` | [`abi_version`](#abi_version-1)  |  |
| `uint32_t` | [`struct_size`](#struct_size-1)  |  |
| [`icy_graft_status_t`](https://auscaster.com/icey/docs/api-reference/graftabi.md#icy_graft_status_t)(* | [`create`](#create-11)  |  |
| `void(*` | [`destroy`](#destroy-6)  |  |
| [`icy_graft_status_t`](https://auscaster.com/icey/docs/api-reference/graftabi.md#icy_graft_status_t)(* | [`attach_rtsp_source`](#attach_rtsp_source)  |  |
| [`icy_graft_status_t`](https://auscaster.com/icey/docs/api-reference/graftabi.md#icy_graft_status_t)(* | [`attach_webrtc_sender`](#attach_webrtc_sender)  |  |
| [`icy_graft_status_t`](https://auscaster.com/icey/docs/api-reference/graftabi.md#icy_graft_status_t)(* | [`start`](#start-33)  |  |
| [`icy_graft_status_t`](https://auscaster.com/icey/docs/api-reference/graftabi.md#icy_graft_status_t)(* | [`stop`](#stop-21)  |  |
| `const char *(*` | [`last_error`](#last_error)  |  |

---

<a id="abi_version-1"></a>

### abi_version

```cpp
uint32_t abi_version
```

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

---

<a id="struct_size-1"></a>

### struct_size

```cpp
uint32_t struct_size
```

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

---

<a id="create-11"></a>

### create

```cpp
icy_graft_status_t(* create)(const icy_pipeline_options_t *options, icy_pipeline_t **out_pipeline)
```

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

---

<a id="destroy-6"></a>

### destroy

```cpp
void(* destroy)(icy_pipeline_t *pipeline)
```

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

---

<a id="attach_rtsp_source"></a>

### attach_rtsp_source

```cpp
icy_graft_status_t(* attach_rtsp_source)(icy_pipeline_t *pipeline, const char *url)
```

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

---

<a id="attach_webrtc_sender"></a>

### attach_webrtc_sender

```cpp
icy_graft_status_t(* attach_webrtc_sender)(icy_pipeline_t *pipeline, const char *signalling_url, const char *peer_id)
```

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

---

<a id="start-33"></a>

### start

```cpp
icy_graft_status_t(* start)(icy_pipeline_t *pipeline)
```

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

---

<a id="stop-21"></a>

### stop

```cpp
icy_graft_status_t(* stop)(icy_pipeline_t *pipeline)
```

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

---

<a id="last_error"></a>

### last_error

```cpp
const char *(* last_error)(const icy_pipeline_t *pipeline)
```

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