Commit 015989f3 authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

Simplify Alsa detection and drop support for alsa < 1.0.0 (out in 2003)

parent 0a27d519
...@@ -4173,29 +4173,7 @@ PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library supp ...@@ -4173,29 +4173,7 @@ PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library supp
dnl dnl
dnl ALSA module dnl ALSA module
dnl dnl
AC_ARG_ENABLE(alsa, PKG_ENABLE_MODULES_VLC([ALSA], [], [alsa >= 1.0.0], [Alsa sound support for linux], [auto])
[ --enable-alsa ALSA sound support for Linux (default enabled)])
if test "${enable_alsa}" != "no"
then
AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
if test "${have_alsa}" = "true"
then
CFLAGS="${CFLAGS_save}"
AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
#define ALSA_PCM_NEW_SW_PARAMS_API
#include <alsa/asoundlib.h>],
[snd_pcm_hw_params_get_period_time(0,0,0);],
AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
VLC_ADD_PLUGIN([alsa])
VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
VLC_ADD_PLUGIN([access_alsa])
VLC_ADD_LIBS([access_alsa],[-lasound -lm -ldl])
else
if test "${enable_alsa}" = "yes"; then
AC_MSG_ERROR([Could not find ALSA development headers])
fi
fi
fi
dnl dnl
dnl win32 waveOut plugin dnl win32 waveOut plugin
......
...@@ -571,15 +571,9 @@ static int Open( vlc_object_t *p_this ) ...@@ -571,15 +571,9 @@ static int Open( vlc_object_t *p_this )
/* Set rate. */ /* Set rate. */
i_old_rate = p_aout->output.output.i_rate; i_old_rate = p_aout->output.output.i_rate;
#ifdef HAVE_ALSA_NEW_API
i_snd_rc = snd_pcm_hw_params_set_rate_near( p_sys->p_snd_pcm, p_hw, i_snd_rc = snd_pcm_hw_params_set_rate_near( p_sys->p_snd_pcm, p_hw,
&p_aout->output.output.i_rate, &p_aout->output.output.i_rate,
NULL ); NULL );
#else
i_snd_rc = snd_pcm_hw_params_set_rate_near( p_sys->p_snd_pcm, p_hw,
p_aout->output.output.i_rate,
NULL );
#endif
if( i_snd_rc < 0 || p_aout->output.output.i_rate != i_old_rate ) if( i_snd_rc < 0 || p_aout->output.output.i_rate != i_old_rate )
{ {
msg_Warn( p_aout, "The rate %d Hz is not supported by your " \ msg_Warn( p_aout, "The rate %d Hz is not supported by your " \
...@@ -588,13 +582,8 @@ static int Open( vlc_object_t *p_this ) ...@@ -588,13 +582,8 @@ static int Open( vlc_object_t *p_this )
} }
/* Set period size. */ /* Set period size. */
#ifdef HAVE_ALSA_NEW_API
if ( ( i_snd_rc = snd_pcm_hw_params_set_period_size_near( p_sys->p_snd_pcm, if ( ( i_snd_rc = snd_pcm_hw_params_set_period_size_near( p_sys->p_snd_pcm,
p_hw, &i_period_size, NULL ) ) < 0 ) p_hw, &i_period_size, NULL ) ) < 0 )
#else
if ( ( i_snd_rc = snd_pcm_hw_params_set_period_size_near( p_sys->p_snd_pcm,
p_hw, i_period_size, NULL ) ) < 0 )
#endif
{ {
msg_Err( p_aout, "unable to set period size (%s)", msg_Err( p_aout, "unable to set period size (%s)",
snd_strerror( i_snd_rc ) ); snd_strerror( i_snd_rc ) );
...@@ -603,13 +592,8 @@ static int Open( vlc_object_t *p_this ) ...@@ -603,13 +592,8 @@ static int Open( vlc_object_t *p_this )
p_aout->output.i_nb_samples = i_period_size; p_aout->output.i_nb_samples = i_period_size;
/* Set buffer size. */ /* Set buffer size. */
#ifdef HAVE_ALSA_NEW_API
if ( ( i_snd_rc = snd_pcm_hw_params_set_buffer_size_near( p_sys->p_snd_pcm, if ( ( i_snd_rc = snd_pcm_hw_params_set_buffer_size_near( p_sys->p_snd_pcm,
p_hw, &i_buffer_size ) ) < 0 ) p_hw, &i_buffer_size ) ) < 0 )
#else
if ( ( i_snd_rc = snd_pcm_hw_params_set_buffer_size_near( p_sys->p_snd_pcm,
p_hw, i_buffer_size ) ) < 0 )
#endif
{ {
msg_Err( p_aout, "unable to set buffer size (%s)", msg_Err( p_aout, "unable to set buffer size (%s)",
snd_strerror( i_snd_rc ) ); snd_strerror( i_snd_rc ) );
...@@ -637,13 +621,8 @@ static int Open( vlc_object_t *p_this ) ...@@ -637,13 +621,8 @@ static int Open( vlc_object_t *p_this )
} }
} }
#ifdef HAVE_ALSA_NEW_API
if( ( i_snd_rc = snd_pcm_hw_params_get_period_time( p_hw, if( ( i_snd_rc = snd_pcm_hw_params_get_period_time( p_hw,
&p_sys->i_period_time, NULL ) ) < 0 ) &p_sys->i_period_time, NULL ) ) < 0 )
#else
if( ( p_sys->i_period_time =
(int)snd_pcm_hw_params_get_period_time( p_hw, NULL ) ) < 0 )
#endif
{ {
msg_Err( p_aout, "unable to get period time (%s)", msg_Err( p_aout, "unable to get period time (%s)",
snd_strerror( i_snd_rc ) ); snd_strerror( i_snd_rc ) );
...@@ -774,7 +753,7 @@ static void* ALSAThread( vlc_object_t* p_this ) ...@@ -774,7 +753,7 @@ static void* ALSAThread( vlc_object_t* p_this )
vlc_mutex_unlock( &p_sys->lock ); vlc_mutex_unlock( &p_sys->lock );
if( !vlc_object_alive (p_aout) ) if( !vlc_object_alive (p_aout) )
goto cleanup; goto cleanup;
mwait( p_sys->start_date - AOUT_PTS_TOLERANCE / 4 ); mwait( p_sys->start_date - AOUT_PTS_TOLERANCE / 4 );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment