Skip to content

Commit 8f20165

Browse files
committed
Early exit on decode bug fix
1 parent aded8ea commit 8f20165

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

  • AudioCoder/src/main/java/org/operatorfoundation/audiocoder

AudioCoder/src/main/java/org/operatorfoundation/audiocoder/WSPRStation.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)