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

Wraps the encoded data into OSC info and data segments so that the receiver can recover the audio configuration and orignial segments. More...

#include <ContainerOSC.h>

Inheritance diagram for OSCContainerEncoder:
AudioEncoder AudioWriter AudioInfoSupport

Classes

class  OSCOutput
 Output Encoded Audio via OSC. More...
 

Public Member Functions

 OSCContainerEncoder ()=default
 
 OSCContainerEncoder (AudioEncoder &encoder)
 
AudioInfo audioInfo () override
 provides the actual input AudioInfo
 
virtual AudioInfo audioInfoOut ()
 
bool begin () override
 
virtual bool begin (AudioInfo info)
 
void end ()
 
virtual uint32_t frameDurationUs ()
 Optional rtsp function: provide the frame duration in microseconds.
 
uint64_t getSequenceNumber ()
 Returns the sequence number of the next packet.
 
virtual const charmime ()
 Provides the mime type of the encoded result.
 
 operator bool ()
 
size_t resendEncodedData (uint8_t *data, size_t len, uint64_t seq)
 Resend the encoded data.
 
virtual uint16_t samplesPerFrame ()
 Optional rtsp function: provide samples per the frame.
 
void setAudioInfo (AudioInfo info) override
 Defines the sample rate, number of channels and bits per sample.
 
void setEncodedWriteCallback (void(*write_callback)(uint8_t *data, size_t len, uint64_t seq, void *ref))
 Get informed about the encoded packages.
 
void setEncoder (AudioEncoder *encoder)
 
void setInfoActive (bool flag)
 Activate/deactivate the sending of the audio info.
 
void setOutput (Print &outStream)
 Default output assignment (encoders may override to store Print reference)
 
void setReference (void *ref)
 Define a reference object to be provided by the callback.
 
void setRepeatInfoEvery (int packet_count)
 Automatically resend audio info ever nth write.
 
size_t write (const uint8_t *data, size_t len)
 Add data segment. On first write we also add a AudioInfo header.
 

Protected Member Functions

void writeAudioInfo (AudioInfo info, const char *mime)
 OUtput AudioInfo via OSC.
 
void writeBlocking (Print *out, uint8_t *data, size_t len)
 

Protected Attributes

AudioInfo info
 
bool is_active = false
 
bool is_send_info_active = true
 
audio_tools::OSCContainerEncoder::OSCOutput osc_out
 
AudioEncoderp_codec = nullptr
 
Printp_out = nullptr
 
uint64_t packet_count = 0
 
int repeat_info = 0
 

Detailed Description

Wraps the encoded data into OSC info and data segments so that the receiver can recover the audio configuration and orignial segments.

Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ OSCContainerEncoder() [1/2]

OSCContainerEncoder ( )
default

◆ OSCContainerEncoder() [2/2]

OSCContainerEncoder ( AudioEncoder encoder)
inline

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

◆ end()

void end ( )
inlinevirtual

Implements AudioWriter.

◆ frameDurationUs()

virtual uint32_t frameDurationUs ( )
inlinevirtualinherited

Optional rtsp function: provide the frame duration in microseconds.

Reimplemented in ADPCMEncoder, OpusOggEncoder, MP3ParserEncoder, and MetaDataFilterEncoder.

◆ getSequenceNumber()

uint64_t getSequenceNumber ( )
inline

Returns the sequence number of the next packet.

◆ mime()

virtual const char * mime ( )
inlinevirtual

Provides the mime type of the encoded result.

Implements AudioEncoder.

◆ operator bool()

operator bool ( )
inlinevirtual

Implements AudioWriter.

◆ resendEncodedData()

size_t resendEncodedData ( uint8_t data,
size_t  len,
uint64_t  seq 
)
inline

Resend the encoded data.

◆ samplesPerFrame()

virtual uint16_t samplesPerFrame ( )
inlinevirtualinherited

Optional rtsp function: provide samples per the frame.

Reimplemented in MP3ParserEncoder, and MetaDataFilterEncoder.

◆ setAudioInfo()

void setAudioInfo ( AudioInfo  from)
inlineoverridevirtual

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

Reimplemented from AudioEncoder.

◆ setEncodedWriteCallback()

void setEncodedWriteCallback ( void(*)(uint8_t *data, size_t len, uint64_t seq, void *ref)  write_callback)
inline

Get informed about the encoded packages.

◆ setEncoder()

void setEncoder ( AudioEncoder encoder)
inline

◆ setInfoActive()

void setInfoActive ( bool  flag)
inline

Activate/deactivate the sending of the audio info.

◆ setOutput()

void setOutput ( Print out_stream)
inlinevirtual

Default output assignment (encoders may override to store Print reference)

Reimplemented from AudioEncoder.

◆ setReference()

void setReference ( void ref)
inline

Define a reference object to be provided by the callback.

◆ setRepeatInfoEvery()

void setRepeatInfoEvery ( int  packet_count)
inline

Automatically resend audio info ever nth write.

◆ write()

size_t write ( const uint8_t data,
size_t  len 
)
inlinevirtual

Add data segment. On first write we also add a AudioInfo header.

Implements AudioWriter.

◆ writeAudioInfo()

void writeAudioInfo ( AudioInfo  info,
const char mime 
)
inlineprotected

OUtput AudioInfo via OSC.

◆ writeBlocking()

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

Member Data Documentation

◆ info

AudioInfo info
protectedinherited

◆ is_active

bool is_active = false
protected

◆ is_send_info_active

bool is_send_info_active = true
protected

◆ osc_out

◆ p_codec

AudioEncoder* p_codec = nullptr
protected

◆ p_out

Print* p_out = nullptr
protected

◆ packet_count

uint64_t packet_count = 0
protected

◆ repeat_info

int repeat_info = 0
protected

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