From e265cec514dfce6bf8ef5927a7b3aae45920e9cc Mon Sep 17 00:00:00 2001 From: Josep Torra Date: Thu, 27 Sep 2012 17:46:27 +0200 Subject: [PATCH] opensles: cap queue size Just in case we want to tweak the sink behaviour with buffer-time and latency-time properties cap the queue size to something reasonable. --- sys/opensles/openslesringbuffer.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sys/opensles/openslesringbuffer.c b/sys/opensles/openslesringbuffer.c index c2af73aa37..295658a6b3 100644 --- a/sys/opensles/openslesringbuffer.c +++ b/sys/opensles/openslesringbuffer.c @@ -348,7 +348,8 @@ _opensles_player_acquire (GstRingBuffer * rb, GstRingBufferSpec * spec) /* Configure audio source */ SLDataLocator_AndroidSimpleBufferQueue loc_bufq = { - SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE, (spec->segtotal >> 1) + SL_DATALOCATOR_ANDROIDSIMPLEBUFFERQUEUE, + MIN (32, (spec->segtotal >> 1)) }; SLDataSource audioSrc = { &loc_bufq, &format }; @@ -439,7 +440,7 @@ _opensles_player_acquire (GstRingBuffer * rb, GstRingBufferSpec * spec) _opensles_player_change_mute (rb); /* Define our queue data buffer */ - thiz->data_segtotal = loc_bufq.numBuffers + 1; + thiz->data_segtotal = loc_bufq.numBuffers; thiz->data = g_malloc (spec->segsize * thiz->data_segtotal); thiz->cursor = 0; @@ -502,7 +503,7 @@ _opensles_player_start (GstRingBuffer * rb) } /* Fill the queue by enqueing buffers */ - for (i = 0; i < (rb->spec.segtotal >> 1); i++) { + for (i = 0; i < thiz->data_segtotal; i++) { _opensles_player_cb (NULL, rb); }