File tree Expand file tree Collapse file tree
AudioCoder/src/main/java/org/operatorfoundation/audiocoder Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -307,12 +307,19 @@ class WSPRStation(
307307 val audioCollectionStartTime = System .currentTimeMillis()
308308 var totalSamplesCollected = 0
309309
310- while (System .currentTimeMillis() - audioCollectionStartTime < AUDIO_COLLECTION_DURATION_MILLISECONDS )
310+ // Collect until we have enough samples, or the time ceiling is exceeded
311+ while (signalProcessor.audioBuffer.size < signalProcessor.getRequiredDecodeSamples())
311312 {
313+ // Don't collect indefinitely if something is wrong
314+ if (System .currentTimeMillis() - audioCollectionStartTime > AUDIO_COLLECTION_DURATION_MILLISECONDS + 5000L )
315+ {
316+ Timber .w(" Audio collection timed out before required samples reached" )
317+ break
318+ }
319+
312320 val audioChunk = audioSource.readAudioChunk(AUDIO_CHUNK_DURATION_MILLISECONDS )
313321 signalProcessor.addSamples(audioChunk)
314322 totalSamplesCollected + = audioChunk.size
315-
316323 delay(AUDIO_COLLECTION_PAUSE_MILLISECONDS )
317324 }
318325
You can’t perform that action at this time.
0 commit comments