if (wait) {
int32_t availableBytes;
vlc_mutex_lock(&p_sys->lock);
- while (TPCircularBufferTail(&p_sys->circular_buffer, &availableBytes) != NULL) {
+ TPCircularBufferTail(&p_sys->circular_buffer, &availableBytes);
+ while (availableBytes > 0) {
vlc_cond_wait(&p_sys->cond, &p_sys->lock);
+ TPCircularBufferTail(&p_sys->circular_buffer, &availableBytes);
}
vlc_mutex_unlock(&p_sys->lock);
int bytesToCopy = ioData->mBuffers[0].mDataByteSize;
Float32 *targetBuffer = (Float32*)ioData->mBuffers[0].mData;
+ vlc_mutex_lock(&p_sys->lock);
/* Pull audio from buffer */
int32_t availableBytes;
Float32 *buffer = TPCircularBufferTail(&p_sys->circular_buffer, &availableBytes);
TPCircularBufferConsume(&p_sys->circular_buffer, __MIN(bytesToCopy, availableBytes));
}
- vlc_mutex_lock(&p_sys->lock);
vlc_cond_signal(&p_sys->cond);
vlc_mutex_unlock(&p_sys->lock);
int bytesToCopy = outOutputData->mBuffers[p_sys->i_stream_index].mDataByteSize;
char *targetBuffer = outOutputData->mBuffers[p_sys->i_stream_index].mData;
+ vlc_mutex_lock(&p_sys->lock);
/* Pull audio from buffer */
int32_t availableBytes;
char *buffer = TPCircularBufferTail(&p_sys->circular_buffer, &availableBytes);
TPCircularBufferConsume(&p_sys->circular_buffer, __MIN(bytesToCopy, availableBytes));
}
- vlc_mutex_lock(&p_sys->lock);
vlc_cond_signal(&p_sys->cond);
vlc_mutex_unlock(&p_sys->lock);