diff options
author | Lennart Poettering <lennart@poettering.net> | 2004-11-21 19:39:46 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2004-11-21 19:39:46 +0000 |
commit | d45abba9aa4090ebeaf09ec9ec324709e04a1bbf (patch) | |
tree | 88bd15b4123bb82bbbf6236673941f613ca8517e /polyp/memblockq.c | |
parent | 4583c22bfd490e2cdc7ebb151a566c85987bd791 (diff) |
calculate buffer sizes from sample spec
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@306 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'polyp/memblockq.c')
-rw-r--r-- | polyp/memblockq.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/polyp/memblockq.c b/polyp/memblockq.c index ff16f627..16c0da8e 100644 --- a/polyp/memblockq.c +++ b/polyp/memblockq.c @@ -68,18 +68,21 @@ struct pa_memblockq* pa_memblockq_new(size_t maxlength, size_t tlength, size_t b bq->tlength = ((tlength+base-1)/base)*base; if (!bq->tlength || bq->tlength >= bq->maxlength) bq->tlength = bq->maxlength; + + bq->minreq = (minreq/base)*base; + if (bq->minreq == 0) + bq->minreq = 1; bq->prebuf = (prebuf == (size_t) -1) ? bq->maxlength/2 : prebuf; bq->prebuf = (bq->prebuf/base)*base; if (bq->prebuf > bq->maxlength) bq->prebuf = bq->maxlength; + if (bq->prebuf > bq->tlength - bq->minreq) + bq->prebuf = bq->tlength - bq->minreq; + bq->orig_prebuf = bq->prebuf; - bq->minreq = (minreq/base)*base; - if (bq->minreq == 0) - bq->minreq = 1; - pa_log(__FILE__": memblockq sanitized: maxlength=%u, tlength=%u, base=%u, prebuf=%u, minreq=%u\n", bq->maxlength, bq->tlength, bq->base, bq->prebuf, bq->minreq); bq->mcalign = NULL; |