AlexaClientSDK  1.26.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
Public Member Functions | Static Public Member Functions | List of all members
alexaClientSDK::speechencoder::OpusEncoderContext Class Reference

#include <OpusEncoderContext.h>

Inheritance diagram for alexaClientSDK::speechencoder::OpusEncoderContext:
Inheritance graph
[legend]
Collaboration diagram for alexaClientSDK::speechencoder::OpusEncoderContext:
Collaboration graph
[legend]

Public Member Functions

 OpusEncoderContext ()
 
 ~OpusEncoderContext ()
 
bool init (alexaClientSDK::avsCommon::utils::AudioFormat inputFormat) override
 
size_t getInputFrameSize () override
 
size_t getOutputFrameSize () override
 
bool requiresFullyRead () override
 
alexaClientSDK::avsCommon::utils::AudioFormat getAudioFormat () override
 
std::string getAVSFormatName () override
 
bool start () override
 
ssize_t processSamples (void *samples, size_t numberOfWords, uint8_t *buffer) override
 
void close () override
 
- Public Member Functions inherited from alexaClientSDK::speechencoder::EncoderContext
virtual ~EncoderContext ()=default
 

Static Public Member Functions

static std::shared_ptr< EncoderContextcreateEncoderContext ()
 

Detailed Description

EncoderContext implemenation using libopus as a backend library

Constructor & Destructor Documentation

◆ OpusEncoderContext()

alexaClientSDK::speechencoder::OpusEncoderContext::OpusEncoderContext ( )

Constructor.

◆ ~OpusEncoderContext()

alexaClientSDK::speechencoder::OpusEncoderContext::~OpusEncoderContext ( )

Destructor.

Member Function Documentation

◆ close()

void alexaClientSDK::speechencoder::OpusEncoderContext::close ( )
overridevirtual

Destroy current libopus encoder state.

Implements alexaClientSDK::speechencoder::EncoderContext.

◆ createEncoderContext()

std::shared_ptr< EncoderContext > alexaClientSDK::speechencoder::OpusEncoderContext::createEncoderContext ( )
static

Factory method.

Returns
A std::shared_ptr to a new EncoderContext.

◆ getAudioFormat()

AudioFormat alexaClientSDK::speechencoder::OpusEncoderContext::getAudioFormat ( )
overridevirtual

The AudioFormat describes the encoded audio stream.

Returns
The AudioFormat describes the encoded audio stream.

Implements alexaClientSDK::speechencoder::EncoderContext.

◆ getAVSFormatName()

std::string alexaClientSDK::speechencoder::OpusEncoderContext::getAVSFormatName ( )
overridevirtual

The string interpretation of the OPUS format, that AVS cloud service can recognize.

Returns
Output format string.

Implements alexaClientSDK::speechencoder::EncoderContext.

◆ getInputFrameSize()

size_t alexaClientSDK::speechencoder::OpusEncoderContext::getInputFrameSize ( )
overridevirtual

The maximum number of sample can be processed at the same time.

Returns
The number of sample (in words).

Implements alexaClientSDK::speechencoder::EncoderContext.

◆ getOutputFrameSize()

size_t alexaClientSDK::speechencoder::OpusEncoderContext::getOutputFrameSize ( )
overridevirtual

The maximum length of the single encoded frame.

Returns
The maximum output length (in bytes).

Implements alexaClientSDK::speechencoder::EncoderContext.

◆ init()

bool alexaClientSDK::speechencoder::OpusEncoderContext::init ( alexaClientSDK::avsCommon::utils::AudioFormat  inputFormat)
overridevirtual

Pre-initialization. Will verify given AudioFormat if the format is acceptable. The correct getAudioFormat will available only after this call is completed successfully.

Parameters
inputFormatThe AudioFormat describes the audio format of the future incoming PCM frames.
Returns
true when initialization success.

Implements alexaClientSDK::speechencoder::EncoderContext.

◆ processSamples()

ssize_t alexaClientSDK::speechencoder::OpusEncoderContext::processSamples ( void *  samples,
size_t  numberOfWords,
uint8_t *  buffer 
)
overridevirtual

Encode next PCM samples.

Parameters
samplesPCM samples to be encoded. The word size should be known via AudioFormat that has provided at pre-init function.
numberOfWordsThe number of samples (in words).
bufferThe buffer where the encoded frames should be written.
Returns
The total bytes of encoded frames has been written into buffer. Negative value when error is occurred.

Implements alexaClientSDK::speechencoder::EncoderContext.

◆ requiresFullyRead()

bool alexaClientSDK::speechencoder::OpusEncoderContext::requiresFullyRead ( )
overridevirtual

Returns true when CBR.

Returns
true if processSamples should be called with fixed length of input samples during the session.

Implements alexaClientSDK::speechencoder::EncoderContext.

◆ start()

bool alexaClientSDK::speechencoder::OpusEncoderContext::start ( )
overridevirtual

This will allocate new libopus encoder state and perform CTL functions.

Returns
true when success.

Implements alexaClientSDK::speechencoder::EncoderContext.


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

AlexaClientSDK 1.26.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0