Class NativeKinesisVideoClient
- java.lang.Object
-
- com.amazonaws.kinesisvideo.internal.client.AbstractKinesisVideoClient
-
- com.amazonaws.kinesisvideo.internal.client.NativeKinesisVideoClient
-
- All Implemented Interfaces:
KinesisVideoClient
- Direct Known Subclasses:
JavaKinesisVideoClient
public class NativeKinesisVideoClient extends AbstractKinesisVideoClient
Implement Kinesis Video Client interface for Android. Main purpose of this class is to manage media sources and their configuration. Media source produces the stream of data which is uploaded into Kinesis Video using this and underlying classes and producer SDK. Stream of data produced by the media source can be anything, for example, video, sound, sensor data, logs, etc. Kinesis Video is agnostic to the internal format of the data. This client wraps the calls to the back-end, managing the device and network configuration, creating, registering, and controlling all streams at once
-
-
Field Summary
-
Fields inherited from class com.amazonaws.kinesisvideo.internal.client.AbstractKinesisVideoClient
mIsInitialized, mLog, mMediaSources
-
-
Constructor Summary
Constructors Constructor Description NativeKinesisVideoClient(KinesisVideoClientConfiguration configuration, KinesisVideoServiceClient serviceClient, ScheduledExecutorService executor)NativeKinesisVideoClient(org.apache.logging.log4j.Logger log, KinesisVideoClientConfiguration configuration, KinesisVideoServiceClient serviceClient, ScheduledExecutorService executor)NativeKinesisVideoClient(org.apache.logging.log4j.Logger log, AuthCallbacks authCallbacks, StorageCallbacks storageCallbacks, ServiceCallbacks serviceCallbacks, StreamCallbacks streamCallbacks)NativeKinesisVideoClient(org.apache.logging.log4j.Logger log, AuthCallbacks authCallbacks, StorageCallbacks storageCallbacks, ServiceCallbacks serviceCallbacks, StreamCallbacks streamCallbacks, boolean useInstrumentedAllocators)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MediaSourcecreateMediaSource(String streamName, MediaSourceConfiguration mediaSourceConfiguration)Try create a media source.voidfree()Stops the streams and frees/releases the underlying objectvoidfreeMediaSource(MediaSource mediaSource)Free media source's binding producer streamOptional<KinesisVideoMetrics>getClientMetrics()Get metrics for the producer client.longgetCurrentAllocationSizeBytes()Query the PIC malloc tracker for the current allocated bytes.Optional<KinesisVideoStreamMetrics>getStreamMetrics(String streamName)Get metrics for a particular stream.List<String>getStreamNames()Returns a copy of the current registered streams.voidinitialize(DeviceInfo deviceInfo)Initializes the client object.KinesisVideoProducerinitializeNewKinesisVideoProducer(DeviceInfo deviceInfo)Initialize a new nativeKinesisVideoProducer.List<MediaSourceConfiguration.Builder<? extends MediaSourceConfiguration>>listSupportedConfigurations()List few known media sources available to the application.voidregisterMediaSource(MediaSource mediaSource)Register a media source.voidregisterMediaSourceAsync(MediaSource mediaSource)Register a media source ASYNC.voidstopAllMediaSources()Pauses the processingvoidunregisterMediaSource(MediaSource mediaSource)Un-Register a media source.-
Methods inherited from class com.amazonaws.kinesisvideo.internal.client.AbstractKinesisVideoClient
isInitialized, startAllMediaSources
-
-
-
-
Constructor Detail
-
NativeKinesisVideoClient
public NativeKinesisVideoClient(@Nonnull KinesisVideoClientConfiguration configuration, @Nonnull KinesisVideoServiceClient serviceClient, @Nonnull ScheduledExecutorService executor)
-
NativeKinesisVideoClient
public NativeKinesisVideoClient(@Nonnull org.apache.logging.log4j.Logger log, @Nonnull KinesisVideoClientConfiguration configuration, @Nonnull KinesisVideoServiceClient serviceClient, @Nonnull ScheduledExecutorService executor)
-
NativeKinesisVideoClient
public NativeKinesisVideoClient(@Nonnull org.apache.logging.log4j.Logger log, @Nonnull AuthCallbacks authCallbacks, @Nonnull StorageCallbacks storageCallbacks, @Nonnull ServiceCallbacks serviceCallbacks, @Nonnull StreamCallbacks streamCallbacks)
-
NativeKinesisVideoClient
public NativeKinesisVideoClient(@Nonnull org.apache.logging.log4j.Logger log, @Nonnull AuthCallbacks authCallbacks, @Nonnull StorageCallbacks storageCallbacks, @Nonnull ServiceCallbacks serviceCallbacks, @Nonnull StreamCallbacks streamCallbacks, boolean useInstrumentedAllocators)
-
-
Method Detail
-
initialize
public void initialize(@Nonnull DeviceInfo deviceInfo) throws KinesisVideoException
Initializes the client object.- Specified by:
initializein interfaceKinesisVideoClient- Overrides:
initializein classAbstractKinesisVideoClient- Parameters:
deviceInfo- Device info for which the client needs to be initialized.- Throws:
KinesisVideoException- if unable to initialize KinesisVideoClient.
-
registerMediaSource
public void registerMediaSource(@Nonnull MediaSource mediaSource) throws KinesisVideoException
Description copied from class:AbstractKinesisVideoClientRegister a media source. The media source will be binding to kinesis video producer stream to send out data from media source.- Specified by:
registerMediaSourcein interfaceKinesisVideoClient- Overrides:
registerMediaSourcein classAbstractKinesisVideoClient- Parameters:
mediaSource- media source binding to kinesis video producer stream- Throws:
KinesisVideoException- if unable to register media source.
-
registerMediaSourceAsync
public void registerMediaSourceAsync(@Nonnull MediaSource mediaSource) throws KinesisVideoException
Description copied from interface:KinesisVideoClientRegister a media source ASYNC. The media source will be binding to kinesis video producer stream via CreateStream and send out data from media source. Async call to create the stream and bind to media source.- Specified by:
registerMediaSourceAsyncin interfaceKinesisVideoClient- Overrides:
registerMediaSourceAsyncin classAbstractKinesisVideoClient- Parameters:
mediaSource- media source binding to kinesis video producer stream- Throws:
KinesisVideoException- if unable to register media source.
-
unregisterMediaSource
public void unregisterMediaSource(@Nonnull MediaSource mediaSource) throws KinesisVideoException
Description copied from class:AbstractKinesisVideoClientUn-Register a media source. The media source will stop binding to kinesis video producer stream and it cannot send data via producer stream afterwards until register again.- Specified by:
unregisterMediaSourcein interfaceKinesisVideoClient- Overrides:
unregisterMediaSourcein classAbstractKinesisVideoClient- Parameters:
mediaSource- media source to stop binding to kinesis video producer stream- Throws:
KinesisVideoException- if unable to unregister media source.
-
freeMediaSource
public void freeMediaSource(@Nonnull MediaSource mediaSource) throws KinesisVideoException
Description copied from class:AbstractKinesisVideoClientFree media source's binding producer stream- Specified by:
freeMediaSourcein interfaceKinesisVideoClient- Overrides:
freeMediaSourcein classAbstractKinesisVideoClient- Parameters:
mediaSource- media source binding to kinesis video producer stream to be freed- Throws:
KinesisVideoException- if unable to free media source.
-
stopAllMediaSources
public void stopAllMediaSources() throws KinesisVideoExceptionDescription copied from class:AbstractKinesisVideoClientPauses the processing- Specified by:
stopAllMediaSourcesin interfaceKinesisVideoClient- Overrides:
stopAllMediaSourcesin classAbstractKinesisVideoClient- Throws:
KinesisVideoException- if unable to stop all media sources.
-
createMediaSource
public MediaSource createMediaSource(String streamName, MediaSourceConfiguration mediaSourceConfiguration) throws KinesisVideoException
Description copied from interface:KinesisVideoClientTry create a media source. Use the mediaSourceConfiguration to determine, the media source type, create the instance, and ensure that it is configured with working parameters- Parameters:
streamName- Stream name for the media sourcemediaSourceConfiguration- , configuration to create specific media source- Returns:
- configured and working media source
- Throws:
KinesisVideoException
-
listSupportedConfigurations
public List<MediaSourceConfiguration.Builder<? extends MediaSourceConfiguration>> listSupportedConfigurations()
Description copied from interface:KinesisVideoClientList few known media sources available to the application. The configurations returned are expected to be working as is. The returned list is not exhaustive, some working configurations will likely be missing from the list.- Returns:
- list of configuration builders to allow further configuration
-
free
public void free() throws KinesisVideoExceptionDescription copied from class:AbstractKinesisVideoClientStops the streams and frees/releases the underlying object- Specified by:
freein interfaceKinesisVideoClient- Overrides:
freein classAbstractKinesisVideoClient- Throws:
KinesisVideoException- if unable to free resources.
-
initializeNewKinesisVideoProducer
@Nonnull public KinesisVideoProducer initializeNewKinesisVideoProducer(DeviceInfo deviceInfo) throws ProducerException
Initialize a new nativeKinesisVideoProducer. Used internally byinitialize(com.amazonaws.kinesisvideo.producer.DeviceInfo)and visible for testing.- Throws:
ProducerException
-
getCurrentAllocationSizeBytes
public long getCurrentAllocationSizeBytes()
Query the PIC malloc tracker for the current allocated bytes. Note this is shared for all streams.- Returns:
- The current malloc'd memory for the KVS native codebase (global), in bytes.
-
getClientMetrics
public Optional<KinesisVideoMetrics> getClientMetrics()
Get metrics for the producer client.- Returns:
- Client metrics
-
getStreamMetrics
public Optional<KinesisVideoStreamMetrics> getStreamMetrics(@Nonnull String streamName)
Get metrics for a particular stream.- Parameters:
streamName- name of the stream to fetch metrics of- Returns:
- The metrics
- Throws:
IllegalArgumentException- if the media source is not registered
-
-