# NDI Routing

Using NDI routing, you can create an output on a machine that looks just like a ‘real’ video source to all remote systems. However, rather than producing actual video frames, it directs sources watching this output to receive video from a different location.

For instance: if you have two NDI video sources - **Video Source 1** and **Video Source 2** – you can create an `NDI_router` called **Video Routing 1** and direct it at **Video Source 1**. **Video Routing 1** will be visible to any NDI receivers on the network as an available video source. When receivers connect to “Video Routing 1”, the data they receive will actually be from “Video Source 1”.

NDI routing does not actually transfer any data through the computer hosting the routing source; it merely instructs receivers to look at another location when they wish to receive data from the router. Thus, a computer can act as a router exposing potentially hundreds of routing sources to the network – without any bandwidth overhead. This facility can be used for large-scale dynamic switching of sources at a network level.

You create a video routing source using:

```json
NDIlib_routing_instance_t NDIlib_routing_create( 
    const NDIlib_routing_create_t* p_create_settings);
```

The creation settings allow you to assign a name and group to the source that is created. Once the source is created, you can tell it to route video from another source using:

```
bool NDIlib_routing_change(NDIlib_routing_instance_t p_instance, 
                           const NDIlib_source_t* p_source);
```

and:

```
bool NDIlib_routing_clear(NDIlib_routing_instance_t p_instance);
```

Finally, when you are finished, you can dispose of the router using:

```
void NDIlib_routing_destroy(NDIlib_routing_instance_t p_instance);
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ndi.video/all/developing-with-ndi/sdk/ndi-routing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
