Fwd: Fwd: Re: Basic questions

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

 



Hi Clemens,

thank you. In blocking-mode it works. Then i will follow the non-blocking mode. I modified first the callback:

void playback_callback (snd_pcm_sframes_t nframes)
{
    snd_pcm_sframes_t avail;

    avail = snd_pcm_avail_update(handle);
    while (avail >= period_size)
    {
        snd_pcm_writei(handle, buffer_alsa , nframes);
        avail = snd_pcm_avail_update(handle);
        std::cout << "      Avail:  " << avail << std::endl;
    }
}

...
called it at the end:
playback_callback(period_size);

and I get (for "avail"):

Frames:  6894888
buffer_size (frames):  2048
buffer_time (frames):  46439
period_size (frames):  256
period_time (usec):  5804
periods (count):  8
Avail:  1282
Avail:  1027
Avail:  772
Avail:  517
Avail:  261
Avail:  6

the same mistake...

Regards
Thomas



tsepp2001@xxxxxxxxxxx  wrote:
Am I right to use async mode

No.  It is not supported by all devices, and almost impossible to use
correctly.

to get lowest latency times

Latency depends on the buffer size, and how fast your code can react to
the notification that some space is available.

and using pause/play/stop?

You probably want to use non-blocking mode.


Regards,
Clemens
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

_______________________________________________
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