shithub: opus-tools

Download patch

ref: a0c500527daa6a8638eabac382810b1c42f442a2
parent: e186a8512f9372f3cd358547a0d6d9edc0e4522f
author: Gregory Maxwell <greg@xiph.org>
date: Wed May 16 12:49:49 EDT 2012

soundcard.h autodetection

--- a/Makefile.am
+++ b/Makefile.am
@@ -12,6 +12,6 @@
 opusenc_LDADD = $(OGG_LIBS) $(Opus_LIBS) -lm
 
 opusdec_SOURCES = src/opus_header.c src/wav_io.c src/wave_out.c src/opusdec.c src/resample.c src/diag_range.c
-opusdec_LDADD = $(OGG_LIBS) $(Opus_LIBS) -lm
+opusdec_LDADD = $(OGG_LIBS) $(Opus_LIBS) $(OSS_LIBS) -lm
 
 #TESTS = FIXME
--- a/configure.ac
+++ b/configure.ac
@@ -215,6 +215,26 @@
     obtain a copy.])
 fi
 
+dnl check for OSS
+HAVE_OSS=no
+AC_CHECK_HEADERS([sys/soundcard.h soundcard.h machine/soundcard.h],[
+  HAVE_OSS=yes
+  break
+])
+if test x$HAVE_OSS != xyes; then
+  AC_MSG_WARN([OSS audio support not found -- no direct audio output in opusdec])
+fi
+
+dnl OpenBSD needs -lossaudio to use the oss interface
+OSS_LIBS=
+case "$host_os" in
+  openbsd*)
+    OSS_LIBS='-lossaudio'
+    ;;
+esac
+AC_SUBST(OSS_LIBS)
+
+
 AC_OUTPUT([Makefile])
 
 AC_MSG_RESULT([
--- a/src/opusdec.c
+++ b/src/opusdec.c
@@ -61,8 +61,14 @@
 #include "wave_out.c"
 #endif
 
+#if defined HAVE_SYS_SOUNDCARD_H || defined HAVE_MACHINE_SOUNDCARD_H || HAVE_SOUNDCARD_H
 #ifdef HAVE_SYS_SOUNDCARD_H
-#include <sys/soundcard.h>
+# include <sys/soundcard.h>
+#elif HAVE_MACHINE_SOUNDCARD_H
+# include <machine/soundcard.h>
+#else
+# include <soundcard.h>
+#endif
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>