19 #ifdef USE_AUDIO_FLAC_SUPPORT 20 #include <flac_decoder.h> 22 #ifdef USE_AUDIO_MP3_SUPPORT 23 #include <mp3_decoder.h> 25 #include <wav_decoder.h> 56 AudioDecoder(
size_t input_buffer_size,
size_t output_buffer_size);
64 esp_err_t add_source(std::weak_ptr<RingBuffer> &input_ring_buffer);
69 esp_err_t add_sink(std::weak_ptr<RingBuffer> &output_ring_buffer);
104 #ifdef USE_AUDIO_FLAC_SUPPORT 108 #ifdef USE_AUDIO_MP3_SUPPORT 120 size_t free_buffer_required_{0};
121 size_t wav_bytes_left_{0};
123 uint32_t potentially_failed_count_{0};
124 bool end_of_file_{
false};
125 bool wav_has_known_end_{
false};
127 bool pause_output_{
false};
129 uint32_t accumulated_frames_written_{0};
130 uint32_t playback_ms_{0};
void set_pause_output_state(bool pause_state)
Pauses sending resampled audio to the sink.
std::unique_ptr< esp_audio_libs::flac::FLACDecoder > flac_decoder_
esp_audio_libs::helix_decoder::HMP3Decoder mp3_decoder_
std::unique_ptr< AudioSinkTransferBuffer > output_transfer_buffer_
const optional< audio::AudioStreamInfo > & get_audio_stream_info() const
Gets the audio stream information, if it has been decoded from the files header.
std::unique_ptr< AudioSourceTransferBuffer > input_transfer_buffer_
std::unique_ptr< esp_audio_libs::wav_decoder::WAVDecoder > wav_decoder_
Implementation of SPI Controller mode.
uint32_t get_playback_ms() const
Returns the duration of audio (in milliseconds) decoded and sent to the sink.