diff options
author | Pierre Ossman <ossman@cendio.se> | 2016-05-19 15:26:08 +0200 |
---|---|---|
committer | Arun Raghavan <arun@arunraghavan.net> | 2016-07-22 14:44:35 +0530 |
commit | eeec52caa0622504f7a0d065dd61db1dbf5a9569 (patch) | |
tree | f4912aefbd0094a0798551335e0d75fdd1ed8ba2 /src/pulsecore/memblockq.c | |
parent | edff1b2204587925178ffd00736afdbcdfb8778f (diff) | |
download | pulseaudio-eeec52caa0622504f7a0d065dd61db1dbf5a9569.tar.gz |
memblockq: move minreq handling in to memblockq
Having it handled in the callers proved to be a poor fit as it
became difficult to handle a shrinking minreq sanely. It could end
up in a state where the request was never sent downstream to the
client.
Diffstat (limited to 'src/pulsecore/memblockq.c')
-rw-r--r-- | src/pulsecore/memblockq.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/pulsecore/memblockq.c b/src/pulsecore/memblockq.c index d283ed255..f660ffaed 100644 --- a/src/pulsecore/memblockq.c +++ b/src/pulsecore/memblockq.c @@ -840,6 +840,10 @@ size_t pa_memblockq_pop_missing(pa_memblockq *bq) { if (bq->missing <= 0) return 0; + if (((size_t) bq->missing < bq->minreq) && + !pa_memblockq_prebuf_active(bq)) + return 0; + l = (size_t) bq->missing; bq->requested += bq->missing; |