mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-31 22:25:35 -04:00
pcm: handle start_treshold in snd_pcm_write_areas more robustly
The start_treshold is defined as unsigned, so fix the condition to allow using values avobe LONG_MAX. Also, fix the documentation for the 64-bit platforms (INTMAX -> LONG_MAX). Fixes: https://github.com/alsa-project/alsa-lib/issues/374 Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
19e6349182
commit
c3fec78ddd
1 changed files with 3 additions and 2 deletions
|
|
@ -378,7 +378,7 @@ be started automatically from the device. For capture, if the application wants
|
|||
to read count of samples equal or greater then the stream will be started.
|
||||
If you want to use explicit start (#snd_pcm_start), you can
|
||||
set this value greater than ring buffer size (in samples), but use the
|
||||
constant MAXINT is not a bad idea.
|
||||
constant LONG_MAX or the boundary value is not a bad idea.
|
||||
|
||||
\par Stop threshold
|
||||
|
||||
|
|
@ -7721,7 +7721,8 @@ snd_pcm_sframes_t snd_pcm_write_areas(snd_pcm_t *pcm, const snd_pcm_channel_area
|
|||
/* some plugins might automatically start the stream */
|
||||
state = __snd_pcm_state(pcm);
|
||||
if (state == SND_PCM_STATE_PREPARED &&
|
||||
hw_avail >= (snd_pcm_sframes_t) pcm->start_threshold) {
|
||||
hw_avail >= 0 &&
|
||||
(snd_pcm_uframes_t) hw_avail >= pcm->start_threshold) {
|
||||
err = __snd_pcm_start(pcm);
|
||||
if (err < 0)
|
||||
goto _end;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue