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

ALAC (Apple Lossless Audio Codec) encoder. This class is responsible for encoding audio data into ALAC format. The implementaion is based on https://github.com/macosforge/alac. More...

#include <CodecALAC.h>

Inheritance diagram for EncoderALAC:
AudioEncoder AudioWriter AudioInfoSupport

Public Member Functions

 EncoderALAC (int frameSize=kALACDefaultFrameSize)
 Default constructor: you can define your own optimized frame size.
 
AudioInfo audioInfo () override
 provides the actual input AudioInfo
 
virtual AudioInfo audioInfoOut ()
 
bool begin () override
 
virtual bool begin (AudioInfo info)
 
ALACBinaryConfigbinaryConfig ()
 Provide the magic coookie for the decoder.
 
ALACSpecificConfig config ()
 Provide the configuration of the encoder.
 
void end () override
 
virtual uint32_t frameDurationUs ()
 Optional rtsp function: provide the frame duration in microseconds.
 
int frameSize ()
 Determins the actually defined number of frames.
 
const charmime () override
 Mime type: returns audio/alac.
 
 operator bool ()
 Check if the encoder is ready to encode.
 
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 setFastMode (bool fast)
 Defines if the encoder should use fast mode.
 
void setFrameSize (int frames)
 Defines the frame size for the decoder: default is 4096 frames.
 
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
 Encode the audio samples into ALAC format.
 

Protected Types

enum  { kFormatFlag_16BitSourceData = 1 , kFormatFlag_20BitSourceData = 2 , kFormatFlag_24BitSourceData = 3 , kFormatFlag_32BitSourceData = 4 }
 

Protected Member Functions

AudioFormatDescription getInputFormat ()
 
AudioFormatDescription getOutputFormat ()
 
uint32_t getOutputFormatFlags (uint32_t bits)
 
void writeBlocking (Print *out, uint8_t *data, size_t len)
 

Protected Attributes

ALACBinaryConfig bin
 
ALACSpecificConfig cfg
 
ALACEncoder enc
 
int frame_size = kALACDefaultFrameSize
 
SingleBuffer< uint8_tin_buffer
 
AudioInfo info
 
AudioFormatDescription input_format
 
bool is_started = false
 
Vector< uint8_tout_buffer
 
AudioFormatDescription out_format
 
Printp_print = nullptr
 

Detailed Description

ALAC (Apple Lossless Audio Codec) encoder. This class is responsible for encoding audio data into ALAC format. The implementaion is based on https://github.com/macosforge/alac.

Author
Phil Schatzmann

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
kFormatFlag_16BitSourceData 
kFormatFlag_20BitSourceData 
kFormatFlag_24BitSourceData 
kFormatFlag_32BitSourceData 

Constructor & Destructor Documentation

◆ EncoderALAC()

EncoderALAC ( int  frameSize = kALACDefaultFrameSize)
inline

Default constructor: you can define your own optimized frame size.

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

◆ binaryConfig()

ALACBinaryConfig & binaryConfig ( )
inline

Provide the magic coookie for the decoder.

◆ config()

ALACSpecificConfig config ( )
inline

Provide the configuration of the encoder.

◆ end()

void end ( )
inlineoverridevirtual

Implements AudioWriter.

◆ frameDurationUs()

virtual uint32_t frameDurationUs ( )
inlinevirtualinherited

Optional rtsp function: provide the frame duration in microseconds.

Reimplemented in ADPCMEncoder, OpusOggEncoder, MP3ParserEncoder, and MetaDataFilterEncoder.

◆ frameSize()

int frameSize ( )
inline

Determins the actually defined number of frames.

◆ getInputFormat()

AudioFormatDescription getInputFormat ( )
inlineprotected

◆ getOutputFormat()

AudioFormatDescription getOutputFormat ( )
inlineprotected

◆ getOutputFormatFlags()

uint32_t getOutputFormatFlags ( uint32_t  bits)
inlineprotected

◆ mime()

const char * mime ( )
inlineoverridevirtual

Mime type: returns audio/alac.

Implements AudioEncoder.

◆ operator bool()

operator bool ( )
inlinevirtual

Check if the encoder is ready to encode.

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

◆ setFastMode()

void setFastMode ( bool  fast)
inline

Defines if the encoder should use fast mode.

◆ setFrameSize()

void setFrameSize ( int  frames)
inline

Defines the frame size for the decoder: default is 4096 frames.

◆ 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

Encode the audio samples into ALAC format.

Implements AudioWriter.

◆ writeBlocking()

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

Member Data Documentation

◆ bin

ALACBinaryConfig bin
protected

◆ cfg

ALACSpecificConfig cfg
protected

◆ enc

ALACEncoder enc
protected

◆ frame_size

int frame_size = kALACDefaultFrameSize
protected

◆ in_buffer

SingleBuffer<uint8_t> in_buffer
protected

◆ info

AudioInfo info
protectedinherited

◆ input_format

AudioFormatDescription input_format
protected

◆ is_started

bool is_started = false
protected

◆ out_buffer

Vector<uint8_t> out_buffer
protected

◆ out_format

AudioFormatDescription out_format
protected

◆ p_print

Print* p_print = nullptr
protected

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