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
This commit is contained in:
Pierre Ossman 2006-02-17 15:42:47 +00:00
parent 6f9a367abc
commit 45700da4eb
6 changed files with 98 additions and 11 deletions

View file

@ -35,6 +35,7 @@
#include <polypcore/native-common.h>
#include <polypcore/strlist.h>
#include <polypcore/mcalign.h>
#include <polypcore/memblockq.h>
#include "client-conf.h"
@ -98,6 +99,8 @@ struct pa_stream {
pa_usec_t previous_ipol_time;
pa_stream_state_t state;
pa_mcalign *mcalign;
pa_memchunk peek_memchunk;
pa_memblockq *record_memblockq;
int interpolate;
int corked;
@ -110,7 +113,7 @@ struct pa_stream {
void (*state_callback)(pa_stream*c, void *userdata);
void *state_userdata;
void (*read_callback)(pa_stream *p, const void*data, size_t length, void *userdata);
void (*read_callback)(pa_stream *p, size_t length, void *userdata);
void *read_userdata;
void (*write_callback)(pa_stream *p, size_t length, void *userdata);