diff options
Diffstat (limited to 'libao2/ao_alsa.c')
-rw-r--r-- | libao2/ao_alsa.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libao2/ao_alsa.c b/libao2/ao_alsa.c index 8136315b5c..7063d7a709 100644 --- a/libao2/ao_alsa.c +++ b/libao2/ao_alsa.c @@ -638,11 +638,15 @@ static int init(int rate_hz, int channels, int format, int flags) snd_strerror(err)); return 0; } +#if SND_LIB_VERSION >= 0x000901 if ((err = snd_pcm_sw_params_get_boundary(alsa_swparams, &boundary)) < 0) { mp_msg(MSGT_AO,MSGL_ERR,"alsa-init: unable to get boundary: %s\n", snd_strerror(err)); return 0; } +#else + boundary = 0x7fffffff; +#endif /* start playing when one period has been written */ if ((err = snd_pcm_sw_params_set_start_threshold(alsa_handler, alsa_swparams, chunk_size)) < 0) { mp_msg(MSGT_AO,MSGL_ERR,"alsa-init: unable to set start threshold: %s\n", @@ -655,12 +659,14 @@ static int init(int rate_hz, int channels, int format, int flags) snd_strerror(err)); return 0; } +#if SND_LIB_VERSION >= 0x000901 /* play silence when there is an underrun */ if ((err = snd_pcm_sw_params_set_silence_size(alsa_handler, alsa_swparams, boundary)) < 0) { mp_msg(MSGT_AO,MSGL_ERR,"alsa-init: unable to set silence size: %s\n", snd_strerror(err)); return 0; } +#endif if ((err = snd_pcm_sw_params(alsa_handler, alsa_swparams)) < 0) { mp_msg(MSGT_AO,MSGL_ERR,"alsa-init: unable to set sw-parameters: %s\n", snd_strerror(err)); |