mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-03 09:01:50 -05:00
some more work
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@23 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
993d1bce74
commit
382e7aefd4
14 changed files with 147 additions and 36 deletions
|
|
@ -16,8 +16,8 @@ struct memblockq {
|
|||
struct memblock_list *blocks, *blocks_tail;
|
||||
unsigned n_blocks;
|
||||
size_t total_length, maxlength, base, prebuf;
|
||||
int measure_latency;
|
||||
uint32_t latency;
|
||||
int measure_delay;
|
||||
uint32_t delay;
|
||||
};
|
||||
|
||||
struct memblockq* memblockq_new(size_t maxlength, size_t base, size_t prebuf) {
|
||||
|
|
@ -38,8 +38,8 @@ struct memblockq* memblockq_new(size_t maxlength, size_t base, size_t prebuf) {
|
|||
|
||||
assert(bq->maxlength >= base);
|
||||
|
||||
bq->measure_latency = 1;
|
||||
bq->latency = 0;
|
||||
bq->measure_delay = 0;
|
||||
bq->delay = 0;
|
||||
|
||||
return bq;
|
||||
}
|
||||
|
|
@ -64,7 +64,7 @@ void memblockq_push(struct memblockq* bq, struct memchunk *chunk, size_t delta)
|
|||
q = malloc(sizeof(struct memblock_list));
|
||||
assert(q);
|
||||
|
||||
if (bq->measure_latency)
|
||||
if (bq->measure_delay)
|
||||
gettimeofday(&q->stamp, NULL);
|
||||
else
|
||||
timerclear(&q->stamp);
|
||||
|
|
@ -152,8 +152,8 @@ void memblockq_drop(struct memblockq *bq, size_t length) {
|
|||
if (l > bq->blocks->chunk.length)
|
||||
l = bq->blocks->chunk.length;
|
||||
|
||||
if (bq->measure_latency)
|
||||
bq->latency = age(&bq->blocks->stamp);
|
||||
if (bq->measure_delay)
|
||||
bq->delay = age(&bq->blocks->stamp);
|
||||
|
||||
bq->blocks->chunk.index += l;
|
||||
bq->blocks->chunk.length -= l;
|
||||
|
|
@ -211,6 +211,12 @@ int memblockq_is_writable(struct memblockq *bq, size_t length) {
|
|||
return bq->total_length + length <= bq->maxlength;
|
||||
}
|
||||
|
||||
uint32_t memblockq_get_latency(struct memblockq *bq) {
|
||||
return bq->latency;
|
||||
uint32_t memblockq_get_delay(struct memblockq *bq) {
|
||||
assert(bq);
|
||||
return bq->delay;
|
||||
}
|
||||
|
||||
uint32_t memblockq_get_length(struct memblockq *bq) {
|
||||
assert(bq);
|
||||
return bq->total_length;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue