output/alsa: fix SIGFPE when alsa announces a period size of 0
This commit is contained in:
parent
736fd0e293
commit
d1eeed6a5b
2
NEWS
2
NEWS
|
@ -3,6 +3,8 @@ ver 0.16.4 (2011/??/??)
|
||||||
* decoder:
|
* decoder:
|
||||||
- ffmpeg: workaround for semantic API change in recent ffmpeg versions
|
- ffmpeg: workaround for semantic API change in recent ffmpeg versions
|
||||||
- flac: validate the sample rate when scanning the tag
|
- 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)
|
ver 0.16.3 (2011/06/04)
|
||||||
|
|
|
@ -508,6 +508,14 @@ configure_hw:
|
||||||
g_debug("buffer_size=%u period_size=%u",
|
g_debug("buffer_size=%u period_size=%u",
|
||||||
(unsigned)alsa_buffer_size, (unsigned)alsa_period_size);
|
(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_frames = alsa_period_size;
|
||||||
ad->period_position = 0;
|
ad->period_position = 0;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue