Putting Media into the Stream

The C++ library provides methods (for example, PutFrame) that you can use
to put data into the KinesisVideoStream object. The library then manages
the internal state of the data, which can include the following tasks:

Performing authentication.

Watching for network latency. If the latency is too high, the library might
choose to drop frames.

Tracking status of streaming in progress.

Callback Interfaces

This layer exposes a set of callback interfaces, which enable it to talk to the
application layer. These callback interfaces include the following:

Service callbacks interface (CallbackProvider): The library
invokes events obtained through this interface when it creates a stream, obtains
a stream description, deletes a stream, and so on.

Client-ready state or low storage events interface
(ClientCallbackProvider): The library invokes events on this
interface when the client is ready, or when it detects that it might run out of
available storage or memory.

Stream events callback interface (StreamCallbackProvider): The
library invokes events on this interface when stream events occur, such as the
stream entering the ready state, dropped frames, or stream errors.

Kinesis Video Streams provides default implementations for these interfaces. You can
also provide
your own custom implementation—for example, if you need custom networking logic
or you want to expose a low storage condition to the user interface.

Prerequisites

Credentials: In the sample code, you
provide credentials by specifying a profile that you set up in your AWS
credentials profile file. If you haven't already done so, first set up your
credentials profile.

Certificate store integration: The Kinesis Video Streams
Producer Library must establish trust with the service it calls. This is
done through validating the certification authorities (CAs) in the public
certificate store. On Linux-based models, this store is located in the
/etc/ssl/ directory.

Download the certificate from the following location to your certificate
store: