[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