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...
#include <CodecMP3Mini.h>
|
| int | id |
| | custom id to be used by application
|
| |
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.
- Author
- Phil Schatzmann
- Copyright
- GPLv3
◆ MP3DecoderMini()
◆ ~MP3DecoderMini()
◆ addNotifyAudioChange()
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.
◆ audioInfo()
|
|
inlineoverridevirtualinherited |
provides the actual input AudioInfo
Implements AudioInfoSupport.
Reimplemented in CodecNOP, DecoderBasic, DSFDecoder, MP3DecoderHelix, MP3DecoderMAD, OpusAudioDecoder, OpusMultiStreamAudioDecoder, VorbisDecoder, WAVDecoder, WavIMADecoder, OggContainerDecoder, and VorbisDecoder.
◆ audioInfoOut()
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 >.
◆ begin() [1/2]
◆ begin() [2/2]
|
|
inlineoverridevirtualinherited |
◆ clearNotifyAudioChange()
| virtual void clearNotifyAudioChange |
( |
| ) |
|
|
inlinevirtualinherited |
◆ decode()
| void decode |
( |
int |
write_len | ) |
|
|
inlineprotected |
Process single bytes so that we can decode a full frame when it is available.
◆ end()
Releases the reserved memory.
Reimplemented from AudioDecoder.
◆ f32_to_s16()
| void f32_to_s16 |
( |
float * |
in, |
|
|
int16_t * |
out, |
|
|
int |
num_samples |
|
) |
| |
|
inlineprotected |
◆ flush()
Decodes the last outstanding data.
◆ getOutput()
◆ isNotifyActive()
Checks if the automatic AudioInfo update is active.
◆ isResultPCM()
| virtual bool isResultPCM |
( |
| ) |
|
|
inlinevirtualinherited |
◆ notifyAudioChange()
◆ operator bool()
| virtual operator bool |
( |
| ) |
|
|
inlinevirtual |
◆ provideResult()
| void provideResult |
( |
int |
samples | ) |
|
|
inlineprotected |
Provides Metadata and PCM data.
◆ removeNotifyAudioChange()
◆ setAudioInfo()
|
|
inlineoverridevirtualinherited |
◆ setBufferLength()
| void setBufferLength |
( |
int |
len | ) |
|
|
inline |
◆ setCodecConfig()
| virtual bool setCodecConfig |
( |
const uint8_t * |
data, |
|
|
size_t |
len |
|
) |
| |
|
inlinevirtualinherited |
Some decoders need e.g. a magic cookie to provide the relevant info for decoding.
Reimplemented in DecoderALAC, and MultiDecoder.
◆ setNotifyActive()
| void setNotifyActive |
( |
bool |
flag | ) |
|
|
inlineinherited |
Deactivate/Reactivate automatic AudioInfo updates: (default is active)
◆ setOutput() [1/3]
◆ setOutput() [2/3]
◆ setOutput() [3/3]
| void setOutput |
( |
Print & |
outStream | ) |
|
|
inlinevirtual |
◆ setSampleRateLimit()
| void setSampleRateLimit |
( |
int |
limit | ) |
|
|
inline |
◆ write()
| size_t write |
( |
const uint8_t * |
data, |
|
|
size_t |
len |
|
) |
| |
|
inlinevirtual |
◆ writeBlocking()
| void writeBlocking |
( |
Print * |
out, |
|
|
uint8_t * |
data, |
|
|
size_t |
len |
|
) |
| |
|
inlineprotectedinherited |
◆ active
◆ buffer
◆ buffer_pos
◆ buffer_size
| size_t buffer_size = 5 * 1024 |
|
protected |
◆ id
custom id to be used by application
◆ info
◆ is_notify_active
| bool is_notify_active = true |
|
protectedinherited |
◆ mp3d
◆ mp3dec_info
| mp3dec_frame_info_t mp3dec_info |
|
protected |
◆ notify_vector
◆ out
◆ p_print
◆ pcm
◆ sample_rate_limit
| int sample_rate_limit = 44100 |
|
protected |
The documentation for this class was generated from the following file: