Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Aws::Kinesis::KinesisStreamManagerInterface Class Referenceabstract

#include <kinesis_stream_manager.h>

Inheritance diagram for Aws::Kinesis::KinesisStreamManagerInterface:
Inheritance graph
[legend]

Public Types

using VideoProducerFactory = std::function< std::unique_ptr< KinesisVideoProducerInterface >(std::string, std::unique_ptr< com::amazonaws::kinesis::video::DeviceInfoProvider >, std::unique_ptr< com::amazonaws::kinesis::video::ClientCallbackProvider >, std::unique_ptr< com::amazonaws::kinesis::video::StreamCallbackProvider >, std::unique_ptr< com::amazonaws::kinesis::video::CredentialProvider >)>
 

Public Member Functions

virtual KinesisManagerStatus FetchRekognitionResults (const std::string &stream_name, Aws::Vector< Model::Record > *records)=0
 
virtual void FreeStream (std::string stream_name)=0
 
virtual KinesisManagerStatus InitializeVideoProducer (std::string region, std::unique_ptr< com::amazonaws::kinesis::video::DeviceInfoProvider > device_info_provider, std::unique_ptr< com::amazonaws::kinesis::video::ClientCallbackProvider > client_callback_provider, std::unique_ptr< com::amazonaws::kinesis::video::StreamCallbackProvider > stream_callback_provider, std::unique_ptr< com::amazonaws::kinesis::video::CredentialProvider > credential_provider, VideoProducerFactory video_producer_factory=KinesisStreamManagerInterface::CreateDefaultVideoProducer)=0
 
virtual KinesisManagerStatus InitializeVideoProducer (std::string region, VideoProducerFactory video_producer_factory=KinesisStreamManagerInterface::CreateDefaultVideoProducer)=0
 
virtual KinesisManagerStatus InitializeVideoStream (std::unique_ptr< com::amazonaws::kinesis::video::StreamDefinition > stream_definition)=0
 
 KinesisStreamManagerInterface (const Aws::Client::ParameterReaderInterface *parameter_reader, const StreamDefinitionProvider *stream_definition_provider, StreamSubscriptionInstaller *subscription_installer)
 
 KinesisStreamManagerInterface ()=default
 
virtual KinesisManagerStatus ProcessCodecPrivateDataForStream (const std::string &stream_name, std::vector< uint8_t > codec_private_data)=0
 
virtual KinesisManagerStatus PutFrame (std::string stream_name, Frame &frame) const =0
 
virtual KinesisManagerStatus PutMetadata (std::string stream_name, const std::string &name, const std::string &value) const =0
 
virtual ~KinesisStreamManagerInterface ()=default
 

Static Public Member Functions

static std::unique_ptr< KinesisVideoProducerInterfaceCreateDefaultVideoProducer (std::string region, std::unique_ptr< com::amazonaws::kinesis::video::DeviceInfoProvider > device_info_provider, std::unique_ptr< com::amazonaws::kinesis::video::ClientCallbackProvider > client_callback_provider, std::unique_ptr< com::amazonaws::kinesis::video::StreamCallbackProvider > stream_callback_provider, std::unique_ptr< com::amazonaws::kinesis::video::CredentialProvider > credential_provider)
 

Protected Member Functions

virtual KinesisManagerStatus GenerateStreamSubscriptionDescriptor (int stream_idx, StreamSubscriptionDescriptor &descriptor)
 
virtual KinesisManagerStatus InitializeStreamSubscription (const StreamSubscriptionDescriptor &descriptor)=0
 
virtual KinesisManagerStatus KinesisVideoStreamerSetup ()
 
virtual KinesisManagerStatus KinesisVideoStreamSetup (const uint16_t stream_idx, const PBYTE codec_private_data, const uint32_t codec_private_data_size, std::string *stream_name)
 

Protected Attributes

const Aws::Client::ParameterReaderInterfaceparameter_reader_ = nullptr
 
const StreamDefinitionProviderstream_definition_provider_ = nullptr
 
StreamSubscriptionInstallersubscription_installer_ = nullptr
 

Detailed Description

Definition at line 71 of file kinesis_stream_manager.h.

Member Typedef Documentation

using Aws::Kinesis::KinesisStreamManagerInterface::VideoProducerFactory = std::function<std::unique_ptr<KinesisVideoProducerInterface>( std::string, std::unique_ptr<com::amazonaws::kinesis::video::DeviceInfoProvider>, std::unique_ptr<com::amazonaws::kinesis::video::ClientCallbackProvider>, std::unique_ptr<com::amazonaws::kinesis::video::StreamCallbackProvider>, std::unique_ptr<com::amazonaws::kinesis::video::CredentialProvider> )>

Definition at line 89 of file kinesis_stream_manager.h.

Constructor & Destructor Documentation

Aws::Kinesis::KinesisStreamManagerInterface::KinesisStreamManagerInterface ( const Aws::Client::ParameterReaderInterface parameter_reader,
const StreamDefinitionProvider stream_definition_provider,
StreamSubscriptionInstaller subscription_installer 
)
inline

Definition at line 74 of file kinesis_stream_manager.h.

Aws::Kinesis::KinesisStreamManagerInterface::KinesisStreamManagerInterface ( )
default
virtual Aws::Kinesis::KinesisStreamManagerInterface::~KinesisStreamManagerInterface ( )
virtualdefault

Member Function Documentation

unique_ptr< KinesisVideoProducerInterface > Aws::Kinesis::KinesisStreamManagerInterface::CreateDefaultVideoProducer ( std::string  region,
std::unique_ptr< com::amazonaws::kinesis::video::DeviceInfoProvider >  device_info_provider,
std::unique_ptr< com::amazonaws::kinesis::video::ClientCallbackProvider >  client_callback_provider,
std::unique_ptr< com::amazonaws::kinesis::video::StreamCallbackProvider >  stream_callback_provider,
std::unique_ptr< com::amazonaws::kinesis::video::CredentialProvider >  credential_provider 
)
static

Definition at line 169 of file kinesis_stream_manager.cpp.

virtual KinesisManagerStatus Aws::Kinesis::KinesisStreamManagerInterface::FetchRekognitionResults ( const std::string &  stream_name,
Aws::Vector< Model::Record > *  records 
)
pure virtual

This function returns the analysis results from Rekognition for the video stream, by reading the associated Kinesis data stream.

Parameters
stream_namethe name of the Kinesis video stream.
recordswill store the fetched records.
Returns
KINESIS_MANAGER_STATUS_SUCCESS If the GetRecords call completed successfully.

Implemented in Aws::Kinesis::KinesisStreamManager.

virtual void Aws::Kinesis::KinesisStreamManagerInterface::FreeStream ( std::string  stream_name)
pure virtual

Stops and frees the resources used by a given stream. This does not delete the stream in AWS Kinesis.

Parameters
stream_name

Implemented in Aws::Kinesis::KinesisStreamManager.

KinesisManagerStatus Aws::Kinesis::KinesisStreamManagerInterface::GenerateStreamSubscriptionDescriptor ( int  stream_idx,
StreamSubscriptionDescriptor descriptor 
)
protectedvirtual

Loads the relevant parameters associated with the stream and fills the provided descriptor.

Parameters
descriptor
Returns
KinesisManagerStatus

Definition at line 60 of file kinesis_stream_manager.cpp.

virtual KinesisManagerStatus Aws::Kinesis::KinesisStreamManagerInterface::InitializeStreamSubscription ( const StreamSubscriptionDescriptor descriptor)
protectedpure virtual

Initializes the subscription for the stream's input.

Parameters
descriptora subscription descriptor previously generated by GenerateStreamSubscriptionDescriptor.
Returns
KinesisManagerStatus

Implemented in Aws::Kinesis::KinesisStreamManager.

virtual KinesisManagerStatus Aws::Kinesis::KinesisStreamManagerInterface::InitializeVideoProducer ( std::string  region,
std::unique_ptr< com::amazonaws::kinesis::video::DeviceInfoProvider >  device_info_provider,
std::unique_ptr< com::amazonaws::kinesis::video::ClientCallbackProvider >  client_callback_provider,
std::unique_ptr< com::amazonaws::kinesis::video::StreamCallbackProvider >  stream_callback_provider,
std::unique_ptr< com::amazonaws::kinesis::video::CredentialProvider >  credential_provider,
VideoProducerFactory  video_producer_factory = KinesisStreamManagerInterface::CreateDefaultVideoProducer 
)
pure virtual

Initializes the video producer with the given callbacks.

Note
This function must be called if the KinesisStreamManager is to be used for video streams.
This function should only be called once.
Parameters
region
device_info_provider
client_callback_provider
stream_callback_provider
credential_provider
video_producer_factory
Returns
KinesisManagerStatus

Implemented in Aws::Kinesis::KinesisStreamManager.

virtual KinesisManagerStatus Aws::Kinesis::KinesisStreamManagerInterface::InitializeVideoProducer ( std::string  region,
VideoProducerFactory  video_producer_factory = KinesisStreamManagerInterface::CreateDefaultVideoProducer 
)
pure virtual

Initializes the video producer using the default callbacks provided as part of the Kinesis Manager package.

Parameters
region
video_producer_factory
Returns
KinesisManagerStatus

Implemented in Aws::Kinesis::KinesisStreamManager.

virtual KinesisManagerStatus Aws::Kinesis::KinesisStreamManagerInterface::InitializeVideoStream ( std::unique_ptr< com::amazonaws::kinesis::video::StreamDefinition >  stream_definition)
pure virtual

Initializes a video stream using the given stream definition.

Note
The video producer must have been initialized before any calls to this function are made.
If a stream by the same name already exists in AWS Kinesis, it will be used without creating a new one.
Parameters
stream_definition
Returns
KinesisManagerStatus

Implemented in Aws::Kinesis::KinesisStreamManager.

KinesisManagerStatus Aws::Kinesis::KinesisStreamManagerInterface::KinesisVideoStreamerSetup ( )
protectedvirtual

This function orchestrates the universal setup of a video streaming application.

See also
common.h for details about the input format for the stream definition.
Parameters
parameter_reader
subscription_installerresponsible for subscribing to a media source and setting up callbacks that would convert/transmit the data to AWS Kinesis.
stream_definition_provider
Returns
KinesisManagerStatus returning KINESIS_MANAGER_STATUS_SUCCESS if at least one stream was successfully bootstrapped.

Reimplemented in Aws::Kinesis::KinesisStreamManager.

Definition at line 116 of file kinesis_stream_manager.cpp.

KinesisManagerStatus Aws::Kinesis::KinesisStreamManagerInterface::KinesisVideoStreamSetup ( const uint16_t  stream_idx,
const PBYTE  codec_private_data,
const uint32_t  codec_private_data_size,
std::string *  stream_name 
)
protectedvirtual

This function orchestrates the setup of a single video stream and is called by KinesisVideoStreamerSetup.

Parameters
stream_idx
codec_private_data
codec_private_data_size
stream_nameIf not null, the stream name will be stored in this location.
Returns
KinesisManagerStatus

Reimplemented in Aws::Kinesis::KinesisStreamManager.

Definition at line 35 of file kinesis_stream_manager.cpp.

virtual KinesisManagerStatus Aws::Kinesis::KinesisStreamManagerInterface::ProcessCodecPrivateDataForStream ( const std::string &  stream_name,
std::vector< uint8_t >  codec_private_data 
)
pure virtual

This function should be called whenever the codec data (sequence and picture parameter sets) have changed for the stream. Typically this would happen if encoder settings (such as fps or resolution) were changed.

Parameters
stream_name
codec_private_data
Returns
KINESIS_MANAGER_STATUS_SUCCESS if the stream was updated successfully or if no update was necessary.

Implemented in Aws::Kinesis::KinesisStreamManager.

virtual KinesisManagerStatus Aws::Kinesis::KinesisStreamManagerInterface::PutFrame ( std::string  stream_name,
Frame &  frame 
) const
pure virtual

Transmits a single video frame into AWS Kinesis.

Note
Both the video producer and the given stream must have been initialized before any calls to this function are made.
Parameters
stream_name
frame
Returns
KinesisManagerStatus

Implemented in Aws::Kinesis::KinesisStreamManager.

virtual KinesisManagerStatus Aws::Kinesis::KinesisStreamManagerInterface::PutMetadata ( std::string  stream_name,
const std::string &  name,
const std::string &  value 
) const
pure virtual

Sends metadata to AWS Kinesis to be prepended to the next video fragment of the stream.

Note
Both the video producer and the given stream must have been initialized before any calls to this function are made.
Parameters
stream_name
namethe metadata name
valuethe metadata value
Returns
KinesisManagerStatus

Implemented in Aws::Kinesis::KinesisStreamManager.

Member Data Documentation

const Aws::Client::ParameterReaderInterface* Aws::Kinesis::KinesisStreamManagerInterface::parameter_reader_ = nullptr
protected

Definition at line 230 of file kinesis_stream_manager.h.

const StreamDefinitionProvider* Aws::Kinesis::KinesisStreamManagerInterface::stream_definition_provider_ = nullptr
protected

Definition at line 231 of file kinesis_stream_manager.h.

StreamSubscriptionInstaller* Aws::Kinesis::KinesisStreamManagerInterface::subscription_installer_ = nullptr
protected

Definition at line 232 of file kinesis_stream_manager.h.


The documentation for this class was generated from the following files:


kinesis_manager
Author(s): AWS RoboMaker
autogenerated on Thu Mar 4 2021 03:28:41