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

Obsolete: WavIMADecoder - based on WAVDecoder - We parse the header data as we receive it and send the sound data to the stream which was indicated in the constructor. Only WAV files with WAVE_FORMAT_IMA_ADPCM are supported by this codec! More...

#include <CodecWavIMA.h>

Inheritance diagram for WavIMADecoder:
AudioDecoder AudioWriter AudioInfoSource AudioInfoSupport

Public Member Functions

 WavIMADecoder ()
 Construct a new WavIMADecoder object.
 
 WavIMADecoder (Print &out_stream, AudioInfoSupport &bi)
 Construct a new WavIMADecoder object.
 
 WavIMADecoder (Print &out_stream, bool active=true)
 Construct a new WavIMADecoder object.
 
 ~WavIMADecoder ()
 
virtual void addNotifyAudioChange (AudioInfoSupport &bi)
 Adds target to be notified about audio changes.
 
AudioInfo audioInfo () override
 provides the actual input AudioInfo
 
WavIMAAudioInfo & audioInfoEx ()
 
virtual AudioInfo audioInfoOut ()
 
bool begin ()
 
virtual bool begin (AudioInfo info) override
 
virtual void clearNotifyAudioChange ()
 Deletes all change notify subscriptions.
 
void end ()
 
Print * getOutput ()
 
bool isNotifyActive ()
 Checks if the automatic AudioInfo update is active.
 
virtual bool isResultPCM ()
 Returns true to indicate that the decoding result is PCM data.
 
const char * mime ()
 Provides the mime type of the data that is expected by this decoder.
 
virtual operator bool ()
 
int readStream (Stream &in)
 Alternative API which provides the data from an input stream.
 
virtual bool removeNotifyAudioChange (AudioInfoSupport &bi)
 Removes a target in order not to be notified about audio changes.
 
void setAudioInfo (AudioInfo from) override
 for most decoders this is not needed
 
virtual bool setCodecConfig (const uint8_t *data, size_t len)
 Some decoders need e.g. a magic cookie to provide the relevant info for decoding.
 
void setNotifyActive (bool flag)
 Deactivate/Reactivate automatic AudioInfo updates: (default is active)
 
virtual void setOutput (AudioOutput &out_stream)
 Defines where the decoded result is written to.
 
virtual void setOutput (AudioStream &out_stream)
 Defines where the decoded result is written to.
 
void setOutput (Print &out_stream)
 Defines the output Stream.
 
virtual size_t write (const uint8_t *data, size_t len)
 

Public Attributes

int id
 custom id to be used by application
 

Protected Member Functions

void decodeBlock (int channels)
 
int16_t decodeSample (uint8_t sample, int channel=0)
 
void notifyAudioChange (AudioInfo info)
 
void processInput (const uint8_t *data, size_t size)
 
void writeBlocking (Print *out, uint8_t *data, size_t len)
 

Protected Attributes

bool active
 
size_t bytes_per_decoded_block = 0
 
size_t bytes_per_encoded_block = 0
 
WavIMAHeader header
 
IMAState ima_states [2]
 
AudioInfo info
 
uint8_t * input_buffer = nullptr
 
int32_t input_pos = 0
 
bool is_notify_active = true
 
bool isFirst = true
 
bool isValid = true
 
Vector< AudioInfoSupport * > notify_vector
 
Print * out
 
int16_t * output_buffer = nullptr
 
Print * p_print = nullptr
 
size_t remaining_bytes = 0
 
size_t samples_per_decoded_block = 0
 

Detailed Description

Obsolete: WavIMADecoder - based on WAVDecoder - We parse the header data as we receive it and send the sound data to the stream which was indicated in the constructor. Only WAV files with WAVE_FORMAT_IMA_ADPCM are supported by this codec!

We recommend using the WAVDecoder with a corresponding ADPCMDecoder instead.

Author
Phil Schatzmann
Norman Ritz

Constructor & Destructor Documentation

◆ WavIMADecoder() [1/3]

WavIMADecoder ( )
inline

Construct a new WavIMADecoder object.

◆ WavIMADecoder() [2/3]

WavIMADecoder ( Print &  out_stream,
bool  active = true 
)
inline

Construct a new WavIMADecoder object.

Parameters
out_streamOutput Stream to which we write the decoded result

◆ WavIMADecoder() [3/3]

WavIMADecoder ( Print &  out_stream,
AudioInfoSupport &  bi 
)
inline

Construct a new WavIMADecoder object.

Parameters
out_streamOutput Stream to which we write the decoded result
biObject that will be notified about the Audio Formt (Changes)

◆ ~WavIMADecoder()

~WavIMADecoder ( )
inline

Member Function Documentation

◆ addNotifyAudioChange()

virtual void addNotifyAudioChange ( AudioInfoSupport &  bi)
inlinevirtualinherited

◆ audioInfo()

AudioInfo audioInfo ( )
inlineoverridevirtual

provides the actual input AudioInfo

Reimplemented from AudioDecoder.

◆ audioInfoEx()

WavIMAAudioInfo & audioInfoEx ( )
inline

◆ audioInfoOut()

virtual AudioInfo audioInfoOut ( )
inlinevirtualinherited

◆ begin() [1/2]

bool begin ( )
inlinevirtual

Reimplemented from AudioDecoder.

◆ begin() [2/2]

virtual bool begin ( AudioInfo  info)
inlineoverridevirtualinherited

Reimplemented from AudioWriter.

Reimplemented in DecoderBasic, and OggContainerDecoder.

◆ clearNotifyAudioChange()

virtual void clearNotifyAudioChange ( )
inlinevirtualinherited

Deletes all change notify subscriptions.

Reimplemented in RTSPClient< TcpClient, UdpSocket >.

◆ decodeBlock()

void decodeBlock ( int  channels)
inlineprotected

◆ decodeSample()

int16_t decodeSample ( uint8_t  sample,
int  channel = 0 
)
inlineprotected

◆ end()

void end ( )
inlinevirtual

Reimplemented from AudioDecoder.

◆ getOutput()

Print * getOutput ( )
inlineinherited

◆ isNotifyActive()

bool isNotifyActive ( )
inlineinherited

Checks if the automatic AudioInfo update is active.

◆ isResultPCM()

virtual bool isResultPCM ( )
inlinevirtualinherited

Returns true to indicate that the decoding result is PCM data.

Reimplemented in CopyDecoder, DecoderNetworkFormat, and ContainerM4A.

◆ mime()

const char * mime ( )
inlinevirtual

Provides the mime type of the data that is expected by this decoder.

Implements AudioDecoder.

◆ notifyAudioChange()

void notifyAudioChange ( AudioInfo  info)
inlineprotectedinherited

◆ operator bool()

virtual operator bool ( )
inlinevirtual

Implements AudioWriter.

◆ processInput()

void processInput ( const uint8_t *  data,
size_t  size 
)
inlineprotected

◆ readStream()

int readStream ( Stream &  in)
inline

Alternative API which provides the data from an input stream.

◆ removeNotifyAudioChange()

virtual bool removeNotifyAudioChange ( AudioInfoSupport &  bi)
inlinevirtualinherited

Removes a target in order not to be notified about audio changes.

Reimplemented in RTSPClient< TcpClient, UdpSocket >.

◆ setAudioInfo()

void setAudioInfo ( AudioInfo  from)
inlineoverridevirtualinherited

for most decoders this is not needed

Implements AudioWriter.

Reimplemented in DecoderALAC, CodecChain, DSFDecoder, DecoderL8, OpusAudioDecoder, OpusMultiStreamAudioDecoder, CodecNOP, G729Decoder, and G7xxDecoder.

◆ setCodecConfig()

virtual bool setCodecConfig ( const uint8_t *  data,
size_t  len 
)
inlinevirtualinherited

Some decoders need e.g. a magic cookie to provide the relevant info for decoding.

Reimplemented in DecoderALAC, and MultiDecoder.

◆ setNotifyActive()

void setNotifyActive ( bool  flag)
inlineinherited

Deactivate/Reactivate automatic AudioInfo updates: (default is active)

◆ setOutput() [1/3]

virtual void setOutput ( AudioOutput &  out_stream)
inlinevirtualinherited

Defines where the decoded result is written to.

Reimplemented in ADTSDecoder, CodecChain, MTSDecoder, MTSDecoderTSDemux, and MetaDataFilterDecoder.

◆ setOutput() [2/3]

virtual void setOutput ( AudioStream &  out_stream)
inlinevirtualinherited

Defines where the decoded result is written to.

Reimplemented in ADTSDecoder, CodecChain, MTSDecoder, MTSDecoderTSDemux, and MetaDataFilterDecoder.

◆ setOutput() [3/3]

void setOutput ( Print &  out_stream)
inlinevirtual

Defines the output Stream.

Reimplemented from AudioDecoder.

◆ write()

virtual size_t write ( const uint8_t *  data,
size_t  len 
)
inlinevirtual

Implements AudioWriter.

◆ writeBlocking()

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

Member Data Documentation

◆ active

bool active
protected

◆ bytes_per_decoded_block

size_t bytes_per_decoded_block = 0
protected

◆ bytes_per_encoded_block

size_t bytes_per_encoded_block = 0
protected

◆ header

WavIMAHeader header
protected

◆ id

int id
inherited

custom id to be used by application

◆ ima_states

IMAState ima_states[2]
protected

◆ info

AudioInfo info
protectedinherited

◆ input_buffer

uint8_t* input_buffer = nullptr
protected

◆ input_pos

int32_t input_pos = 0
protected

◆ is_notify_active

bool is_notify_active = true
protectedinherited

◆ isFirst

bool isFirst = true
protected

◆ isValid

bool isValid = true
protected

◆ notify_vector

Vector<AudioInfoSupport*> notify_vector
protectedinherited

◆ out

Print* out
protected

◆ output_buffer

int16_t* output_buffer = nullptr
protected

◆ p_print

Print* p_print = nullptr
protectedinherited

◆ remaining_bytes

size_t remaining_bytes = 0
protected

◆ samples_per_decoded_block

size_t samples_per_decoded_block = 0
protected

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