diff options
author | Pierre Ossman <ossman@cendio.se> | 2006-02-17 15:42:47 +0000 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2006-02-17 15:42:47 +0000 |
commit | 45700da4ebf2986126d7a4d6889c028599fd3085 (patch) | |
tree | 8929a905c9e837eb2b5651df2df65e9e90243ba6 /src/polyp/context.c | |
parent | 6f9a367abc8d8949e980d30645420fb31f8eb6af (diff) |
Have a memblock queue on the client side during recording. This makes the
record callback optional in stead of mandatory.
For applications that wish to retain the old behaviour, simply call
pa_stream_peek() followed by pa_stream_drop() in the callback.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@507 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/polyp/context.c')
-rw-r--r-- | src/polyp/context.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/polyp/context.c b/src/polyp/context.c index b7f7eb99..c40041c5 100644 --- a/src/polyp/context.c +++ b/src/polyp/context.c @@ -273,11 +273,11 @@ static void pstream_memblock_callback(pa_pstream *p, uint32_t channel, PA_GCC_UN if (pa_mcalign_pop(s->mcalign, &t) < 0) break; - - if (s->read_callback) { - s->read_callback(s, (uint8_t*) t.memblock->data + t.index, t.length, s->read_userdata); - s->counter += chunk->length; - } + + assert(s->record_memblockq); + pa_memblockq_push(s->record_memblockq, &t, t.length); + if (s->read_callback) + s->read_callback(s, pa_stream_readable_size(s), s->read_userdata); pa_memblock_unref(t.memblock); } |