|
arduino-audio-tools
|
Audio Decoder. More...
Classes | |
| class | AACDecoderFAAD |
| AAC Decoder using faad: https://github.com/pschatzmann/arduino-libfaad This needs a stack of around 60000 and you need to make sure that memory is allocated on PSRAM. See https://www.pschatzmann.ch/home/2023/09/12/arduino-audio-tools-faat-aac-decoder/. More... | |
| class | AACDecoderFDK |
| Audio Decoder which decodes AAC into a PCM stream This is basically just a wrapper using https://github.com/pschatzmann/arduino-fdk-aac which uses AudioInfo and provides the handlig of AudioInfo changes. More... | |
| class | AACDecoderHelix |
| AAC Decoder using libhelix: https://github.com/pschatzmann/arduino-libhelix This is basically just a simple wrapper to provide AudioInfo and AudioInfoSupport. More... | |
| class | ADPCMDecoder |
| Decoder for ADPCM. Depends on https://github.com/pschatzmann/adpcm. More... | |
| class | ADPCMDecoderXQ |
| Decoder for ADPCM-XQ. Depends on https://github.com/pschatzmann/arduino-adpcm-xq. More... | |
| class | ADTSDecoder |
| Audio Data Transport Stream (ADTS) is a format similar to Audio Data Interchange Format (ADIF), used by MPEG TS or Shoutcast to stream audio defined in MPEG-2 Part 7, usually AAC. This parser extracts all valid ADTS frames from the data stream ignoring other data. More... | |
| class | AMRNBDecoder |
| AMR Narrowband Decoder See https://github.com/pschatzmann/codec-amr. More... | |
| class | AMRNBEncoder |
| AMR NB Encoder See https://github.com/pschatzmann/codec-amr. More... | |
| class | AMRWBDecoder |
| AMR Wideband Decoder See https://github.com/pschatzmann/codec-amr. More... | |
| class | AMRWBEncoder |
| AMR Wideband Encoder See https://github.com/pschatzmann/codec-amr. More... | |
| class | APTXDecoder |
| Decoder for OpenAptx. Depends on https://github.com/pschatzmann/libopenaptx. More... | |
| class | BinaryContainerDecoder |
| Decodes the provided data from the DAT and CFG segments. More... | |
| class | Codec2Decoder |
| Decoder for Codec2. Depends on https://github.com/pschatzmann/arduino-libcodec2. More... | |
| class | CodecChain |
| CodecChain - allows to chain multiple decoders and encoders together. More... | |
| class | CodecFactory |
| Factory for creating new decoders based on the mime type or id. More... | |
| class | CopyDecoder |
| Dummy Decoder which just copies the provided data to the output. You can define if it is PCM data. More... | |
| class | DecoderAdapter |
| Adapter class which allows the AudioDecoder API on a StreamingDecoder. More... | |
| class | DecoderBase64 |
| DecoderBase64 - Converts a Base64 encoded Stream into the original data stream. Decoding only gives a valid result if we start at a limit of 4 bytes. We therefore use by default a newline to determine a valid start boundary. More... | |
| class | DecoderBasic |
| DecoderBasic - supports mime type audio/basic Requires https://github.com/pschatzmann/arduino-libg7xx The content of the "audio/basic" subtype is single channel audio encoded using 8bit ISDN mu-law [PCM] at a sample rate of 8000 Hz. More... | |
| class | DecoderFloat |
| DecoderFloat - Converts Stream of floats into 2 byte integers. More... | |
| class | DecoderHelix |
| MP3 and AAC Decoder using libhelix: https://github.com/pschatzmann/arduino-libhelix. We dynamically create a MP3 or AAC decoder dependent on the provided audio format. In addition WAV files are also supported. More... | |
| class | DecoderL16 |
| DecoderL16 - Converts an 16 Bit Stream into 16Bits network byte order. More... | |
| class | DecoderL8 |
| DecoderL8 - Converts an 8 Bit Stream into 16Bits Most microcontrollers can not output 8 bit data directly. 8 bit data however is very memory efficient and helps if you need to store audio on constrained resources. This decoder translates 8bit data into 16bit data. By default the encoded data is represented as uint8_t, so the values are from 0 to 255. More... | |
| class | DecoderNetworkFormat |
| PCM decoder which converts from network format to the host format. More... | |
| class | Demuxer |
| Common interface for demuxers (DemuxerAVI, DemuxerMP4) that split a container's video and (optional) audio tracks apart. Write code against this interface instead of a concrete class if it should work with either container format. More... | |
| class | DemuxerAVI |
| AVI Container Decoder which can be fed with small chunks of data. The minimum length must be bigger then the header size! The file structure is documented at https://learn.microsoft.com/en-us/windows/win32/directshow/avi-riff-file-reference. More... | |
| class | DemuxerMP4 |
| DemuxerMP4 extracts both the audio and (H.264) video track from a general, interleaved MP4/ISO-BMFF stream - unlike M4AAudioDemuxer/ M4AAudioFileDemuxer, which only handle a single (audio) track. More... | |
| class | DemuxerMPG |
| MPEG-1 System (Program) Stream Demuxer, as defined by ISO/IEC 11172-1: splits the pack_header/system_header/PES_packet framing apart and forwards the raw MPEG-1 video (ISO/IEC 11172-2) and MPEG-1 audio (ISO/IEC 11172-3, Layer I/II/III) elementary streams to setOutputVideo()/ setOutputAudio(). Both elementary streams are self-delimiting (the video ES has its own picture_start_code sequence, the audio ES its own frame sync word) so, like DemuxerAVI/DemuxerMP4, no separate decoding is done here - point the outputs at whatever decoder understands the codec (e.g. an MPEG1 video decoder, or an EncodedAudioStream wrapping an MP3/MP2 AudioDecoder). More... | |
| class | FLACDecoder |
| Decoder for FLAC. Depends on https://github.com/pschatzmann/arduino-libflac. We support an efficient streaming API and an very memory intensitiv standard interface. So you should prefer the streaming interface where you call setOutput() before the begin and copy() in the loop. Validated with http://www.2l.no/hires/. More... | |
| class | FLACDecoderFoxen |
| Foxen FLAC Decoder using https://github.com/astoeckel/libfoxenflac Unlike FLACDecoder which is a streaming decoder, this is a simple AudioDecoder implementation. More... | |
| class | G711_ALAWDecoder |
| 64 kbit/s g711 ALOW Decoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
| class | G711_ULAWDecoder |
| 64 kbit/s g711 ULOW Decoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
| class | G711Encoder |
| 64 kbit/s g711 ULOW Encoder based on https://github.com/pschatzmann/arduino-libg7xx Supported encoder parameters: linear2alaw2, linear2ulaw More... | |
| class | G721Decoder |
| 32Kbps G721 Decoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
| class | G722Decoder |
| Decoder for G.722. Depends on https://github.com/pschatzmann/arduino-libg722. More... | |
| class | G723_24Decoder |
| 24Kbps G723 Decoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
| class | G723_40Decoder |
| 40Kbps G723 Decoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
| class | G729Decoder |
| G.729 decoder using the bcg729 library. More... | |
| class | G7xxDecoder |
| g723_24, g721, g723_40 Decoder based on https://github.com/pschatzmann/arduino-libg7xx More... | |
| class | GSMDecoder |
| Decoder for GSM. Depends on https://github.com/pschatzmann/arduino-libgsm. Inspired by gsmdec.c. More... | |
| class | H264Decoder |
| H.264 video decoder: wraps TinyH264Decoder (https://github.com/pschatzmann/TinyH264) as a VideoOutput, so it can be plugged directly into e.g. DemuxerAVI::setOutputVideo()/ DemuxerMP4::setOutputVideo(). Consumes an Annex-B H.264 bitstream via write() and, once a complete picture has been decoded, writes it - converted to setVideoFormat()'s format (RGB565 by default, the common TFT wire format) - to the Print target configured via setOutput(), one write() call per decoded picture. More... | |
| class | H264DecoderESP32S3< Alloc > |
| H.264 video decoder for ESP32-S3: wraps esp_h264::H264Decoder (https://github.com/pschatzmann/ESP32S3-h264) as a VideoOutput, so it can be plugged directly into e.g. DemuxerAVI::setOutputVideo()/ DemuxerMP4::setOutputVideo() - the same role H264Decoder (CodecH264.h, the portable TinyH264-based decoder) plays, for boards where the ESP32-S3-specific esp_h264 backend is preferred instead. Consumes an Annex-B H.264 bitstream via write() and, once a complete picture has been decoded, writes it - converted to setVideoFormat()'s format (RGB565 by default, the common TFT wire format) - to the Print target configured via setOutput(), one write() call per decoded picture. More... | |
| class | HeaderParserAAC |
| AAC header parser to check if the data is a valid ADTS aac which can extract some relevant audio information. More... | |
| class | HeaderParserMP3 |
| MP3 header parser that processes MP3 data incrementally and extracts complete MP3 frames. Can validate MP3 data and extract audio information. When used with a Print output, it splits incoming data into complete MP3 frames and writes them to the output stream. More... | |
| class | ILBCDecoder |
| Decoder for iLBC. Depends on https://github.com/pschatzmann/libilbc. More... | |
| class | LC3Decoder |
| Decoder for LC3. Depends on https://github.com/pschatzmann/arduino-liblc3. More... | |
| class | MimeDetector |
| Logic to detemine the mime type from the content. By default the following mime types are supported (audio/aac, audio/mpeg, audio/vnd.wave, audio/ogg, audio/flac). You can register your own custom detection logic to cover additional file types. More... | |
| class | MimeResolver |
| Lookup MIME types by file extension. More... | |
| class | MimeSource |
| Abstract interface for classes that can provide MIME type information. More... | |
| class | MJPEGDecoder |
| Motion-JPEG video decoder: wraps TinyJPEGDecoder (https://github.com/pschatzmann/TinyJPEG, a header-only port of ChaN's TJpgDec) as a VideoDecoder, so it can be plugged directly into e.g. DemuxerAVI::setOutputVideo()/DemuxerMP4::setOutputVideo() - the same role H264Decoder (CodecH264.h) and MPGDecoder (CodecMPG.h) play for their own codecs. Named "MJPEGDecoder" rather than reusing TinyJPEGDecoder's own name to avoid shadowing that class from within this one. More... | |
| class | MP2Decoder |
| Decoder for MPEG-1 Layer II (MP2) audio using the TinyMP2 library. Compressed data provided via write() does not need to be aligned on frame boundaries: bytes are accumulated internally and decoded frame by frame; any invalid/garbage bytes are skipped automatically (resync). More... | |
| class | MP3DecoderHelix |
| MP3 Decoder using libhelix: https://github.com/pschatzmann/arduino-libhelix This is basically just a simple wrapper to provide AudioInfo and AudioInfoSupport. More... | |
| class | MP3DecoderMAD |
| MP3 Decoder using https://github.com/pschatzmann/arduino-libmad. More... | |
| class | MP3DecoderMini |
| MP3 Decoder using https://github.com/pschatzmann/minimp3. This decoder does not provide any good results and it is not suited to decode any audio above 32000 on an ESP32. So the sample rate is limited by the MINIMP3_MAX_SAMPLE_RATE variable. More... | |
| class | MP3EncoderShine |
| Lean MP3 Encoder using the shine library. More... | |
| class | MPGDecoder |
| MPEG-1 (part 2) video decoder wrapper around TinyMPGDecoder. More... | |
| class | MTSDecoder |
| MPEG-TS (MTS) decoder. Extracts (demuxes) the indicated audio/video data from a MPEG-TS (MTS) data stream. You can define the relevant stream types via the API: addStreamType(MTSStreamType). By default, the decoder selects the AUDIO_AAC, AUDIO_AAC_LATM stream types. More... | |
| class | MTSDecoderTSDemux |
| 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... | |
| class | MultiDecoder |
| Manage multiple AudioDecoders with automatic format detection. More... | |
| class | MultiStreamingDecoder |
| Manage multiple StreamingDecoders with automatic format detection. More... | |
| class | MultiVideoDecoder |
| Manages multiple VideoDecoders with automatic format detection - the video-side counterpart of MultiDecoder (AudioCodecs/MultiDecoder.h). No decoders are registered by default and this header has no codec- library dependency of its own - register whatever your content needs via addDecoder(), or use MultiVideoDecoderFull (MultiVideoDecoderFull.h) for one pre-registered with every video codec this library ships a portable (no hardware-specific backend) software decoder for (H264/MJPEG/MPEG-1). More... | |
| class | MultiVideoDecoderFull |
| MultiVideoDecoder pre-registered with every video codec this library ships a portable (no hardware-specific backend) software decoder for: MJPEGDecoder (Motion-JPEG, TinyJPEG, CodecJPEG.h), MPGDecoder (MPEG-1, TinyMPG, CodecMPG.h), H264Decoder (H.264 Annex-B, TinyH264, CodecH264.h) - drop it into a demuxer's setOutputVideo() the same way any single decoder would go, and it self-selects the right one from the bitstream's own framing instead of the caller having to know the codec up front. Use the plain MultiVideoDecoder (MultiVideoDecoder.h) instead if you don't want all three codec libraries pulled in unconditionally - register only what your content actually needs via its own addDecoder(). More... | |
| class | MultiVideoDemuxer |
| Manages multiple Demuxers with automatic container-format detection - the container-side counterpart of MultiVideoDecoder (Video/MultiVideoDecoder.h), which does the same job one layer down for the video elementary stream's own codec. No demuxers are registered by default and this header has no container-parser dependency of its own (it only needs the Demuxer interface, ContainerCommon.h) - register whichever concrete demuxers (DemuxerAVI/DemuxerMP4/DemuxerMPG) your content actually needs via addDemuxer(). More... | |
| class | MultiVideoDemuxerFull |
| MultiVideoDemuxer pre-registered with every container format this library ships a demuxer for: DemuxerAVI (RIFF/AVI, AudioCodecs/ContainerAVI.h), DemuxerMP4 (ISO base media/MP4, AudioCodecs/ContainerMP4.h), DemuxerMPG (MPEG Program Stream, AudioCodecs/ContainerMPG.h) - drop it in wherever a plain Demuxer& is expected (VideoPlayer in fact uses one internally as its own built-in demuxer) and it self-selects the right one from the stream's own container signature instead of the caller having to know the file format up front. Use the plain MultiVideoDemuxer (MultiVideoDemuxer.h) instead if you don't want all three container parsers pulled in unconditionally - register only what your content actually needs via its own addDemuxer(). More... | |
| class | OggContainerDecoder |
| Decoder for Ogg Container. Decodes a packet from an Ogg container. The Ogg begin segment contains the AudioInfo structure. You can subclass and overwrite the beginOfSegment() method to implement your own headers Dependency: https://github.com/pschatzmann/arduino-libopus. More... | |
| class | OggVorbisDecoder |
| Ogg Vorbis Decoder. More... | |
| class | OpusAudioDecoder |
| Decoder for the Opus audio format. Each Opus frame must be provided with one write() call. Therefore, Opus is usually encapsulated in a container format (e.g., Ogg) that splits the stream into frames. More... | |
| class | OpusMultiStreamAudioDecoder |
| Decoder for the Opus multistream audio format. Supports up to 255 channels by combining multiple Opus streams into a single packet. Each Opus frame must be provided with one write() call. More... | |
| class | OpusOggDecoder |
| Opus Decoder which uses the Ogg Container. See https://datatracker.ietf.org/doc/html/rfc7845. The audio data is transmitted in frames and the header information contains the sampler rate, channels and other critical info. Dependency: https://github.com/pschatzmann/arduino-libopus. More... | |
| class | OSCContainerDecoder |
| Decodes the provided data from the OSC segments. I recommend to assign a MultiDecoder so that we can support muiltiple audio types. More... | |
| class | SBCDecoder |
| Decoder for SBC. Depends on https://github.com/pschatzmann/arduino-libsbc. Inspired by sbcdec.c. More... | |
| class | VorbisDecoder |
| Vorbis Streaming Decoder using https://github.com/pschatzmann/arduino-libvorbis-tremor. More... | |
| class | WAVDecoder |
| A simple WAVDecoder: We parse the header data on the first record to determine the format. If no AudioDecoderExt is specified we just write the PCM data to the output that is defined by calling setOutput(). You can define a ADPCM decoder to decode WAV files that contain ADPCM data. Since WAV files can use different ADPCM (or other) encodings, you can register more than one decoder with addDecoder(): the decoder matching the format tag found in the WAV header is selected automatically when a file is parsed. More... | |
| class | WavIMADecoder |
| Obsolete: WavIMADecoder - based on WAVDecoder - We parse the header data as we receive it and send the sound data to the stream which was indicated in the constructor. Only WAV files with WAVE_FORMAT_IMA_ADPCM are supported by this codec! More... | |
Audio Decoder.