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

DSF (DSD Stream File) format encoder. More...

#include <CodecDSF.h>

Inheritance diagram for DSFEncoder:
AudioEncoder AudioWriter AudioInfoSupport

Classes

struct  ChannelModState
 

Public Member Functions

 DSFEncoder ()=default
 
 DSFEncoder (DSFMetadata metaData)
 
AudioInfo audioInfo () override
 provides the actual input AudioInfo
 
virtual AudioInfo audioInfoOut ()
 
bool begin () override
 
virtual bool begin (AudioInfo info)
 
void end () override
 
virtual uint32_t frameDurationUs ()
 Optional rtsp function: provide the frame duration in microseconds.
 
const DSFMetadata getMetadata ()
 
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 setAudioInfo (AudioInfo from) override
 Defines the sample rate, number of channels and bits per sample.
 
void setMetaData (DSFMetadata metaData)
 
void setOutput (Print &out) override
 Default output assignment (encoders may override to store Print reference)
 
size_t write (const uint8_t *data, size_t len) override
 

Protected Member Functions

bool allBlocksFull ()
 
void convertSampleToDSD (int ch, float currentSample)
 
void flushPartialBlocks ()
 
float readPCMSample (const uint8_t *ptr)
 
void writeBlocking (Print *out, uint8_t *data, size_t len)
 
void writeBlockSet ()
 
void writeDSFHeader ()
 

Protected Attributes

Vector< SingleBuffer< uint8_t > > channelBlocks
 
Vector< ChannelModStatechState
 
bool headerWritten = false
 
AudioInfo info
 
bool isOpen = false
 
DSFMetadata meta
 
uint32_t oversamplingRatio = 64
 
Printp_print = nullptr
 
uint64_t totalDsdBytes = 0
 

Detailed Description

DSF (DSD Stream File) format encoder.

Author
pschatzmann

Encodes PCM audio into DSD format and writes DSF files. Uses a 2nd order error-feedback delta-sigma modulator with linear interpolation between PCM samples. Output uses correct DSF block-level channel interleaving.

Constructor & Destructor Documentation

◆ DSFEncoder() [1/2]

DSFEncoder ( )
default

◆ DSFEncoder() [2/2]

DSFEncoder ( DSFMetadata  metaData)
inline

Member Function Documentation

◆ allBlocksFull()

bool allBlocksFull ( )
inlineprotected

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

virtual bool begin ( AudioInfo  info)
inlinevirtualinherited

◆ convertSampleToDSD()

void convertSampleToDSD ( int  ch,
float  currentSample 
)
inlineprotected

◆ end()

void end ( )
inlineoverridevirtual

Implements AudioWriter.

◆ flushPartialBlocks()

void flushPartialBlocks ( )
inlineprotected

◆ frameDurationUs()

virtual uint32_t frameDurationUs ( )
inlinevirtualinherited

Optional rtsp function: provide the frame duration in microseconds.

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

◆ getMetadata()

const DSFMetadata getMetadata ( )
inline

◆ mime()

const char * mime ( )
inlineoverridevirtual

Provides the mime type of the encoded result.

Implements AudioEncoder.

◆ operator bool()

operator bool ( )
inlineoverridevirtual

Implements AudioWriter.

◆ readPCMSample()

float readPCMSample ( const uint8_t ptr)
inlineprotected

◆ samplesPerFrame()

virtual uint16_t samplesPerFrame ( )
inlinevirtualinherited

Optional rtsp function: provide samples per the frame.

Reimplemented in MP3EncoderShine, MP3ParserEncoder, and MetaDataFilterEncoder.

◆ setAudioInfo()

void setAudioInfo ( AudioInfo  from)
inlineoverridevirtual

Defines the sample rate, number of channels and bits per sample.

Reimplemented from AudioEncoder.

◆ setMetaData()

void setMetaData ( DSFMetadata  metaData)
inline

◆ 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

Implements AudioWriter.

◆ writeBlocking()

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

◆ writeBlockSet()

void writeBlockSet ( )
inlineprotected

◆ writeDSFHeader()

void writeDSFHeader ( )
inlineprotected

Member Data Documentation

◆ channelBlocks

Vector<SingleBuffer<uint8_t> > channelBlocks
protected

◆ chState

Vector<ChannelModState> chState
protected

◆ headerWritten

bool headerWritten = false
protected

◆ info

AudioInfo info
protectedinherited

◆ isOpen

bool isOpen = false
protected

◆ meta

DSFMetadata meta
protected

◆ oversamplingRatio

uint32_t oversamplingRatio = 64
protected

◆ p_print

Print* p_print = nullptr
protected

◆ totalDsdBytes

uint64_t totalDsdBytes = 0
protected

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