output/alsa: fix SIGFPE when alsa announces a period size of 0

This commit is contained in:
Max Kellermann 2011-07-20 06:54:51 +02:00
parent 736fd0e293
commit d1eeed6a5b
2 changed files with 10 additions and 0 deletions

2
NEWS
View File

@ -3,6 +3,8 @@ ver 0.16.4 (2011/??/??)
* decoder:
- ffmpeg: workaround for semantic API change in recent ffmpeg versions
- flac: validate the sample rate when scanning the tag
* output:
- alsa: fix SIGFPE when alsa announces a period size of 0
ver 0.16.3 (2011/06/04)

View File

@ -508,6 +508,14 @@ configure_hw:
g_debug("buffer_size=%u period_size=%u",
(unsigned)alsa_buffer_size, (unsigned)alsa_period_size);
if (alsa_period_size == 0)
/* this works around a SIGFPE bug that occurred when
an ALSA driver indicated period_size==0; this
caused a division by zero in alsa_play(). By using
the fallback "1", we make sure that this won't
happen again. */
alsa_period_size = 1;
ad->period_frames = alsa_period_size;
ad->period_position = 0;