@@ -91,6 +91,12 @@ class SnapOutput : public AudioInfoSupport {
91
91
resample.setOutput (output);
92
92
vol_stream.setStream (resample); // adjust volume
93
93
decoder_stream.setStream (&vol_stream); // decode to pcm
94
+
95
+ // synchronized audio information
96
+ AudioInfo info = output.audioInfo ();
97
+ resample.begin (info, info);
98
+ vol_stream.setAudioInfo (info);
99
+ decoder_stream.setAudioInfo (info);
94
100
}
95
101
96
102
AudioOutput &getOutput () { return *out; }
@@ -122,9 +128,12 @@ class SnapOutput : public AudioInfoSupport {
122
128
123
129
// writes the audio data to the decoder
124
130
size_t audioWrite (const void *src, size_t size) {
125
- ESP_LOGD (TAG, " %zu" , size);
131
+ ESP_LOGI (TAG, " audioWrite: %zu" , size);
126
132
time_last_write = millis ();
127
133
size_t result = decoder_stream.write ((const uint8_t *)src, size);
134
+ if (result != size){
135
+ ESP_LOGW (TAG, " Could not write all data %zu -> %zu" , size, result);
136
+ }
128
137
129
138
return result;
130
139
}
@@ -198,6 +207,9 @@ class SnapOutput : public AudioInfoSupport {
198
207
return false ;
199
208
}
200
209
210
+ // determine default audio info from output
211
+ audio_info = out->audioInfo ();
212
+
201
213
// open volume control: allow amplification
202
214
auto vol_cfg = vol_stream.defaultConfig ();
203
215
vol_cfg.copyFrom (audio_info);
0 commit comments