codec-amr
Public Member Functions | Protected Attributes | List of all members
AMRCodec Class Referenceabstract

Base class for AMR codec implementations. More...

#include <AMRCodec.h>

Inheritance diagram for AMRCodec:
Inheritance graph
[legend]

Public Member Functions

virtual int encode (const int16_t *pcmSamples, size_t sampleCount, uint8_t *amrData, size_t amrBufferSize)=0
 Encodes PCM audio samples to AMR format. More...
 
virtual int decode (const uint8_t *amrData, size_t amrSize, int16_t *pcmSamples, size_t maxSampleCount)=0
 Decodes AMR format to PCM audio samples. More...
 
virtual int getSampleRate () const =0
 Get sample rate used by the codec. More...
 
virtual int getFrameSizeSamples ()=0
 Get the number of samples per frame. More...
 
virtual int getEncodedFrameSizeBytes ()=0
 Get the size in bytes of one encoded frame. More...
 

Protected Attributes

bool isInitialized = false
 

Detailed Description

Base class for AMR codec implementations.

Member Function Documentation

◆ decode()

virtual int AMRCodec::decode ( const uint8_t *  amrData,
size_t  amrSize,
int16_t *  pcmSamples,
size_t  maxSampleCount 
)
pure virtual

Decodes AMR format to PCM audio samples.

Parameters
amrDataInput AMR encoded data
amrSizeSize of AMR data in bytes
pcmSamplesOutput buffer for decoded PCM samples
maxSampleCountMaximum number of samples that can be written to pcmSamples
Returns
Number of decoded samples

Implemented in AMRWB, and AMRNB.

◆ encode()

virtual int AMRCodec::encode ( const int16_t *  pcmSamples,
size_t  sampleCount,
uint8_t *  amrData,
size_t  amrBufferSize 
)
pure virtual

Encodes PCM audio samples to AMR format.

Parameters
pcmSamplesInput PCM audio samples
sampleCountNumber of samples to encode
amrDataBuffer to store encoded AMR data
amrBufferSizeSize of the AMR buffer in bytes
Returns
Number of bytes written to amrData

Implemented in AMRWB, and AMRNB.

◆ getEncodedFrameSizeBytes()

virtual int AMRCodec::getEncodedFrameSizeBytes ( )
pure virtual

Get the size in bytes of one encoded frame.

Returns
Number of bytes for one encoded frame in current mode

Implemented in AMRWB, and AMRNB.

◆ getFrameSizeSamples()

virtual int AMRCodec::getFrameSizeSamples ( )
pure virtual

Get the number of samples per frame.

Returns
NB: 160 samples/frame, WB: 320 samples/frame

Implemented in AMRWB, and AMRNB.

◆ getSampleRate()

virtual int AMRCodec::getSampleRate ( ) const
pure virtual

Get sample rate used by the codec.

Returns
Sample rate in Hz (8000 for NB, 16000 for WB)

Implemented in AMRWB, and AMRNB.


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