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

AAC Encoder based on the VisualOn vo-aacenc implementation (https://github.com/pschatzmann/codec-vo-aacenc). More...

#include <CodecAACVO.h>

Inheritance diagram for AACEncoderVO:
AudioEncoder AudioWriter AudioInfoSupport

Public Member Functions

 AACEncoderVO ()=default
 
 AACEncoderVO (Print &out_stream)
 
 ~AACEncoderVO () override
 
AudioInfo audioInfo () override
 provides the actual input AudioInfo
 
virtual AudioInfo audioInfoOut ()
 
bool begin () override
 
bool begin (AudioInfo info) override
 
VOAACEncoderdriver ()
 
void end () override
 
virtual uint32_t frameDurationUs ()
 Optional rtsp function: provide the frame duration in microseconds.
 
const charmime () override
 Provides the mime type of the encoded result.
 
 operator bool () override
 
virtual uint16_t samplesPerFrame ()
 Optional rtsp function: provide samples per the frame.
 
void setAdts (bool enabled)
 Defines if ADTS headers are generated.
 
void setAudioInfo (AudioInfo from) override
 Defines the sample rate, number of channels and bits per sample.
 
void setBitrate (uint32_t bps)
 Defines target bitrate in bps.
 
void setOutput (Print &out_stream) override
 Defines the output stream.
 
void setOutputBufferSize (size_t len)
 Defines max encoded output frame size.
 
size_t write (const uint8_t *data, size_t len) override
 

Protected Member Functions

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

Protected Attributes

bool active = false
 
uint32_t bitrate = 128000
 
VOAACEncoder enc
 
size_t frame_bytes = 0
 
AudioInfo info
 
Vector< uint8_tout_buffer {0}
 
size_t output_buffer_size = 2048
 
Printp_print = nullptr
 
Vector< uint8_tpcm_buffer {0}
 
size_t pcm_pos = 0
 
bool use_adts = true
 

Detailed Description

AAC Encoder based on the VisualOn vo-aacenc implementation (https://github.com/pschatzmann/codec-vo-aacenc).

The encoder consumes PCM in blocks of 1024 samples per channel, so this class buffers arbitrary write sizes and encodes full frames automatically.

Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ AACEncoderVO() [1/2]

AACEncoderVO ( )
default

◆ AACEncoderVO() [2/2]

AACEncoderVO ( Print out_stream)
inline

◆ ~AACEncoderVO()

~AACEncoderVO ( )
inlineoverride

Member Function Documentation

◆ audioInfo()

AudioInfo audioInfo ( )
inlineoverridevirtualinherited

provides the actual input AudioInfo

Implements AudioInfoSupport.

Reimplemented in CodecNOP, MP3EncoderShine, BinaryContainerEncoder, and MP3ParserEncoder.

◆ audioInfoOut()

virtual AudioInfo audioInfoOut ( )
inlinevirtualinherited

◆ begin() [1/2]

bool begin ( )
inlineoverridevirtual

Implements AudioWriter.

◆ begin() [2/2]

bool begin ( AudioInfo  info)
inlineoverridevirtual

Reimplemented from AudioWriter.

◆ driver()

VOAACEncoder * driver ( )
inline

◆ encodeFrame()

bool encodeFrame ( )
inlineprotected

◆ end()

void end ( )
inlineoverridevirtual

Implements AudioWriter.

◆ frameDurationUs()

virtual uint32_t frameDurationUs ( )
inlinevirtualinherited

Optional rtsp function: provide the frame duration in microseconds.

Reimplemented in ADPCMEncoder, MP3EncoderShine, OpusOggEncoder, MP3ParserEncoder, and MetaDataFilterEncoder.

◆ mime()

const char * mime ( )
inlineoverridevirtual

Provides the mime type of the encoded result.

Implements AudioEncoder.

◆ operator bool()

operator bool ( )
inlineoverridevirtual

Implements AudioWriter.

◆ samplesPerFrame()

virtual uint16_t samplesPerFrame ( )
inlinevirtualinherited

Optional rtsp function: provide samples per the frame.

Reimplemented in OpusAudioEncoder, OpusMultiStreamAudioEncoder, MP3EncoderShine, MP3ParserEncoder, and MetaDataFilterEncoder.

◆ setAdts()

void setAdts ( bool  enabled)
inline

Defines if ADTS headers are generated.

◆ setAudioInfo()

void setAudioInfo ( AudioInfo  from)
inlineoverridevirtualinherited

◆ setBitrate()

void setBitrate ( uint32_t  bps)
inline

Defines target bitrate in bps.

◆ setOutput()

void setOutput ( Print out_stream)
inlineoverridevirtual

Defines the output stream.

Reimplemented from AudioEncoder.

◆ setOutputBufferSize()

void setOutputBufferSize ( size_t  len)
inline

Defines max encoded output frame size.

◆ write()

size_t write ( const uint8_t data,
size_t  len 
)
inlineoverridevirtual

Implements AudioWriter.

◆ writeBlocking()

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

Member Data Documentation

◆ active

bool active = false
protected

◆ bitrate

uint32_t bitrate = 128000
protected

◆ enc

VOAACEncoder enc
protected

◆ frame_bytes

size_t frame_bytes = 0
protected

◆ info

AudioInfo info
protectedinherited

◆ out_buffer

Vector<uint8_t> out_buffer {0}
protected

◆ output_buffer_size

size_t output_buffer_size = 2048
protected

◆ p_print

Print* p_print = nullptr
protected

◆ pcm_buffer

Vector<uint8_t> pcm_buffer {0}
protected

◆ pcm_pos

size_t pcm_pos = 0
protected

◆ use_adts

bool use_adts = true
protected

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