Re: Problems with snd_pcm_writei() function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux