Arduino FDK AAC Encoder and Decoder Library
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
aac_fdk::AACDecoderFDK Class Reference

Audio Decoder which decodes AAC into a PCM stream. More...

#include <AACDecoderFDK.h>

Public Member Functions

 AACDecoderFDK (int output_buffer_size=2048)
 Construct a new AACDecoderFDK object. More...
 
 AACDecoderFDK (AACDataCallbackFDK dataCallback, AACInfoCallbackFDK infoCallback=nullptr, int output_buffer_size=2048)
 Construct a new AACDecoderFDK object. More...
 
 AACDecoderFDK (Print &out_stream, int output_buffer_size=2048)
 
void setOutput (Print &out_stream)
 Defines the output stream.
 
void setInfoCallback (AACInfoCallbackFDK cb)
 
void setDataCallback (AACDataCallbackFDK cb)
 
int setRawConfig (void *cfg, UINT &len)
 Explicitly configure the decoder by passing a raw AudioSpecificConfig (ASC) or a StreamMuxConfig (SMC), contained in a binary buffer. This is required for MPEG-4 and Raw Packets file format bitstreams as well as for LATM bitstreams with no in-band SMC. If the transport format is LATM with or without LOAS, configuration is assumed to be an SMC, for all other file formats an ASC. More...
 
void setDecoderFlags (int flags)
 Set the Decoder Flags object Bit field with flags for the decoder:
(flags & AACDEC_CONCEAL) == 1: Do concealment.
(flags & AACDEC_FLUSH) == 2: Discard input data. Flush filter banks (output delayed audio).
(flags & AACDEC_INTR) == 4: Input data is discontinuous. Resynchronize any internals as necessary.
(flags & AACDEC_CLRHIST) == 8: Clear all signal delay lines and history buffers. More...
 
void begin (TRANSPORT_TYPE transportType=TT_MP4_ADTS, UINT nrOfLayers=1)
 
AAC_DECODER_ERROR configure (uint8_t *conf, const uint32_t &length)
 Explicitly configure the decoder by passing a raw AudioSpecificConfig (ASC) or a StreamMuxConfig (SMC), contained in a binary buffer. This is required for MPEG-4 and Raw Packets file format bitstreams as well as for LATM bitstreams with no in-band SMC. If the transport format is LATM with or without LOAS, configuration is assumed to be an SMC, for all other file formats an ASC.
 
virtual size_t write (const void *in_ptr, size_t in_size)
 
CStreamInfo audioInfo ()
 
void end ()
 
virtual operator boolean ()
 

Protected Member Functions

virtual size_t decode (const void *in_ptr, size_t in_size)
 decodes the data
 
void provideResult (INT_PCM *data, size_t len)
 return the result PWM data
 

Protected Attributes

bool is_cleanup_stream = false
 
HANDLE_AACDECODER aacDecoderInfo
 
int output_buffer_size = 0
 
INT_PCM * output_buffer = nullptr
 
bool is_open = false
 
CStreamInfo aacFrameInfo
 
AACDataCallbackFDK pwmCallback = nullptr
 
AACInfoCallbackFDK infoCallback = nullptr
 
int decoder_flags = 0
 
Print * out = nullptr
 

Detailed Description

Audio Decoder which decodes AAC into a PCM stream.

Constructor & Destructor Documentation

◆ AACDecoderFDK() [1/2]

aac_fdk::AACDecoderFDK::AACDecoderFDK ( int  output_buffer_size = 2048)
inline

Construct a new AACDecoderFDK object.

Parameters
output_buffer_size

◆ AACDecoderFDK() [2/2]

aac_fdk::AACDecoderFDK::AACDecoderFDK ( AACDataCallbackFDK  dataCallback,
AACInfoCallbackFDK  infoCallback = nullptr,
int  output_buffer_size = 2048 
)
inline

Construct a new AACDecoderFDK object.

Parameters
dataCallback
infoCallback(default nullptr)
output_buffer_size(default 2048)

Member Function Documentation

◆ setDecoderFlags()

void aac_fdk::AACDecoderFDK::setDecoderFlags ( int  flags)
inline

Set the Decoder Flags object Bit field with flags for the decoder:
(flags & AACDEC_CONCEAL) == 1: Do concealment.
(flags & AACDEC_FLUSH) == 2: Discard input data. Flush filter banks (output delayed audio).
(flags & AACDEC_INTR) == 4: Input data is discontinuous. Resynchronize any internals as necessary.
(flags & AACDEC_CLRHIST) == 8: Clear all signal delay lines and history buffers.

Parameters
flags

◆ setRawConfig()

int aac_fdk::AACDecoderFDK::setRawConfig ( void *  cfg,
UINT &  len 
)
inline

Explicitly configure the decoder by passing a raw AudioSpecificConfig (ASC) or a StreamMuxConfig (SMC), contained in a binary buffer. This is required for MPEG-4 and Raw Packets file format bitstreams as well as for LATM bitstreams with no in-band SMC. If the transport format is LATM with or without LOAS, configuration is assumed to be an SMC, for all other file formats an ASC.

Parameters
cfgPointer to an unsigned char buffer containing the binary configuration buffer (either ASC or SMC).
lenLength of the configuration buffer in bytes.
Returns
Error code.

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