|
arduino-audio-tools
|
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...
#include <ContainerCommon.h>
Public Member Functions | |
| virtual void | addNotifyAudioChange (AudioInfoSupport &bi) |
| Adds target to be notified about audio changes. | |
| AudioInfo | audioInfo () override |
| 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 | end () override |
| virtual AudioInfoFormat | getAudioInfo ()=0 |
| Print * | getOutput () |
| virtual VideoInfo | getVideoInfo ()=0 |
| Common video info (width/height/format/frame_size/total_file_size) | |
| bool | isNotifyActive () |
| Checks if the automatic AudioInfo update is active. | |
| virtual const char * | mime ()=0 |
| The container's MIME type (e.g. "video/avi", "video/mp4"). | |
| virtual | operator bool ()=0 |
| virtual bool | removeNotifyAudioChange (AudioInfoSupport &bi) |
| Removes a target in order not to be notified about audio changes. | |
| void | setAudioInfo (AudioInfo from) override |
| for most decoders this is not needed | |
| virtual bool | setCodecConfig (const uint8_t *data, size_t len) |
| Some decoders need e.g. a magic cookie to provide the relevant info for decoding. | |
| 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. | |
| virtual void | setOutputAudio (Print &out)=0 |
| virtual void | setOutputVideo (Print &out)=0 |
| virtual void | setSendWavHeader (bool flag)=0 |
| virtual size_t | write (const uint8_t *data, size_t len)=0 |
Public Attributes | |
| int | id |
| custom id to be used by application | |
Protected Member Functions | |
| void | notifyAudioChange (AudioInfo info) |
| void | writeBlocking (Print *out, uint8_t *data, size_t len) |
Protected Attributes | |
| AudioInfo | info |
| bool | is_notify_active = true |
| Vector< AudioInfoSupport * > | notify_vector |
| Print * | p_print = nullptr |
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.
|
inlinevirtualinherited |
Adds target to be notified about audio changes.
Reimplemented in CodecNOP, EncodedAudioOutput, EncodedAudioStream, AACDecoderFDK, DecoderBasic, CodecChain, MP3DecoderHelix, MP3DecoderMAD, OggContainerDecoder, RTSPClient< TcpClient, UdpSocket >, Pipeline, and Pipeline::ModifyingStreamAdapter.
|
inlineoverridevirtualinherited |
provides the actual input AudioInfo
Implements AudioInfoSupport.
Reimplemented in CodecNOP, DecoderBasic, DSFDecoder, MP3DecoderHelix, MP3DecoderMAD, OpusAudioDecoder, OpusMultiStreamAudioDecoder, VorbisDecoder, WAVDecoder, WavIMADecoder, OggContainerDecoder, and VorbisDecoder.
|
inlinevirtualinherited |
provides the actual output AudioInfo: this is usually the same as audioInfo() unless we use a transforming stream
Reimplemented in MP3EncoderShine, PureDataStream, PWMAudioOutput< PWMDriverT >, ChannelFormatConverterStreamT< T >, ChannelFormatConverterStream, NumberFormatConverterStreamT< TFrom, TTo >, NumberFormatConverterStream, FormatConverterStream, Pipeline, ResampleStream, and ResampleStreamT< TInterpolator >.
|
inlineoverridevirtualinherited |
Implements AudioWriter.
Reimplemented in CodecNOP, CodecChain, Codec2Decoder, CopyDecoder, DSFDecoder, FLACDecoderFoxen, G722Decoder, GSMDecoder, ILBCDecoder, LC3Decoder, MP3DecoderMini, DecoderNetworkFormat, SBCDecoder, WavIMADecoder, BinaryContainerDecoder, OSCContainerDecoder, DecoderBase64, DecoderBasic, G729Decoder, G7xxDecoder, MP3DecoderHelix, MP3DecoderMAD, MTSDecoder, OpusAudioDecoder, OpusMultiStreamAudioDecoder, OpusOggDecoder, MTSDecoderTSDemux, VorbisDecoder, WAVDecoder, DemuxerAVI, ContainerM4A, DemuxerMP4, DemuxerMPG, OggContainerDecoder, MultiDecoder, DecoderAdapter, VorbisDecoder, and MetaDataFilterDecoder.
|
inlineoverridevirtualinherited |
Reimplemented from AudioWriter.
Reimplemented in DecoderBasic, and OggContainerDecoder.
|
inlinevirtualinherited |
Deletes all change notify subscriptions.
Reimplemented in RTSPClient< TcpClient, UdpSocket >.
|
inlineoverridevirtualinherited |
Implements AudioWriter.
Reimplemented in CodecNOP, Codec2Decoder, CopyDecoder, FLACDecoderFoxen, G722Decoder, GSMDecoder, ILBCDecoder, LC3Decoder, MP3DecoderMini, DecoderNetworkFormat, SBCDecoder, WavIMADecoder, BinaryContainerDecoder, OSCContainerDecoder, DecoderBase64, DecoderBasic, CodecChain, DSFDecoder, G729Decoder, G7xxDecoder, MP3DecoderHelix, MP3DecoderMAD, MTSDecoder, OpusAudioDecoder, OpusMultiStreamAudioDecoder, OpusOggDecoder, MTSDecoderTSDemux, VorbisDecoder, WAVDecoder, DemuxerAVI, ContainerM4A, DemuxerMP4, DemuxerMPG, OggContainerDecoder, MultiDecoder, DecoderAdapter, VorbisDecoder, and MetaDataFilterDecoder.
|
pure virtual |
Common audio info (sample_rate/channels/bits_per_sample), extended with the parsed codec format tag.
Implemented in DemuxerAVI, DemuxerMP4, and DemuxerMPG.
|
inlineinherited |
|
pure virtual |
Common video info (width/height/format/frame_size/total_file_size)
Implemented in DemuxerAVI, DemuxerMP4, and DemuxerMPG.
|
inlineinherited |
Checks if the automatic AudioInfo update is active.
|
pure virtual |
The container's MIME type (e.g. "video/avi", "video/mp4").
Implemented in DemuxerAVI, DemuxerMP4, and DemuxerMPG.
|
inlineprotectedinherited |
|
pure virtualinherited |
Implemented in CodecNOP, AACDecoderFAAD, DecoderALAC, EncoderALAC, APTXDecoder, APTXEncoder, CodecChain, Codec2Decoder, Codec2Encoder, CopyDecoder, CopyEncoder, DSFDecoder, G722Decoder, G722Encoder, G7xxDecoder, G7xxEncoder, GSMDecoder, GSMEncoder, ILBCDecoder, ILBCEncoder, LC3Decoder, LC3Encoder, MP3EncoderLAME, MP3DecoderMini, DecoderNetworkFormat, EncoderNetworkFormat, SBCDecoder, SBCEncoder, WavIMADecoder, BinaryContainerEncoder, BinaryContainerDecoder, OSCContainerEncoder, OSCContainerDecoder, AACDecoderFDK, AACEncoderFDK, AACDecoderHelix, AACEncoderVO, ADPCMDecoder, ADPCMEncoder, ADPCMDecoderXQ, ADPCMEncoderXQ, ADTSDecoder, AMRNBDecoder, AMRWBDecoder, DecoderBase64, EncoderBase64, DecoderBasic, EncoderBasic, DSFEncoder, FLACEncoder, FLACDecoderFoxen, DecoderFloat, EncoderFloat, G729Decoder, G729Encoder, DecoderL16, EncoderL16, DecoderL8, EncoderL8, MP3DecoderHelix, MP3DecoderMAD, MP3EncoderShine, MTSDecoder, OpusAudioDecoder, OpusAudioEncoder, OpusMultiStreamAudioDecoder, OpusMultiStreamAudioEncoder, MTSDecoderTSDemux, VorbisDecoder, WAVDecoder, WAVEncoder, DemuxerAVI, ContainerM4A, DemuxerMP4, DemuxerMPG, OggContainerDecoder, OggContainerEncoder, MP3ParserEncoder, MultiDecoder, DecoderAdapter, VorbisDecoder, MetaDataFilterDecoder, and MetaDataFilterEncoder.
|
inlinevirtualinherited |
Removes a target in order not to be notified about audio changes.
Reimplemented in RTSPClient< TcpClient, UdpSocket >.
|
inlineoverridevirtualinherited |
for most decoders this is not needed
Implements AudioWriter.
Reimplemented in DecoderALAC, CodecChain, DSFDecoder, DecoderL8, OpusAudioDecoder, OpusMultiStreamAudioDecoder, CodecNOP, G729Decoder, and G7xxDecoder.
|
inlinevirtualinherited |
Some decoders need e.g. a magic cookie to provide the relevant info for decoding.
Reimplemented in DecoderALAC, and MultiDecoder.
|
inlineinherited |
Deactivate/Reactivate automatic AudioInfo updates: (default is active)
|
inlinevirtualinherited |
Defines where the decoded result is written to.
Reimplemented in ADTSDecoder, CodecChain, MTSDecoder, MTSDecoderTSDemux, and MetaDataFilterDecoder.
|
inlinevirtualinherited |
Defines where the decoded result is written to.
Reimplemented in ADTSDecoder, CodecChain, MTSDecoder, MTSDecoderTSDemux, and MetaDataFilterDecoder.
|
inlineoverridevirtualinherited |
Defines where the decoded result is written to.
Implements AudioWriter.
Reimplemented in DecoderBase64, MP3DecoderMAD, DemuxerMP4, DemuxerMPG, DecoderAdapter, CodecNOP, ADPCMDecoderXQ, APTXDecoder, Codec2Decoder, CopyDecoder, G722Decoder, GSMDecoder, ILBCDecoder, LC3Decoder, DecoderNetworkFormat, SBCDecoder, WavIMADecoder, AACDecoderFDK, AACDecoderHelix, ADPCMDecoder, ADTSDecoder, DecoderBasic, CodecChain, DecoderFloat, G729Decoder, G7xxDecoder, DecoderL16, MTSDecoder, OpusAudioDecoder, OpusMultiStreamAudioDecoder, MTSDecoderTSDemux, WAVDecoder, DemuxerAVI, ContainerM4A, MultiDecoder, MetaDataFilterDecoder, MP3DecoderMini, BinaryContainerDecoder, OSCContainerDecoder, MP3DecoderHelix, and OggContainerDecoder.
|
pure virtual |
Defines the audio output stream - e.g. an EncodedAudioStream wrapping an AudioDecoder that matches the track's codec, or any other Print if you want the raw payload as-is.
Implemented in DemuxerMP4, DemuxerMPG, and DemuxerAVI.
|
pure virtual |
Defines the video output - e.g. a VideoOutput implementation, or any other Print if you want the raw payload as-is.
Implemented in DemuxerMP4, DemuxerMPG, and DemuxerAVI.
|
pure virtual |
Overrides the automatic decision of whether a synthetic WAV header is sent to the audio output before any audio payload - see the concrete class for the default heuristic.
Implemented in DemuxerAVI, DemuxerMP4, and DemuxerMPG.
|
pure virtualinherited |
Implemented in CodecNOP, AACDecoderFAAD, ADPCMDecoderXQ, APTXDecoder, APTXEncoder, CopyDecoder, CopyEncoder, DSFDecoder, G722Decoder, G722Encoder, GSMDecoder, GSMEncoder, ILBCDecoder, ILBCEncoder, LC3Decoder, LC3Encoder, MP3EncoderLAME, MP3DecoderMini, DecoderNetworkFormat, EncoderNetworkFormat, SBCDecoder, SBCEncoder, WavIMADecoder, BinaryContainerEncoder, BinaryContainerDecoder, OSCContainerEncoder, OSCContainerDecoder, AACDecoderFDK, AACEncoderFDK, AACDecoderHelix, AACEncoderVO, ADPCMDecoder, ADPCMEncoder, ADPCMEncoderXQ, ADTSDecoder, EncoderALAC, AMRNBDecoder, AMRNBEncoder, AMRWBDecoder, AMRWBEncoder, DecoderBase64, EncoderBase64, DecoderBasic, CodecChain, Codec2Decoder, DSFEncoder, FLACEncoder, FLACDecoderFoxen, DecoderFloat, EncoderFloat, G729Decoder, G729Encoder, G7xxDecoder, G7xxEncoder, G711Encoder, G711Decoder, DecoderL16, EncoderL16, DecoderL8, EncoderL8, MP3DecoderHelix, MP3DecoderMAD, MP3EncoderShine, MTSDecoder, OpusAudioDecoder, OpusAudioEncoder, OpusMultiStreamAudioDecoder, OpusMultiStreamAudioEncoder, MTSDecoderTSDemux, WAVDecoder, WAVEncoder, DemuxerAVI, ContainerM4A, DemuxerMP4, DemuxerMPG, OggContainerDecoder, OggContainerEncoder, MP3ParserEncoder, MultiDecoder, DecoderAdapter, VorbisDecoder, MetaDataFilterDecoder, MetaDataFilterEncoder, DecoderALAC, EncoderBasic, and Codec2Encoder.
|
inlineprotectedinherited |
|
inherited |
custom id to be used by application
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |