9#define FOXEN_IN_BUFFER_SIZE 1024 * 2
10#define FOXEN_OUT_BUFFER_SIZE 1024 * 4
27 bool convertTo16Bits =
true,
bool releaseOnEnd =
false) {
44 if (
flac !=
nullptr) {
49 LOGE(
"not enough memory");
67 size_t write(
const uint8_t *data,
size_t len)
override {
68 LOGD(
"write: %d", len);
81 LOGE(
"Decoder did not consume any data");
85 LOGD(
"write: %d -> %d", len, result);
129 uint32_t buf_len_result = buf_len;
135 case FLAC_END_OF_METADATA: {
140 LOGE(
"FLAC decoder in error state!");
146 LOGD(
"Providing data: %d samples", out_len);
155 LOGD(
"processed: %d bytes of %d -> %d samples", buf_len_result, buf_len,
159 return buf_len_result > 0 || out_len > 0;
171 int16_t *out16 = (int16_t *)
out.
data();
172 for (
int j = 0; j < out_len; j++) {
173 out16[j] =
out.
data()[j] >> 16;
176 LOGI(
"writeBlocking: %d", out_len *
sizeof(int16_t));
181 bits_eff = fx_flac_get_streaminfo(
flac, FLAC_KEY_SAMPLE_SIZE);
182 int info_blocksize = fx_flac_get_streaminfo(
flac, FLAC_KEY_MAX_BLOCK_SIZE);
185 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