[MPlayer-users] New ALSA lib causes MPlayer's configure to not detect ALSA

Stephen Stocker lpar at par1.net
Thu Nov 20 15:16:51 CET 2003


  Still the same problem. The latest ALSA lib (CVS since Oct 29) will
  cause a failure to detect ALSA's presence. (All recent CVS releases of
  MPlayer).

  The following is a "NOTES" from all recent ALSA CVS versions.
  (Currently at version 1.0.0pre1):

---

Old versus new PCM API (values returned using indirect pointers)
================================================================

>From the binary compatibility view, there is no change. For compilation,
1.0 ALSA applications do not need any change. The older applications must
use this include sequence:

#define ALSA_PCM_OLD_HW_PARAMS_API
#define ALSA_PCM_OLD_SW_PARAMS_API
#include <alsa/asoundlib.h>

If you use already the new API, you may remove old defines selecting
this API, because they are no longer used:

#define ALSA_PCM_NEW_HW_PARAMS_API
#define ALSA_PCM_NEW_SW_PARAMS_API

---

  And MPlayer's configure.log:

---

============ Checking for ALSA audio ============

#include <sys/asoundlib.h>
int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==5)); }

cc     /tmp/mplayer-conf-9475-14890.c -o /tmp/mplayer-conf-4793-14890.o -lasound -ldl -lpthread
In file included from /tmp/mplayer-conf-9475-14890.c:1:
/usr/include/sys/asoundlib.h:1: warning: #warning This header is deprecated, use <alsa/asoundlib.h> instead.

ldd /tmp/mplayer-conf-4793-14890.o
	libasound.so.2 => /usr/lib/libasound.so.2 (0x4001a000)
	libdl.so.2 => /lib/libdl.so.2 (0x400b9000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x400bc000)
	libc.so.6 => /lib/libc.so.6 (0x400d1000)
	libm.so.6 => /lib/libm.so.6 (0x401f4000)
	/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)


#include <sys/asoundlib.h>
int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }

cc     /tmp/mplayer-conf-9475-14890.c -o /tmp/mplayer-conf-4793-14890.o -lasound -ldl -lpthread
In file included from /tmp/mplayer-conf-9475-14890.c:1:
/usr/include/sys/asoundlib.h:1: warning: #warning This header is deprecated, use <alsa/asoundlib.h> instead.

ldd /tmp/mplayer-conf-4793-14890.o
	libasound.so.2 => /usr/lib/libasound.so.2 (0x4001a000)
	libdl.so.2 => /lib/libdl.so.2 (0x400b9000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x400bc000)
	libc.so.6 => /lib/libc.so.6 (0x400d1000)
	libm.so.6 => /lib/libm.so.6 (0x401f4000)
	/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)


#include <alsa/asoundlib.h>
int main(void) { return (!(SND_LIB_MAJOR==0 && SND_LIB_MINOR==9)); }

cc     /tmp/mplayer-conf-9475-14890.c -o /tmp/mplayer-conf-4793-14890.o -lasound -ldl -lpthread

ldd /tmp/mplayer-conf-4793-14890.o
	libasound.so.2 => /usr/lib/libasound.so.2 (0x4001a000)
	libdl.so.2 => /lib/libdl.so.2 (0x400b9000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x400bc000)
	libc.so.6 => /lib/libc.so.6 (0x400d1000)
	libm.so.6 => /lib/libm.so.6 (0x401f4000)
	/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Result is: no
##########################################

---

  I even tried removing the test for ALSA in MPlayer's configure.
  Numerous errors of the libao2/ao_alsa9.c compile lead me to think that
  the above-mentioned defines (of the "old" ALSA API need to be included
  somewhere. Also, as noted in the ALSA file, there's no binary
  incompatibility, so compiling MPlayer against the old ALSA libs, then
  removing them and reinstalling the new libs works fine. It's just
  somewhat of a pain to do it. And as I understand it, this "new" API is
  more or less finalized for ALSA.

  Could a developer please look into this? Thanks.




More information about the MPlayer-users mailing list