34namespace third_party {
36 class Mp3StreamDecoderImpl;
74 template <
typename Fn>
81 const fl::u8* inptr = data;
82 fl::size bytes_left = len;
83 int frames_decoded = 0;
85 while (bytes_left > 0) {
107 }
else if (bytes_left > 0) {
113 return frames_decoded;
static bool isSupported() FL_NO_EXCEPT
static Mp3Info parseMp3Info(fl::span< const fl::u8 > data, fl::string *error_message=nullptr) FL_NO_EXCEPT
static Mp3DecoderPtr createDecoder(fl::string *error_message=nullptr) FL_NO_EXCEPT
~Mp3Decoder() FL_NO_EXCEPT
void reset() FL_NO_EXCEPT
Mp3Decoder() FL_NO_EXCEPT
bool decodeNextFrame(audio::Sample *out_sample) FL_NO_EXCEPT
bool isReady() const FL_NO_EXCEPT
fl::size getPosition() const FL_NO_EXCEPT
bool hasError(fl::string *msg=nullptr) const FL_NO_EXCEPT
Mp3Info getInfo() const FL_NO_EXCEPT
bool begin(fl::filebuf_ptr stream) FL_NO_EXCEPT
fl::unique_ptr< fl::third_party::Mp3StreamDecoderImpl > mImpl
int decodeFrame(const fl::u8 **inbuf, fl::size *bytes_left) FL_NO_EXCEPT
int decode(const fl::u8 *data, fl::size len, Fn on_frame) FL_NO_EXCEPT
void reset() FL_NO_EXCEPT
fl::unique_ptr< mp3dec_t, Mp3MemoryDeleter< mp3dec_t > > mDecoder
fl::vector< audio::Sample > decodeToAudioSamples(const fl::u8 *data, fl::size len) FL_NO_EXCEPT
Mp3Minimp3Decoder() FL_NO_EXCEPT
int findSyncWord(const fl::u8 *buf, fl::size len) FL_NO_EXCEPT
fl::unique_ptr< mp3dec_scratch_t, Mp3MemoryDeleter< mp3dec_scratch_t > > mScratch
fl::unique_ptr< fl::i16[], Mp3MemoryDeleter< fl::i16 > > mPcmBuffer
~Mp3Minimp3Decoder() FL_NO_EXCEPT
fl::UISlider offset("Offset", 0.0f, 0.0f, 1.0f, 0.01f)
u8 u8 fract8 blur_amount FL_NO_EXCEPT
expected< T, E > result
Alias for expected (Rust-style naming)
fl::shared_ptr< filebuf > filebuf_ptr
fl::shared_ptr< Mp3Decoder > Mp3DecoderPtr
FASTLED_SHARED_PTR(Channel)
Base definition for an LED controller.
Mp3Info() FL_NO_EXCEPT=default