codec-amr
Public Types | Public Member Functions | List of all members
AMRWB Class Reference

AMR Wideband codec implementation. More...

#include <AMRWB.h>

Inheritance diagram for AMRWB:
Inheritance graph
[legend]
Collaboration diagram for AMRWB:
Collaboration graph
[legend]

Public Types

enum class  Mode {
  WB_6_60 = 0 , WB_8_85 , WB_12_65 , WB_14_25 ,
  WB_15_85 , WB_18_25 , WB_19_85 , WB_23_05 ,
  WB_23_85
}
 Available encoding modes for AMR-WB.
 

Public Member Functions

 ~AMRWB () override
 Destructor.
 
void setMode (Mode mode)
 Set encoding mode. More...
 
Mode getMode () const
 Get current encoding mode. More...
 
int encode (const int16_t *pcmSamples, size_t sampleCount, uint8_t *amrData, size_t amrBufferSize) override
 Encode PCM samples to AMR-WB format. More...
 
int decode (const uint8_t *amrData, size_t amrSize, int16_t *pcmSamples, size_t maxSampleCount) override
 Decode AMR-WB data to PCM samples. More...
 
int getSampleRate () const override
 Get sample rate (16000 Hz for AMR-WB) More...
 
int getFrameSizeSamples () override
 Get frame size in samples (320 for AMR-WB) More...
 
int getEncodedFrameSizeBytes () override
 Get the size in bytes for one encoded frame in current mode. More...
 

Additional Inherited Members

- Protected Attributes inherited from AMRCodec
bool isInitialized = false
 

Detailed Description

AMR Wideband codec implementation.

Member Function Documentation

◆ decode()

int AMRWB::decode ( const uint8_t *  amrData,
size_t  amrSize,
int16_t *  pcmSamples,
size_t  maxSampleCount 
)
inlineoverridevirtual

Decode AMR-WB data to PCM samples.

Parameters
amrDataAMR encoded data
amrSizeSize of AMR data in bytes
pcmSamplesOutput buffer for PCM samples
maxSampleCountMaximum capacity of output buffer
Returns
Number of decoded samples written

Implements AMRCodec.

◆ encode()

int AMRWB::encode ( const int16_t *  pcmSamples,
size_t  sampleCount,
uint8_t *  amrData,
size_t  amrBufferSize 
)
inlineoverridevirtual

Encode PCM samples to AMR-WB format.

Parameters
pcmSamplesInput PCM samples (320 samples = 20ms at 16kHz)
sampleCountNumber of input samples
amrDataBuffer to store encoded AMR data
amrBufferSizeSize of the AMR buffer in bytes
Returns
Number of bytes written to amrData

Implements AMRCodec.

◆ getEncodedFrameSizeBytes()

int AMRWB::getEncodedFrameSizeBytes ( )
inlineoverridevirtual

Get the size in bytes for one encoded frame in current mode.

Returns
Bytes per frame

Implements AMRCodec.

◆ getFrameSizeSamples()

int AMRWB::getFrameSizeSamples ( )
inlineoverridevirtual

Get frame size in samples (320 for AMR-WB)

Returns
Frame size in samples

Implements AMRCodec.

◆ getMode()

Mode AMRWB::getMode ( ) const
inline

Get current encoding mode.

Returns
Current mode

◆ getSampleRate()

int AMRWB::getSampleRate ( ) const
inlineoverridevirtual

Get sample rate (16000 Hz for AMR-WB)

Returns
Sample rate in Hz

Implements AMRCodec.

◆ setMode()

void AMRWB::setMode ( Mode  mode)
inline

Set encoding mode.

Parameters
modeDesired encoding mode

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