4 is the "typical" number of buffers defined by Android's OpenSL ES
implementation, and its code is optimized for this. Also because we
have our own ringbuffer around this, we will always have enough
buffering on our side already.
Allows for more efficient processing.
SLresult result;
SLDataFormat_PCM format;
- /* Configure audio source */
+ /* Configure audio source
+ * 4 buffers is the "typical" size as optimized inside Android's
+ * OpenSL ES, see frameworks/wilhelm/src/itfstruct.h BUFFER_HEADER_TYPICAL
+ */
SLDataLocator_AndroidSimpleBufferQueue loc_bufq = {
- SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE,
- MIN (32, (spec->segtotal >> 1))
+ SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE, MIN (4, spec->segtotal)
};
SLDataSource audioSrc = { &loc_bufq, &format };