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 char * mime () 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_t > in_buffer
 
AudioInfo info
 
AudioFormatDescription input_format
 
bool is_started = false
 
Vector< uint8_t > out_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 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

Reimplemented in AACEncoderFDK.

◆ 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.

◆ 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

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.

◆ 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.


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