arduino-audio-tools
All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Modules Pages
Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
MTSDecoderTSDemux Class Reference

MPEG-TS (MTS) decoder. Extracts the AAC audio data from a MPEG-TS (MTS) data stream. You can define the relevant stream types via the API. Required dependency: https://github.com/pschatzmann/arduino-tsdemux. More...

#include <CodecTSDemux.h>

Inheritance diagram for MTSDecoderTSDemux:
AudioDecoder AudioWriter AudioInfoSource AudioInfoSupport

Public Member Functions

 MTSDecoderTSDemux (AudioDecoder &dec)
 
virtual void addNotifyAudioChange (AudioInfoSupport &bi)
 Adds target to be notified about audio changes.
 
void addStreamType (TSDPMTStreamType type)
 
virtual AudioInfo audioInfo ()
 provides the actual input AudioInfo
 
virtual AudioInfo audioInfoOut ()
 
bool begin () override
 
virtual bool begin (AudioInfo info) override
 
virtual void clearNotifyAudioChange ()
 Deletes all change notify subscriptions.
 
void clearStreamTypes ()
 
void end () override
 
void flush ()
 
PrintgetOutput ()
 
bool isNotifyActive ()
 Checks if the automatic AudioInfo update is active.
 
virtual bool isResultPCM ()
 Returns true to indicate that the decoding result is PCM data.
 
bool isStreamTypeActive (TSDPMTStreamType type)
 
const char * mime ()
 
virtual operator bool () override
 
virtual bool removeNotifyAudioChange (AudioInfoSupport &bi)
 Removes a target in order not to be notified about audio changes.
 
void resizeBuffer (int size)
 Set a new write buffer size (default is 2000)
 
virtual void setAudioInfo (AudioInfo from) override
 for most decoders this is not needed
 
void setMemoryAllocationLogging (bool flag)
 Activate logging for memory allocations.
 
void setNotifyActive (bool flag)
 Deactivate/Reactivate automatic AudioInfo updates: (default is active)
 
void setOutput (AudioOutput &out_stream) override
 Defines where the decoded result is written to.
 
void setOutput (AudioStream &out_stream) override
 Defines where the decoded result is written to.
 
void setOutput (Print &out_stream) override
 Defines where the decoded result is written to.
 
size_t write (const uint8_t *data, size_t len) override
 

Public Attributes

int id
 custom id to be used by application
 

Protected Member Functions

void add_print_pid (TSDProgramElement *prog, TSDPMTStreamType type)
 
void demux (int limit)
 
const char * descriptor_tag_to_str (uint8_t tag)
 
void event_cb_local (TSDemuxContext *ctx, uint16_t pid, TSDEventId event_id, void *data)
 
bool is_new_file (uint8_t *data)
 Determines if we are at the beginning of a new file.
 
void logResult (TSDCode code)
 
void notifyAudioChange (AudioInfo info)
 
void print_descriptor_info (TSDDescriptor *desc)
 
void print_pat (TSDemuxContext *ctx, void *data)
 
void print_pmt (TSDemuxContext *ctx, void *data)
 
void set_write_active (bool flag)
 
const char * stream_type_to_str (TSDPESStreamId stream_id)
 
void writeBlocking (Print *out, uint8_t *data, size_t len)
 

Static Protected Member Functions

static void event_cb (TSDemuxContext *ctx, uint16_t pid, TSDEventId event_id, void *data)
 
static void * log_calloc (size_t num, size_t size)
 
static void log_free (void *mem)
 
static void * log_malloc (size_t size)
 
static void * log_realloc (void *ptr, size_t size)
 

Protected Attributes

Vector< AllocSizealloc_vector
 
SingleBuffer< uint8_t > buffer { 2000 }
 
TSDemuxContext ctx
 
AudioInfo info
 
bool is_active = false
 
bool is_alloc_active = false
 
bool is_notify_active = true
 
bool is_write_active = false
 
Vector< AudioInfoSupport * > notify_vector
 
AudioDecoderp_dec = nullptr
 
Printp_print = nullptr
 
uint16_t print_pids [(16)] = {0}
 
Vector< TSDPMTStreamType > stream_types
 
int underflowLimit = 188
 

Static Protected Attributes

static MTSDecoderTSDemuxself = nullptr
 

Detailed Description

MPEG-TS (MTS) decoder. Extracts the AAC audio data from a MPEG-TS (MTS) data stream. You can define the relevant stream types via the API. Required dependency: https://github.com/pschatzmann/arduino-tsdemux.

Author
Phil Schatzmann

Member Function Documentation

◆ addNotifyAudioChange()

virtual void addNotifyAudioChange ( AudioInfoSupport bi)
inlinevirtualinherited

◆ audioInfo()

virtual AudioInfo audioInfo ( )
inlinevirtualinherited

◆ audioInfoOut()

virtual AudioInfo audioInfoOut ( )
inlinevirtualinherited

◆ begin() [1/2]

bool begin ( )
inlineoverridevirtual

Reimplemented from AudioDecoder.

◆ begin() [2/2]

virtual bool begin ( AudioInfo  info)
inlineoverridevirtualinherited

Reimplemented from AudioWriter.

◆ end()

void end ( )
inlineoverridevirtual

Reimplemented from AudioDecoder.

◆ isResultPCM()

virtual bool isResultPCM ( )
inlinevirtualinherited

Returns true to indicate that the decoding result is PCM data.

Reimplemented in CopyDecoder, and GGWaveDecoder.

◆ operator bool()

virtual operator bool ( )
inlineoverridevirtual

Implements AudioWriter.

◆ setAudioInfo()

virtual void setAudioInfo ( AudioInfo  from)
inlineoverridevirtualinherited

for most decoders this is not needed

Implements AudioWriter.

Reimplemented in GGWaveDecoder, DecoderL8, OpusAudioDecoder, CodecNOP, AACDecoderHelix, and G7xxDecoder.

◆ setOutput() [1/3]

void setOutput ( AudioOutput out_stream)
inlineoverridevirtual

Defines where the decoded result is written to.

Reimplemented from AudioDecoder.

◆ setOutput() [2/3]

void setOutput ( AudioStream out_stream)
inlineoverridevirtual

Defines where the decoded result is written to.

Reimplemented from AudioDecoder.

◆ setOutput() [3/3]

void setOutput ( Print out_stream)
inlineoverridevirtual

Defines where the decoded result is written to.

Reimplemented from AudioDecoder.

◆ write()

size_t write ( const uint8_t *  data,
size_t  len 
)
inlineoverridevirtual

Implements AudioWriter.


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