16#ifndef FLAC_READ_TIMEOUT_MS
17#define FLAC_READ_TIMEOUT_MS 10000
20#ifndef FLAC_BUFFER_SIZE
21#define FLAC_BUFFER_SIZE (8 * 1024)
66 LOGE(
"ERROR: allocating decoder");
70 LOGI(
"FLAC__stream_decoder_new");
122 LOGW(
"FLAC not active");
126 LOGE(
"setInput was not called");
130 LOGE(
"FLAC__stream_decoder_process_single");
145 const char *
mime()
override {
return is_ogg ?
"audio/ogg; codecs=flac" :
"audio/flac"; }
176 LOGD(
"read_callback: %d", (
int) *bytes);
178 if (self ==
nullptr || !self->
is_active) {
183 *bytes = self->
readBytes(result_buffer, *bytes);
184 LOGD(
"-> %d", (
int) *bytes);
185 if (self->
isEof(*bytes)){
208 LOGD(
"write_callback: %u", (
unsigned)frame->header.blocksize);
212 if (self->
info != actual_info){
213 self->
info = actual_info;
217 LOGI(
"Converting from %d bits",
bps);
219 self->
info = actual_info;
229 for (
int j = 0;
j < frame->header.blocksize;
j++) {
230 for (
int i = 0; i < actual_info.
channels; i++) {
238 for (
int j = 0;
j < frame->header.blocksize;
j++) {
239 for (
int i = 0; i < actual_info.
channels; i++) {
246 for (
int j = 0;
j < frame->header.blocksize;
j++) {
247 for (
int i = 0; i < actual_info.
channels; i++) {
254 for (
int j = 0;
j < frame->header.blocksize;
j++) {
255 for (
int i = 0; i < actual_info.
channels; i++) {
262 LOGE(
"Unsupported bps: %d",
bps);
309 const char *
mime()
override {
return "audio/flac"; }
323 LOGE(
"FLAC__stream_encoder_new");
373 LOGD(
"write: %zu", len);
380 samples = len /
sizeof(
int16_t);
388 samples = len /
sizeof(
int32_t);
402 LOGE(
"FLAC__stream_encoder_process_interleaved");
428 LOGE(
"write_callback %zu -> %zu", bytes, written);
437 for (
int j=0;
j<samples;
j++){
#define LOGW(...)
Definition AudioLoggerIDF.h:29
#define TRACEI()
Definition AudioLoggerIDF.h:32
#define TRACED()
Definition AudioLoggerIDF.h:31
#define LOGI(...)
Definition AudioLoggerIDF.h:28
#define LOGD(...)
Definition AudioLoggerIDF.h:27
#define LOGE(...)
Definition AudioLoggerIDF.h:30
#define FLAC_READ_TIMEOUT_MS
Definition CodecFLAC.h:17
virtual size_t write(const uint8_t *data, size_t len)
Definition Arduino.h:120
virtual size_t readBytes(uint8_t *data, size_t len)
Definition Arduino.h:140