arduino-audio-tools
Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
MTSDecoder 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 MTSDecoder:
AudioDecoder AudioWriter AudioInfoSource AudioInfoSupport

Public Member Functions

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 ()
 provides the actual output AudioInfo: this is usually the same as audioInfo() unless we use a transforming stream
 
bool begin () override
 
virtual bool begin (AudioInfo info) override
 
virtual void clearNotifyAudioChange ()
 Deletes all change notify subscriptions.
 
void clearStreamTypes ()
 
void end () override
 
void flush ()
 
bool isNotifyActive ()
 Checks if the automatic AudioInfo update is active.
 
virtual bool isResultPCM ()
 If true, 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)
 
virtual void setOutput (AudioOutput &out_stream)
 Defines where the decoded result is written to.
 
virtual void setOutput (AudioStream &out_stream)
 Defines where the decoded result is written to.
 
virtual void setOutput (Print &out_stream) override
 Defines where the decoded result is written to.
 
size_t write (const void *in_ptr, size_t in_size) 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
 
Printp_print = nullptr
 
uint16_t print_pids [(16)] = {0}
 
Vector< TSDPMTStreamType > stream_types
 
int underflowLimit = 188
 

Static Protected Attributes

static MTSDecoderself = 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

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