[pulseaudio-discuss] Processing audio data in module-alsa-sink
Baek Chang
breakchange at gmail.com
Mon Sep 8 12:27:43 PDT 2008
I am trying to modify the module-alsa-sink module to process the audio
data.
Within: static int mmap_write(struct userdata *u) {}
I am calling a routine that just sets the audio data to 0 so I know that I
can actually affect the data. I am doing this like so:
/* Check these are multiples of 8 bit */
pa_assert((areas[0].first & 7) == 0);
pa_assert((areas[0].step & 7)== 0);
/* We assume a single interleaved memory buffer */
pa_assert((areas[0].first >> 3) == 0);
pa_assert((areas[0].step >> 3) == u->frame_size);
p = (uint8_t*) areas[0].addr + (offset * u->frame_size);
zeroData((uint8_t*) p, frames * u->frame_size);
chunk.memblock = pa_memblock_new_fixed(u->core->mempool, p, frames *
u->frame_size, 1);
chunk.length = pa_memblock_get_length(chunk.memblock);
chunk.index = 0;
pa_sink_render_into_full(u->sink, &chunk);
here is my function for zeroData():
static void biquadProcess(uint8_t *p, int length)
{
int j;
for(j = 0; j < length; j++)
*p++ = 0;
}
This does not seem to affect the audio at all. I don't know what I am doing
wrong. Also is there a way to access the data through chunk.memblock?
chunk is of type pa_memchunk.
Thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20080908/5c984d25/attachment.htm>
More information about the pulseaudio-discuss
mailing list