arduino-audio-tools
|
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. The parsing logic was taken from: https://github.com/Yokohama-Miyazawa/M5HLSPlayer/blob/main/src/AudioGeneratorTS.cpp Status: experimental! More...
#include <CodecMTS.h>
Classes | |
struct | pid_array |
Public Member Functions | |
virtual void | addNotifyAudioChange (AudioInfoSupport &bi) |
Adds target to be notified about audio changes. | |
void | addStreamType (MTSStreamType type) |
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 |
bool | begin () override |
virtual bool | begin (AudioInfo info) override |
virtual void | clearNotifyAudioChange () |
Deletes all change notify subscriptions. | |
void | clearStreamTypes () |
void | clearStreamTypes () |
void | end () override |
void | end () override |
void | flush () |
void | flush () |
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 (MTSStreamType type) |
bool | isStreamTypeActive (TSDPMTStreamType type) |
const char * | mime () |
const char * | mime () |
virtual | operator bool () override |
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) | |
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 uint8_t *data, size_t len) override |
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) |
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) |
uint32_t | parse () |
int | parsePacket (uint8_t *packet, uint8_t *data) |
int | parsePAT (uint8_t *pat) |
int | parsePES (uint8_t *pat, const int posOfPacketStart, const bool isNewPayload) |
int | parsePMT (uint8_t *pat) |
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< AllocSize > | alloc_vector |
SingleBuffer< uint8_t > | buffer { 2000 } |
TSDemuxContext | ctx |
Vector< uint8_t > | data { 188 } |
AudioInfo | info |
bool | is_active = false |
bool | is_alloc_active = false |
bool | is_notify_active = true |
bool | is_write_active = false |
bool | isSyncByteFound = false |
Vector< AudioInfoSupport * > | notify_vector |
Print * | p_print = nullptr |
uint8_t | packetBuff [188] |
int16_t | pesDataLength = -1 |
pid_array | pidsOfPMT |
uint16_t | print_pids [(16)] = {0} |
int16_t | relevantPID = -1 |
Vector< MTSStreamType > | stream_types |
Vector< TSDPMTStreamType > | stream_types |
int | underflowLimit = 200 |
Static Protected Attributes | |
static MTSDecoder1 * | self = nullptr |
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. The parsing logic was taken from: https://github.com/Yokohama-Miyazawa/M5HLSPlayer/blob/main/src/AudioGeneratorTS.cpp Status: experimental!
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.
|
inlinevirtualinherited |
Adds target to be notified about audio changes.
Reimplemented in CodecNOP, MP3DecoderMAD, EncodedAudioOutput, EncodedAudioStream, AACDecoderFDK, DecoderBasic, MP3DecoderHelix, OggContainerDecoder, Pipeline, and Pipeline::ModifyingStreamAdapter.
provides the actual input AudioInfo
Implements AudioInfoSupport.
Reimplemented in CodecNOP, GGWaveDecoder, AACDecoderFDK, AACDecoderHelix, DecoderBasic, DecoderHelix, MP3DecoderHelix, MP3DecoderMAD, OpusAudioDecoder, WAVDecoder, WavIMADecoder, and OggContainerDecoder.
provides the actual output AudioInfo: this is usually the same as audioInfo() unless we use a transforming stream
Reimplemented in PureDataStream, PWMAudioOutput, ChannelFormatConverterStreamT< T >, ChannelFormatConverterStream, NumberFormatConverterStreamT< TFrom, TTo >, NumberFormatConverterStream, FormatConverterStream, Pipeline, and ResampleStream.
|
inlineoverridevirtual |
Reimplemented from AudioDecoder.
|
inlineoverridevirtual |
Reimplemented from AudioDecoder.
Reimplemented from AudioWriter.
|
inlineoverridevirtual |
Reimplemented from AudioDecoder.
|
inlineoverridevirtual |
Reimplemented from AudioDecoder.
Returns true to indicate that the decoding result is PCM data.
Reimplemented in CopyDecoder, and GGWaveDecoder.
Implements AudioWriter.
Implements AudioWriter.
for most decoders this is not needed
Implements AudioWriter.
Reimplemented in GGWaveDecoder, DecoderL8, OpusAudioDecoder, CodecNOP, AACDecoderHelix, and G7xxDecoder.
|
inlinevirtualinherited |
Defines where the decoded result is written to.
Reimplemented in MetaDataFilterDecoder.
|
inlinevirtualinherited |
Defines where the decoded result is written to.
Reimplemented in MetaDataFilterDecoder.
Defines where the decoded result is written to.
Implements AudioWriter.
Reimplemented in MP3DecoderMAD, DecoderBase64, DecoderAdapter, CodecNOP, AACDecoderFDK, AACDecoderHelix, ADPCMDecoderXQ, APTXDecoder, Codec2Decoder, CopyDecoder, G722Decoder, GSMDecoder, ILBCDecoder, LC3Decoder, SBCDecoder, WavIMADecoder, GGWaveDecoder, ADPCMDecoder, DecoderBasic, DecoderFloat, G7xxDecoder, DecoderL16, OpusAudioDecoder, WAVDecoder, AVIDecoder, MetaDataFilterDecoder, DecoderHelix, MP3DecoderMini, BinaryContainerDecoder, MP3DecoderHelix, and OggContainerDecoder.
Implements AudioWriter.
Implements AudioWriter.