9#define FOXEN_IN_BUFFER_SIZE 1024 * 2
10#define FOXEN_OUT_BUFFER_SIZE 1024 * 4
27 bool convertTo16Bits =
true,
bool releaseOnEnd =
false) {
37 const char *
mime()
override {
return "audio/flac"; }
46 if (
flac !=
nullptr) {
51 LOGE(
"not enough memory");
69 size_t write(
const uint8_t *data,
size_t len)
override {
70 LOGD(
"write: %d", len);
83 LOGE(
"Decoder did not consume any data");
87 LOGD(
"write: %d -> %d", len, result);
131 uint32_t buf_len_result = buf_len;
137 case FLAC_END_OF_METADATA: {
142 LOGE(
"FLAC decoder in error state!");
148 LOGD(
"Providing data: %d samples", out_len);
157 LOGD(
"processed: %d bytes of %d -> %d samples", buf_len_result, buf_len,
161 return buf_len_result > 0 || out_len > 0;
173 int16_t *out16 = (int16_t *)
out.
data();
174 for (
int j = 0; j < out_len; j++) {
175 out16[j] =
out.
data()[j] >> 16;
178 LOGI(
"writeBlocking: %d", out_len *
sizeof(int16_t));
183 bits_eff = fx_flac_get_streaminfo(
flac, FLAC_KEY_SAMPLE_SIZE);
184 int info_blocksize = fx_flac_get_streaminfo(
flac, FLAC_KEY_MAX_BLOCK_SIZE);
187 LOGI(
"blocksize: %d", info_blocksize);
#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 FOXEN_OUT_BUFFER_SIZE
Definition CodecFLACFoxen.h:10
#define FOXEN_IN_BUFFER_SIZE
Definition CodecFLACFoxen.h:9
void stop()
stops any further processing by spinning in an endless loop
Definition AudioRuntime.h:71