diff options
author | Lennart Poettering <lennart@poettering.net> | 2007-09-16 21:58:04 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2007-09-16 21:58:04 +0000 |
commit | 5df7a85473f1c06a8baf6a4d81433bde18f86714 (patch) | |
tree | 5a601ac638810baa625738f5759edfe1e96e52a8 | |
parent | ac1ee4e6754f3aa287bb4e3ede03c59d1369cd50 (diff) |
split memblocks into multiples of the mempool tile size
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1832 fefdeb5f-60dc-0310-8127-8f9354f1896f
-rw-r--r-- | src/pulsecore/pstream.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/pulsecore/pstream.c b/src/pulsecore/pstream.c index 33bc520c..333012c0 100644 --- a/src/pulsecore/pstream.c +++ b/src/pulsecore/pstream.c @@ -40,16 +40,17 @@ #include <netinet/in.h> #endif -#include "winsock.h" #include <pulse/xmalloc.h> +#include <pulsecore/winsock.h> #include <pulsecore/queue.h> #include <pulsecore/log.h> #include <pulsecore/core-scache.h> #include <pulsecore/creds.h> #include <pulsecore/refcnt.h> #include <pulsecore/flist.h> +#include <pulsecore/macro.h> #include "pstream.h" @@ -83,7 +84,6 @@ typedef uint32_t pa_pstream_descriptor[PA_PSTREAM_DESCRIPTOR_MAX]; #define PA_PSTREAM_DESCRIPTOR_SIZE (PA_PSTREAM_DESCRIPTOR_MAX*sizeof(uint32_t)) #define FRAME_SIZE_MAX_ALLOW PA_SCACHE_ENTRY_SIZE_MAX /* allow uploading a single sample in one frame at max */ -#define FRAME_SIZE_MAX_USE (1024*64) PA_STATIC_FLIST_DECLARE(items, 0, pa_xfree); @@ -351,6 +351,7 @@ void pa_pstream_send_packet(pa_pstream*p, pa_packet *packet, const pa_creds *cre void pa_pstream_send_memblock(pa_pstream*p, uint32_t channel, int64_t offset, pa_seek_mode_t seek_mode, const pa_memchunk *chunk) { size_t length, idx; + size_t bsm; pa_assert(p); pa_assert(PA_REFCNT_VALUE(p) > 0); @@ -362,6 +363,8 @@ void pa_pstream_send_memblock(pa_pstream*p, uint32_t channel, int64_t offset, pa idx = 0; length = chunk->length; + + bsm = pa_mempool_block_size_max(p->mempool); while (length > 0) { struct item_info *i; @@ -371,7 +374,7 @@ void pa_pstream_send_memblock(pa_pstream*p, uint32_t channel, int64_t offset, pa i = pa_xnew(struct item_info, 1); i->type = PA_PSTREAM_ITEM_MEMBLOCK; - n = length < FRAME_SIZE_MAX_USE ? length : FRAME_SIZE_MAX_USE; + n = MIN(length, bsm); i->chunk.index = chunk->index + idx; i->chunk.length = n; i->chunk.memblock = pa_memblock_ref(chunk->memblock); |