arduino-audio-tools
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ADPCMEncoder Class Reference

Encoder for ADPCM - Depends on https://github.com/pschatzmann/adpcm> More...

#include <CodecADPCM.h>

Inheritance diagram for ADPCMEncoder:
AudioEncoderExt AudioEncoder AudioWriter AudioInfoSupport

Public Member Functions

 ADPCMEncoder ()=default
 
 ADPCMEncoder (AVCodecID id, int blockSize=ADAPCM_DEFAULT_BLOCK_SIZE)
 
 ~ADPCMEncoder ()
 Destructor.
 
AudioInfo audioInfo () override
 provides the actual input AudioInfo
 
virtual AudioInfo audioInfoOut ()
 
bool begin () override
 
virtual bool begin (AudioInfo info)
 
int blockSize () override
 
void end () override
 
virtual uint32_t frameDurationUs () override
 provides the frame duration in us (for rtsp)
 
int frameSize ()
 
const charmime () override
 Provides the mime type of the encoded result.
 
 operator bool () override
 
virtual uint16_t samplesPerFrame ()
 Optional rtsp function: provide samples per the frame.
 
void setAudioInfo (AudioInfo from) override
 Defines the sample rate, number of channels and bits per sample.
 
void setBlockSize (int blockSize)
 (re) defines the block size
 
void setId (AVCodecID id)
 (re) defines the codec id
 
void setOutput (Print &out_stream) override
 Default output assignment (encoders may override to store Print reference)
 
size_t write (const uint8_t *data, size_t len) override
 

Protected Member Functions

virtual bool encode (int16_t sample)
 
bool setImplementation ()
 change the encoder implementation
 
void writeBlocking (Print *out, uint8_t *data, size_t len)
 

Protected Attributes

int block_size = ADAPCM_DEFAULT_BLOCK_SIZE
 
AVCodecID codec_id = AV_CODEC_ID_ADPCM_MS
 
int current_id = -1
 
int current_sample = 0
 
AudioInfo info
 
bool is_started = false
 
adpcm_ffmpeg::ADPCMEncoder * p_encoder = nullptr
 
Printp_print = nullptr
 
Vector< int16_tpcm_block
 
int total_samples = 0
 

Detailed Description

Encoder for ADPCM - Depends on https://github.com/pschatzmann/adpcm

>

Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ ADPCMEncoder() [1/2]

ADPCMEncoder ( )
default

◆ ADPCMEncoder() [2/2]

ADPCMEncoder ( AVCodecID  id,
int  blockSize = ADAPCM_DEFAULT_BLOCK_SIZE 
)
inline

◆ ~ADPCMEncoder()

~ADPCMEncoder ( )
inline

Destructor.

Member Function Documentation

◆ audioInfo()

AudioInfo audioInfo ( )
inlineoverridevirtualinherited

provides the actual input AudioInfo

Implements AudioInfoSupport.

Reimplemented in CodecNOP, BinaryContainerEncoder, and MP3ParserEncoder.

◆ audioInfoOut()

virtual AudioInfo audioInfoOut ( )
inlinevirtualinherited

◆ begin() [1/2]

bool begin ( )
inlineoverridevirtual

Implements AudioWriter.

◆ begin() [2/2]

virtual bool begin ( AudioInfo  info)
inlinevirtualinherited

◆ blockSize()

int blockSize ( )
inlineoverridevirtual

Provides the block size (size of encoded frame) (only available after calling begin)

Implements AudioEncoderExt.

◆ encode()

virtual bool encode ( int16_t  sample)
inlineprotectedvirtual

◆ end()

void end ( )
inlineoverridevirtual

Implements AudioWriter.

◆ frameDurationUs()

virtual uint32_t frameDurationUs ( )
inlineoverridevirtual

provides the frame duration in us (for rtsp)

Reimplemented from AudioEncoder.

◆ frameSize()

int frameSize ( )
inline

Provides the frame size (size of decoded frame) (only available after calling begin)

◆ mime()

const char * mime ( )
inlineoverridevirtual

Provides the mime type of the encoded result.

Implements AudioEncoder.

◆ operator bool()

operator bool ( )
inlineoverridevirtual

Implements AudioWriter.

◆ samplesPerFrame()

virtual uint16_t samplesPerFrame ( )
inlinevirtualinherited

Optional rtsp function: provide samples per the frame.

Reimplemented in MP3ParserEncoder, and MetaDataFilterEncoder.

◆ setAudioInfo()

void setAudioInfo ( AudioInfo  from)
inlineoverridevirtualinherited

Defines the sample rate, number of channels and bits per sample.

Implements AudioWriter.

Reimplemented in MP3EncoderLAME, EncoderBasic, CodecChain, FLACEncoder, OpusAudioEncoder, WAVEncoder, CodecNOP, G7xxEncoder, BinaryContainerEncoder, OggContainerEncoder, OSCContainerEncoder, and MetaDataFilterEncoder.

◆ setBlockSize()

void setBlockSize ( int  blockSize)
inline

(re) defines the block size

◆ setId()

void setId ( AVCodecID  id)
inline

(re) defines the codec id

◆ setImplementation()

bool setImplementation ( )
inlineprotected

change the encoder implementation

◆ setOutput()

void setOutput ( Print out_stream)
inlineoverridevirtual

Default output assignment (encoders may override to store Print reference)

Reimplemented from AudioEncoder.

◆ write()

size_t write ( const uint8_t data,
size_t  len 
)
inlineoverridevirtual

Implements AudioWriter.

◆ writeBlocking()

void writeBlocking ( Print out,
uint8_t data,
size_t  len 
)
inlineprotectedinherited

Member Data Documentation

◆ block_size

int block_size = ADAPCM_DEFAULT_BLOCK_SIZE
protected

◆ codec_id

AVCodecID codec_id = AV_CODEC_ID_ADPCM_MS
protected

◆ current_id

int current_id = -1
protected

◆ current_sample

int current_sample = 0
protected

◆ info

AudioInfo info
protectedinherited

◆ is_started

bool is_started = false
protected

◆ p_encoder

adpcm_ffmpeg::ADPCMEncoder* p_encoder = nullptr
protected

◆ p_print

Print* p_print = nullptr
protected

◆ pcm_block

Vector<int16_t> pcm_block
protected

◆ total_samples

int total_samples = 0
protected

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