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;
#include "strlist.h"
#include "mcalign.h"
-#define DEFAULT_TLENGTH (44100*2*2/2) //(10240*8)
-#define DEFAULT_MAXLENGTH ((DEFAULT_TLENGTH*3)/2)
-#define DEFAULT_MINREQ 512
-#define DEFAULT_PREBUF (DEFAULT_TLENGTH-DEFAULT_MINREQ)
-#define DEFAULT_FRAGSIZE 1024
-
#define DEFAULT_TIMEOUT (10)
struct pa_context {
if (attr)
s->buffer_attr = *attr;
else {
- s->buffer_attr.maxlength = DEFAULT_MAXLENGTH;
- s->buffer_attr.tlength = DEFAULT_TLENGTH;
- s->buffer_attr.prebuf = DEFAULT_PREBUF;
- s->buffer_attr.minreq = DEFAULT_MINREQ;
- s->buffer_attr.fragsize = DEFAULT_FRAGSIZE;
+ /* half a second */
+ s->buffer_attr.tlength = pa_bytes_per_second(&s->sample_spec)/2;
+ s->buffer_attr.maxlength = (s->buffer_attr.tlength*3)/2;
+ s->buffer_attr.minreq = s->buffer_attr.tlength/100;
+ s->buffer_attr.prebuf = s->buffer_attr.tlength - s->buffer_attr.minreq;
+ s->buffer_attr.fragsize = s->buffer_attr.tlength/100;
}
pa_stream_set_state(s, PA_STREAM_CREATING);