Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions android/sound.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -272,16 +272,17 @@ oboe::DataCallbackResult CSound::onAudioInput ( oboe::AudioStream* oboeStream, v

void CSound::addOutputData ( int channel_count )
{
QMutexLocker locker ( &MutexAudioProcessCallback );
QMutexLocker locker ( &MutexAudioProcessCallback );
const std::size_t bufsize = (std::size_t) iOboeBufferSizeMono * channel_count;

// Only copy data if we have data to copy, otherwise fill with silence
if ( vecsTmpInputAudioSndCrdStereo.empty() )
{
// prime output stream buffer with silence
vecsTmpInputAudioSndCrdStereo.resize ( iOboeBufferSizeMono * channel_count, 0 );
vecsTmpInputAudioSndCrdStereo.resize ( bufsize, 0 );
}

mOutBuffer.Put ( vecsTmpInputAudioSndCrdStereo, iOboeBufferSizeMono * channel_count );
mOutBuffer.Put ( vecsTmpInputAudioSndCrdStereo, bufsize );

if ( mOutBuffer.isFull() )
{
Expand All @@ -296,9 +297,9 @@ oboe::DataCallbackResult CSound::onAudioOutput ( oboe::AudioStream* oboeStream,

QMutexLocker locker ( &MutexAudioProcessCallback );

std::size_t to_write = (std::size_t) numFrames * oboeStream->getChannelCount();
std::size_t count = std::min ( (std::size_t) mOutBuffer.GetAvailData(), to_write );
CVector<int16_t> outBuffer ( count );
const std::size_t to_write = (std::size_t) numFrames * oboeStream->getChannelCount();
const std::size_t count = std::min ( (std::size_t) mOutBuffer.GetAvailData(), to_write );
CVector<int16_t> outBuffer ( count );

mOutBuffer.Get ( outBuffer, count );

Expand Down