summaryrefslogtreecommitdiffstats
path: root/libao2/ao_alsa.c
diff options
context:
space:
mode:
authorcladisch <cladisch@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-03-31 09:28:37 +0000
committercladisch <cladisch@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-03-31 09:28:37 +0000
commite7941a0ef377cb3e5caf7f5e85473ae911c72bec (patch)
treea755c20d14aadac6b4d781d17b24d26d9e24c3d9 /libao2/ao_alsa.c
parentadb94d38a353e55bff988eace23a9566f01e3e35 (diff)
downloadmpv-e7941a0ef377cb3e5caf7f5e85473ae911c72bec.tar.bz2
mpv-e7941a0ef377cb3e5caf7f5e85473ae911c72bec.tar.xz
Add workarounds for old prerelease versions of alsa-lib 0.9.0 that did
not allow reading the buffer boundary value. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18010 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libao2/ao_alsa.c')
-rw-r--r--libao2/ao_alsa.c6
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));