Skip to content

Commit daee734

Browse files
committed
Cleanup FLACDecoderFoxen
1 parent e2d02aa commit daee734

File tree

1 file changed

+21
-31
lines changed

1 file changed

+21
-31
lines changed

src/AudioTools/AudioCodecs/CodecFLACFoxen.h

Lines changed: 21 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace audio_tools {
1010
#define FOXEN_OUT_BUFFER_SIZE 1024 * 4
1111

1212
/**
13-
* @brief Foxen FLAC Decoder.
13+
* @brief Foxen FLAC Decoder using https://github.com/astoeckel/libfoxenflac
1414
* @ingroup codecs
1515
* @ingroup decoder
1616
* @author Phil Schatzmann
@@ -49,10 +49,9 @@ class FLACDecoderFoxen : public AudioDecoder {
4949
LOGE("not enough memory");
5050
if (is_stop_on_error) stop();
5151
}
52-
if (buffer.size() == 0) {
53-
buffer.resize(in_buffer_size);
54-
out.resize(FOXEN_OUT_BUFFER_SIZE);
55-
}
52+
53+
write_buffer.resize(in_buffer_size);
54+
out.resize(out_buffer_size);
5655

5756
return is_active;
5857
}
@@ -64,7 +63,7 @@ class FLACDecoderFoxen : public AudioDecoder {
6463
foxen_data.resize(0);
6564
flac = nullptr;
6665
}
67-
buffer.resize(0);
66+
write_buffer.resize(0);
6867
out.resize(0);
6968
is_active = false;
7069
}
@@ -74,15 +73,15 @@ class FLACDecoderFoxen : public AudioDecoder {
7473
// no processing if not active
7574
if (!is_active) return 0;
7675

77-
size_t result = buffer.writeArray(data, len);
78-
LOGD("buffer availabe: %d", buffer.available());
76+
size_t result = write_buffer.writeArray(data, len);
77+
LOGD("write_buffer availabe: %d", write_buffer.available());
7978

80-
while (buffer.available() > 0) {
79+
while (write_buffer.available() > 0) {
8180
if (!decode()) break;
8281
}
8382

8483
// if the buffer is full we could not decode anything
85-
if (buffer.available() == buffer.size()) {
84+
if (write_buffer.available() == write_buffer.size()) {
8685
LOGE("Decoder did not consume any data");
8786
if (is_stop_on_error) stop();
8887
}
@@ -96,33 +95,24 @@ class FLACDecoderFoxen : public AudioDecoder {
9695
operator bool() override { return is_active; }
9796

9897
/// Defines the input buffer size (default is 2k)
99-
void setInBufferSize(int size){
100-
in_buffer_size = size;
101-
}
98+
void setInBufferSize(int size) { in_buffer_size = size; }
10299

103-
/// Defines the number of 32 bit samples for providing the result (default is 4k)
104-
void setOutBufferSize(int size){
105-
out_buffer_size = size;
106-
}
100+
/// Defines the number of 32 bit samples for providing the result (default is
101+
/// 4k)
102+
void setOutBufferSize(int size) { out_buffer_size = size; }
107103

108104
/// Defines the maximum FLAC blocksize: drives the buffer allocation
109-
void setMaxBlockSize(int size){
110-
max_block_size = size;
111-
}
105+
void setMaxBlockSize(int size) { max_block_size = size; }
112106

113107
/// Defines the maximum number of channels: drives the buffer allocation
114-
void setMaxChannels(int ch){
115-
max_channels = ch;
116-
}
108+
void setMaxChannels(int ch) { max_channels = ch; }
117109

118110
/// Select between 16 and 32 bit output: the default is 16 bits
119-
void set32Bit(bool flag) {
120-
is_convert_to_16 = !flag;
121-
}
111+
void set32Bit(bool flag) { is_convert_to_16 = !flag; }
122112

123113
protected:
124114
fx_flac_t *flac = nullptr;
125-
SingleBuffer<uint8_t> buffer{0};
115+
SingleBuffer<uint8_t> write_buffer{0};
126116
Vector<int32_t> out;
127117
Vector<uint8_t> foxen_data{0};
128118
bool is_active = false;
@@ -138,10 +128,10 @@ class FLACDecoderFoxen : public AudioDecoder {
138128
TRACED();
139129
if (flac == nullptr) return false;
140130
uint32_t out_len = out.size();
141-
uint32_t buf_len = buffer.available();
131+
uint32_t buf_len = write_buffer.available();
142132
uint32_t buf_len_result = buf_len;
143-
int rc = fx_flac_process(flac, buffer.data(), &buf_len_result, out.data(),
144-
&out_len);
133+
int rc = fx_flac_process(flac, write_buffer.data(), &buf_len_result,
134+
out.data(), &out_len);
145135
// assert(out_len <= FOXEN_OUT_BUFFER_SIZE);
146136

147137
switch (rc) {
@@ -168,7 +158,7 @@ class FLACDecoderFoxen : public AudioDecoder {
168158
LOGD("processed: %d bytes of %d -> %d samples", buf_len_result, buf_len,
169159
out_len);
170160
// removed processed bytes from buffer
171-
buffer.clearArray(buf_len_result);
161+
write_buffer.clearArray(buf_len_result);
172162
return buf_len_result > 0 || out_len > 0;
173163
}
174164

0 commit comments

Comments
 (0)