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

A simple WAV file encoder. If no AudioEncoderExt is specified the WAV file contains PCM data, otherwise it is encoded as ADPCM. The WAV header is written with the first writing of audio data. Calling begin() is making sure that the header is written again. More...

#include <CodecWAV.h>

Inheritance diagram for WAVEncoder:
AudioEncoder AudioWriter AudioInfoSupport

Public Member Functions

 WAVEncoder ()=default
 Construct a new WAVEncoder object for PCM data.
 
 WAVEncoder (AudioEncoderExt &enc, AudioFormat fmt)
 Construct a new WAVEncoder object for ADPCM data.
 
AudioInfo audioInfo () override
 provides the actual input AudioInfo
 
virtual AudioInfo audioInfoOut ()
 
virtual bool begin () override
 starts the processing using the actual WAVAudioInfo
 
virtual bool begin (AudioInfo info)
 
bool begin (WAVAudioInfo ai)
 starts the processing
 
WAVAudioInfo defaultConfig ()
 Provides the default configuration.
 
void end () override
 stops the processing
 
virtual uint32_t frameDurationUs ()
 Optional rtsp function: provide the frame duration in microseconds.
 
bool isOpen ()
 Check if encoder is open.
 
const charmime () override
 Provides "audio/wav".
 
 operator bool () override
 Check if encoder is active and ready to write.
 
virtual uint16_t samplesPerFrame ()
 Optional rtsp function: provide samples per the frame.
 
virtual void setAudioInfo (AudioInfo from) override
 Update actual WAVAudioInfo.
 
virtual void setAudioInfo (WAVAudioInfo ai)
 Defines the WAVAudioInfo.
 
void setDataOffset (uint16_t offset)
 Adds n empty bytes at the beginning of the data.
 
void setEncoder (AudioEncoderExt &enc, AudioFormat fmt)
 Associates an external encoder for non-PCM formats.
 
void setOutput (Print &out) override
 Defines the otuput stream.
 
virtual size_t write (const uint8_t *data, size_t len) override
 Writes PCM data to be encoded as WAV.
 

Protected Member Functions

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

Protected Attributes

EncodedAudioOutput enc_out
 
WAVHeader header
 
bool header_written = false
 
AudioInfo info
 
volatile bool is_open = false
 
AudioEncoderExtp_encoder = nullptr
 
Printp_print = nullptr
 
int64_t size_limit = 0
 
WAVAudioInfo wav_info = defaultConfig()
 

Detailed Description

A simple WAV file encoder. If no AudioEncoderExt is specified the WAV file contains PCM data, otherwise it is encoded as ADPCM. The WAV header is written with the first writing of audio data. Calling begin() is making sure that the header is written again.

Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ WAVEncoder() [1/2]

WAVEncoder ( )
default

Construct a new WAVEncoder object for PCM data.

◆ WAVEncoder() [2/2]

WAVEncoder ( AudioEncoderExt enc,
AudioFormat  fmt 
)
inline

Construct a new WAVEncoder object for ADPCM data.

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/3]

virtual bool begin ( )
inlineoverridevirtual

starts the processing using the actual WAVAudioInfo

Implements AudioWriter.

◆ begin() [2/3]

virtual bool begin ( AudioInfo  info)
inlinevirtualinherited

◆ begin() [3/3]

bool begin ( WAVAudioInfo  ai)
inline

starts the processing

◆ defaultConfig()

WAVAudioInfo defaultConfig ( )
inline

Provides the default configuration.

◆ end()

void end ( )
inlineoverridevirtual

stops the processing

Implements AudioWriter.

◆ frameDurationUs()

virtual uint32_t frameDurationUs ( )
inlinevirtualinherited

Optional rtsp function: provide the frame duration in microseconds.

Reimplemented in ADPCMEncoder, OpusOggEncoder, MP3ParserEncoder, and MetaDataFilterEncoder.

◆ isOpen()

bool isOpen ( )
inline

Check if encoder is open.

◆ mime()

const char * mime ( )
inlineoverridevirtual

Provides "audio/wav".

Implements AudioEncoder.

◆ operator bool()

operator bool ( )
inlineoverridevirtual

Check if encoder is active and ready to write.

Implements AudioWriter.

◆ samplesPerFrame()

virtual uint16_t samplesPerFrame ( )
inlinevirtualinherited

Optional rtsp function: provide samples per the frame.

Reimplemented in MP3ParserEncoder, and MetaDataFilterEncoder.

◆ setAudioInfo() [1/2]

virtual void setAudioInfo ( AudioInfo  from)
inlineoverridevirtual

Update actual WAVAudioInfo.

Reimplemented from AudioEncoder.

◆ setAudioInfo() [2/2]

virtual void setAudioInfo ( WAVAudioInfo  ai)
inlinevirtual

Defines the WAVAudioInfo.

◆ setDataOffset()

void setDataOffset ( uint16_t  offset)
inline

Adds n empty bytes at the beginning of the data.

◆ setEncoder()

void setEncoder ( AudioEncoderExt enc,
AudioFormat  fmt 
)
inline

Associates an external encoder for non-PCM formats.

◆ setOutput()

void setOutput ( Print out)
inlineoverridevirtual

Defines the otuput stream.

Reimplemented from AudioEncoder.

◆ setupEncodedAudio()

void setupEncodedAudio ( )
inlineprotected

◆ write()

virtual size_t write ( const uint8_t data,
size_t  len 
)
inlineoverridevirtual

Writes PCM data to be encoded as WAV.

Implements AudioWriter.

◆ writeBlocking()

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

Member Data Documentation

◆ enc_out

EncodedAudioOutput enc_out
protected

◆ header

WAVHeader header
protected

◆ header_written

bool header_written = false
protected

◆ info

AudioInfo info
protectedinherited

◆ is_open

volatile bool is_open = false
protected

◆ p_encoder

AudioEncoderExt* p_encoder = nullptr
protected

◆ p_print

Print* p_print = nullptr
protected

◆ size_limit

int64_t size_limit = 0
protected

◆ wav_info

WAVAudioInfo wav_info = defaultConfig()
protected

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