Hi Clemens, thanks for your replay. Sorry about the delay, I was taking care of high priority tasks. Back to my problem, I'm convinced that I'm passing the correct number of frames. Do I have to change the buffer if discarding non complete buffers (<> 160bytes)? I'm not sure how timing is managed since my function is called by a third part application but it looks like my code is invoked in a "for" loop. Next is part of the code which calls my function: for (cur = f, next = AST_LIST_NEXT(cur, frame_list); cur; cur = next, next = cur ? AST_LIST_NEXT(cur, frame_list) : NULL) { if (!skip) { if ((res = chan->tech->write(chan, cur)) < 0) { chan->_softhangup |= AST_SOFTHANGUP_DEV; skip = 1; } else if (next) { /* don't do this for the last frame in the list, as the code outside the loop will do it once */ chan->fout = FRAMECOUNT_INC(chan->fout); } } ast_frfree(cur); } I sent a copy of my code to pastbin. It is available at: http://www.pastebin.org/48749 I would be glad if you take a look at it. Thanks for your time. Regards, Douglas On Fri, Oct 23, 2009 at 5:39 AM, Clemens Ladisch <clemens@xxxxxxxxxx> wrote: > Douglas Lopes Pereira wrote: >> I'm splitting my audio data into 160 bytes buffers but when buffer >> with different size is passed to that function I hear a noise (like >> 'Krrr') on my audio device. > > Do you actually pass the correct number of frames? > > How do you manage the timing of the snd_pcm_writei() calls? > > > Best regards, > Clemens > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel