make memblockq merge chunks

git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@58 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
Lennart Poettering 2004-07-10 19:23:45 +00:00
parent 5ee3a59469
commit 025389693d
3 changed files with 14 additions and 3 deletions

View file

@ -82,6 +82,18 @@ void pa_memblockq_push(struct pa_memblockq* bq, const struct pa_memchunk *chunk,
struct memblock_list *q; struct memblock_list *q;
assert(bq && chunk && chunk->memblock && chunk->length && (chunk->length % bq->base) == 0); assert(bq && chunk && chunk->memblock && chunk->length && (chunk->length % bq->base) == 0);
if (bq->blocks_tail && bq->blocks_tail->chunk.memblock == chunk->memblock) {
/* Try to merge memory chunks */
if (bq->blocks_tail->chunk.index+bq->blocks_tail->chunk.length == chunk->index) {
bq->blocks_tail->chunk.length += chunk->length;
bq->current_length += chunk->length;
/* fprintf(stderr, __FILE__": merge succeeded: %u\n", chunk->length);*/
return;
}
}
q = malloc(sizeof(struct memblock_list)); q = malloc(sizeof(struct memblock_list));
assert(q); assert(q);

View file

@ -394,7 +394,7 @@ static int esd_proto_all_info(struct connection *c, esd_proto_t request, const v
continue; continue;
assert(t >= s+k+k); assert(t >= s+k+k);
if (conn->sink_input) { if (conn->sink_input) {
rate = conn->sink_input->sample_spec.rate; rate = conn->sink_input->sample_spec.rate;
volume = (conn->sink_input->volume*0xFF)/0x100; volume = (conn->sink_input->volume*0xFF)/0x100;

View file

@ -9,8 +9,6 @@
- move more stuff from module-oss[-dma] to liboss-util - move more stuff from module-oss[-dma] to liboss-util
- merge memchunks in memblockq
- create libstatustext, libsocketutil - create libstatustext, libsocketutil
- prefix modules/libraries with pa_ - prefix modules/libraries with pa_
@ -29,6 +27,7 @@
- autoloading/autounloading - autoloading/autounloading
- slp/rendezvous - slp/rendezvous
- doxygen - doxygen
- make mcalign merge chunks
drivers: drivers:
- libao - libao