# Sensor Stream Client

The ssp\_client application receives network packets from the ssp\_server, de-serializes and decodes them, and makes them available for processing.

For example, you could use the code with BundleFusion or another, comparable algorithm. This is beneficial if you’re ingesting multiple sensor streams, and want to run computer vision algorithms such as skeleton tracking. And also lends itself perfectly to projects involving sensors in multiple locations, i.e. if you want to combine streams from a variety of drones operating in different locations into one stream.&#x20;

You can have Sensor Stream Client receive multiple streams and ingest the data for a spatial computing/computer vision pipeline.

## Processing Examples

To provide an example, [**ssp\_client\_opencv**](https://github.com/moetsi/Sensor-Stream-Pipe/blob/master/clients/ssp_client_opencv.cc) converts the encoded frames into displayable OpenCV, whereas [**ssp\_client\_k4a**](https://github.com/moetsi/Sensor-Stream-Pipe/blob/master/clients/ssp_client_k4a.cc) connects with remote Azure Kinect body tracking and [**ssp\_client\_pointcloud**](https://github.com/moetsi/Sensor-Stream-Pipe/blob/master/clients/ssp_client_pointcloud.cc) generates a pointcloud from your Kinect DK data.

These three different clients provide three examples of output format, but you can adapt this code for final processing however you like.

Have a look at [ssp\_client\_template](https://github.com/moetsi/Sensor-Stream-Pipe/blob/master/clients/ssp_client_template.cc) for a bare-bones template that you can play around with.

```
./bin/ssp_client_opencv <port> (<log level>) (<log file>)
./bin/ssp_client_k4a <port> (<log level>) (<log file>)
./bin/ssp_client_pointcloud <port> (<output_folder>) (<log level>) (<log file>)
```

Due to the enqueuing process as described in the ssp\_server section, it is recommended that you start the ssp\_client application first.

#### **Parallel processing**

By default, the ssp\_client can receive frames from multiple servers in parallel, and will process the input using a [fair queuing method](http://zguide.zeromq.org/page:all#Divide-and-Conquer).


---

# 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://sensor-stream-pipe.moetsi.com/components-overview/sensor-stream-client.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.
