diff --git a/src/audio/soundcore-opensles.c b/src/audio/soundcore-opensles.c index eb3cba44..9591b640 100644 --- a/src/audio/soundcore-opensles.c +++ b/src/audio/soundcore-opensles.c @@ -417,7 +417,7 @@ static long opensl_createSoundBuffer(const AudioContext_s *audio_context, INOUT unsigned long bufferSize = opensles_audio_backend.systemSettings.stereoBufferSizeSamples * opensles_audio_backend.systemSettings.bytesPerSample * NUM_CHANNELS; if (ctx->recycledVoices) { - LOG("Recycling previously SLVoice ..."); + LOG("Recycling previous SLVoice ..."); voice = ctx->recycledVoices; ctx->recycledVoices = voice->next; uint8_t *prevBuffer = voice->ringBuffer; diff --git a/src/audio/speaker.c b/src/audio/speaker.c index f66d5267..e76e70ca 100644 --- a/src/audio/speaker.c +++ b/src/audio/speaker.c @@ -307,6 +307,13 @@ static unsigned int _submit_samples_buffer(const unsigned long num_channel_sampl break; } + unsigned long maxSpeakerBytes = channelsSampleRateHz * sizeof(int16_t); + + if (system_buffer_size > maxSpeakerBytes) { + RELEASE_LOG("AVOIDING BUFOVER..."); + system_buffer_size = maxSpeakerBytes; + } + memcpy(system_samples_buffer, &samples_buffer[samples_idx], system_buffer_size); err = speakerBuffer->Unlock(speakerBuffer, system_buffer_size);