Hello community, here is the log from the commit of package alsa-plugins for openSUSE:Factory checked in at 2014-06-25 06:57:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/alsa-plugins (Old) and /work/SRC/openSUSE:Factory/.alsa-plugins.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "alsa-plugins" Changes: -------- --- /work/SRC/openSUSE:Factory/alsa-plugins/alsa-plugins.changes 2014-03-16 08:05:05.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.alsa-plugins.new/alsa-plugins.changes 2014-06-25 06:57:41.000000000 +0200 @@ -1,0 +2,15 @@ +Wed Jun 18 13:14:30 CEST 2014 - [email protected] + +- Updated to alsa-plugins 1.0.28: + All pervious fix patches are obsoleted: + 0001-Check-for-and-include-libavutil.h-to-avoid-unresolve.patch + 0002-Add-AM_MAINTAINER_MODE-enable-to-configure.in.patch + 0003-vdownmix-Add-chmap-support.patch + 0004-upmix-Add-chmap-support.patch + 0005-a52-Fix-build-error-with-the-recent-version.patch + 0006-a52-Add-chmap-support.patch + 0007-a52-Propagate-errors-from-hw.patch + 0008-a52-switch-to-AV_CODEC_ID-identifiers.patch + 0009-jack-Allow-to-specify-a-client-name-as-parameters.patch + +------------------------------------------------------------------- Old: ---- 0001-Check-for-and-include-libavutil.h-to-avoid-unresolve.patch 0002-Add-AM_MAINTAINER_MODE-enable-to-configure.in.patch 0003-vdownmix-Add-chmap-support.patch 0004-upmix-Add-chmap-support.patch 0005-a52-Fix-build-error-with-the-recent-version.patch 0006-a52-Add-chmap-support.patch 0007-a52-Propagate-errors-from-hw.patch 0008-a52-switch-to-AV_CODEC_ID-identifiers.patch 0009-jack-Allow-to-specify-a-client-name-as-parameters.patch alsa-plugins-1.0.27.tar.bz2 New: ---- alsa-plugins-1.0.28.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ alsa-plugins.spec ++++++ --- /var/tmp/diff_new_pack.Zh0D3G/_old 2014-06-25 06:57:42.000000000 +0200 +++ /var/tmp/diff_new_pack.Zh0D3G/_new 2014-06-25 06:57:42.000000000 +0200 @@ -16,7 +16,7 @@ # -%define package_version 1.0.27 +%define package_version 1.0.28 %if 0%{?suse_version} > 1030 %define build_pulse 1 %define build_speex 1 @@ -25,7 +25,7 @@ %define build_speex 0 %endif Name: alsa-plugins -Version: 1.0.27 +Version: 1.0.28 Release: 0 Summary: Extra Plug-Ins for the ALSA Library License: LGPL-2.1+ @@ -36,15 +36,6 @@ Source2: alsa-pulse.conf Source3: baselibs.conf # upstream fixes -Patch1: 0001-Check-for-and-include-libavutil.h-to-avoid-unresolve.patch -Patch2: 0002-Add-AM_MAINTAINER_MODE-enable-to-configure.in.patch -Patch3: 0003-vdownmix-Add-chmap-support.patch -Patch4: 0004-upmix-Add-chmap-support.patch -Patch5: 0005-a52-Fix-build-error-with-the-recent-version.patch -Patch6: 0006-a52-Add-chmap-support.patch -Patch7: 0007-a52-Propagate-errors-from-hw.patch -Patch8: 0008-a52-switch-to-AV_CODEC_ID-identifiers.patch -Patch9: 0009-jack-Allow-to-specify-a-client-name-as-parameters.patch BuildRequires: alsa-devel BuildRequires: dbus-1-devel BuildRequires: libjack-devel @@ -137,15 +128,6 @@ %prep %setup -q -n %{name}-%{package_version} -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 %build export AUTOMAKE_JOBS="%{?_smp_mflags}" ++++++ alsa-plugins-1.0.27.tar.bz2 -> alsa-plugins-1.0.28.tar.bz2 ++++++ ++++ 1776 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.0.27/a52/pcm_a52.c new/alsa-plugins-1.0.28/a52/pcm_a52.c --- old/alsa-plugins-1.0.27/a52/pcm_a52.c 2013-04-11 13:43:08.000000000 +0200 +++ new/alsa-plugins-1.0.28/a52/pcm_a52.c 2014-06-12 11:32:45.000000000 +0200 @@ -26,12 +26,7 @@ #include <alsa/pcm_external.h> #include <alsa/pcm_plugin.h> #include AVCODEC_HEADER - -#if LIBAVCODEC_VERSION_MAJOR >= 53 && LIBAVCODEC_VERSION_MINOR >= 34 -#include <libavutil/audioconvert.h> -#include <libavutil/mem.h> -#define USE_AVCODEC_FRAME -#endif +#include <libavutil/avutil.h> /* some compatibility wrappers */ #ifndef AV_VERSION_INT @@ -43,6 +38,12 @@ LIBAVCODEC_VERSION_MICRO) #endif +#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(53, 34, 0) +#include <libavutil/audioconvert.h> +#include <libavutil/mem.h> +#define USE_AVCODEC_FRAME +#endif + #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(54, 0, 0) #ifndef AV_CH_LAYOUT_STEREO #define AV_CH_LAYOUT_STEREO CH_LAYOUT_STEREO @@ -57,6 +58,9 @@ #endif #endif +#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(54, 25, 0) +#define AV_CODEC_ID_AC3 CODEC_ID_AC3 +#endif struct a52_ctx { snd_pcm_ioplug_t io; @@ -194,8 +198,8 @@ err = write_out_pending(io, rec); if (err < 0) return err; - snd_pcm_drain(rec->slave); - return 0; + + return snd_pcm_drain(rec->slave); } /* check whether the areas consist of a continuous interleaved stream */ @@ -478,16 +482,14 @@ { struct a52_ctx *rec = io->private_data; - snd_pcm_start(rec->slave); - return 0; + return snd_pcm_start(rec->slave); } static int a52_stop(snd_pcm_ioplug_t *io) { struct a52_ctx *rec = io->private_data; - snd_pcm_drop(rec->slave); - return 0; + return snd_pcm_drop(rec->slave); } /* release resources */ @@ -644,10 +646,60 @@ a52_free(rec); if (rec->slave) - snd_pcm_close(rec->slave); + return snd_pcm_close(rec->slave); return 0; } +#if SND_PCM_IOPLUG_VERSION >= 0x102 +static unsigned int chmap4[4] = { + SND_CHMAP_FL, SND_CHMAP_FR, + SND_CHMAP_RL, SND_CHMAP_RR, +}; +static unsigned int chmap6[6] = { + SND_CHMAP_FL, SND_CHMAP_FR, + SND_CHMAP_FC, SND_CHMAP_LFE, + SND_CHMAP_RL, SND_CHMAP_RR, +}; + +static snd_pcm_chmap_query_t **a52_query_chmaps(snd_pcm_ioplug_t *io ATTRIBUTE_UNUSED) +{ + snd_pcm_chmap_query_t **maps; + int i; + + maps = calloc(4, sizeof(void *)); + if (!maps) + return NULL; + for (i = 0; i < 3; i++) { + snd_pcm_chmap_query_t *p; + p = maps[i] = calloc((i + 1) * 2 + 2, sizeof(int)); + if (!p) { + snd_pcm_free_chmaps(maps); + return NULL; + } + p->type = SND_CHMAP_TYPE_FIXED; + p->map.channels = (i + 1) * 2; + memcpy(p->map.pos, i < 2 ? chmap4 : chmap6, + (i + 1) * 2 * sizeof(int)); + } + return maps; +} + +static snd_pcm_chmap_t *a52_get_chmap(snd_pcm_ioplug_t *io) +{ + snd_pcm_chmap_t *map; + + if ((io->channels % 2) || io->channels < 2 || io->channels > 6) + return NULL; + map = malloc((io->channels + 1) * sizeof(int)); + if (!map) + return NULL; + map->channels = io->channels; + memcpy(map->pos, io->channels < 6 ? chmap4 : chmap6, + io->channels * sizeof(int)); + return map; +} +#endif /* SND_PCM_IOPLUG_VERSION >= 0x102 */ + /* * callback table */ @@ -665,6 +717,10 @@ .poll_descriptors_count = a52_poll_descriptors_count, .poll_descriptors = a52_poll_descriptors, .poll_revents = a52_poll_revents, +#if SND_PCM_IOPLUG_VERSION >= 0x102 + .query_chmaps = a52_query_chmaps, + .get_chmap = a52_get_chmap, +#endif /* SND_PCM_IOPLUG_VERSION >= 0x102 */ }; /* @@ -863,7 +919,7 @@ if (rec->codec == NULL) rec->codec = avcodec_find_encoder_by_name("ac3"); if (rec->codec == NULL) - rec->codec = avcodec_find_encoder(CODEC_ID_AC3); + rec->codec = avcodec_find_encoder(AV_CODEC_ID_AC3); if (rec->codec == NULL) { SNDERR("Cannot find codec engine"); err = -EINVAL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.0.27/config.h.in new/alsa-plugins-1.0.28/config.h.in --- old/alsa-plugins-1.0.27/config.h.in 2013-04-11 14:54:24.000000000 +0200 +++ new/alsa-plugins-1.0.28/config.h.in 2014-06-13 11:23:45.000000000 +0200 @@ -1,4 +1,4 @@ -/* config.h.in. Generated from configure.in by autoheader. */ +/* config.h.in. Generated from configure.ac by autoheader. */ /* directory containing ALSA data files */ #undef ALSA_DATA_DIR diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.0.27/configure.ac new/alsa-plugins-1.0.28/configure.ac --- old/alsa-plugins-1.0.27/configure.ac 1970-01-01 01:00:00.000000000 +0100 +++ new/alsa-plugins-1.0.28/configure.ac 2014-06-12 11:32:45.000000000 +0200 @@ -0,0 +1,226 @@ +AC_PREREQ(2.59) +AC_INIT(alsa-plugins, 1.0.28) +AM_INIT_AUTOMAKE +AC_PREFIX_DEFAULT(/usr) + +AM_MAINTAINER_MODE([enable]) + +AC_CONFIG_HEADERS(config.h) +AC_CONFIG_MACRO_DIR([m4]) + +AC_PROG_CC +AC_PROG_INSTALL +AC_DISABLE_STATIC +AM_PROG_LIBTOOL +AC_HEADER_STDC + +CC_NOUNDEFINED + +PKG_CHECK_MODULES(ALSA, alsa >= 1.0.11) +AC_CHECK_LIB(asound, snd_pcm_ioplug_create,, + AC_ERROR([*** libasound has no external plugin SDK]), -ldl) + +AC_ARG_ENABLE([jack], + AS_HELP_STRING([--disable-jack], [Disable building of JACK plugin])) + +if test "x$enable_jack" != "xno"; then + PKG_CHECK_MODULES(JACK, jack >= 0.98, [HAVE_JACK=yes], [HAVE_JACK=no]) +fi +AM_CONDITIONAL(HAVE_JACK, test x$HAVE_JACK = xyes) + +AC_ARG_ENABLE([pulseaudio], + AS_HELP_STRING([--disable-pulseaudio], [Disable building of pulseaudio plugin])) + +if test "x$enable_pulseaudio" != "xno"; then + PKG_CHECK_MODULES(pulseaudio, [libpulse >= 0.9.11], [HAVE_PULSE=yes], [HAVE_PULSE=no]) +fi +AM_CONDITIONAL(HAVE_PULSE, test x$HAVE_PULSE = xyes) + +AC_ARG_ENABLE([samplerate], + AS_HELP_STRING([--disable-samplerate], [Disable building of samplerate plugin])) + +if test "x$enable_samplerate" != "xno"; then + PKG_CHECK_MODULES(samplerate, [samplerate], [HAVE_SAMPLERATE=yes], [HAVE_SAMPLERATE=no]) +fi +AM_CONDITIONAL(HAVE_SAMPLERATE, test x$HAVE_SAMPLERATE = xyes) + +AC_ARG_ENABLE([maemo-plugin], + AS_HELP_STRING([--enable-maemo-plugin], + [Build Maemo DSP plugin]), + [HAVE_MAEMO_PLUGIN="$enableval"], [HAVE_MAEMO_PLUGIN="no"]) +AM_CONDITIONAL(HAVE_MAEMO_PLUGIN, test x$HAVE_MAEMO_PLUGIN = xyes) + +AC_ARG_ENABLE([maemo-resource-manager], + AS_HELP_STRING([--enable-maemo-resource-manager], + [Use Maemo resource manager]), + [use_maemo_rm="$enableval"], [use_maemo_rm="no"]) + +if test "$use_maemo_rm" = "yes"; then + PKG_CHECK_MODULES(DBUS, [dbus-1], [HAVE_DBUS=yes], [HAVE_DBUS=no]) + + if test "$HAVE_DBUS" = "yes"; then + AC_DEFINE(USE_RESOURCE_MANAGER, 1,"Use dbus server as a resouce manager") + else + AC_ERROR([You must have D-Bus installed if you want to enable the Maemo resource manager]) + fi +fi + +AC_ARG_ENABLE([avcodec], + AS_HELP_STRING([--disable-avcodec], [Don't build plugins depending on avcodec (a52)])) + +if test "x$enable_avcodec" != "xno"; then + PKG_CHECK_MODULES(AVCODEC, [libavcodec libavutil], [HAVE_AVCODEC=yes], [HAVE_AVCODEC=no]) +fi + +if test "x$HAVE_AVCODEC" = "xno"; then + AC_ARG_WITH([avcodec-includedir], + AS_HELP_STRING([--with-avcodec-includedir=dir], + [AVcodec include directory]), + [AVCODEC_CFLAGS="-I$withval"], [AVCODEC_CFLAGS=""]) + AC_ARG_WITH([avcodec-libdir], + AS_HELP_STRING([--with-avcodec-libdir=dir], + [AVcodec library directory]), + [AVCODEC_LIBS="-L$withval"], [AVCODEC_LIBS=""]) + + CFLAGS_saved="$CFLAGS" + LDFLAGS_saved="$LDFLAGS" + CFLAGS="$CFLAGS $AVCODEC_CFLAGS" + LDFLAGS="$LDFLAGS $AVCODEC_LIBS" + AVCODEC_LIBS="$AVCODEC_LIBS -lavcodec" + AC_CHECK_LIB([avcodec], [avcodec_open], [HAVE_AVCODEC=yes], [HAVE_AVCODEC=no]) + CFLAGS="$CFLAGS_saved" + LDFLAGS="$LDFLAGS_saved" +fi + +if test $HAVE_AVCODEC = yes; then + AVCODEC_HEADER="" + AC_CHECK_HEADER([ffmpeg/avcodec.h], [AVCODEC_HEADER='<ffmpeg/avcodec.h>']) + if test -z "$AVCODEC_HEADER"; then + AC_CHECK_HEADER([libavcodec/avcodec.h], [AVCODEC_HEADER='<libavcodec/avcodec.h>']) + fi + if test -z "$AVCODEC_HEADER"; then + HAVE_AVCODEC=no + fi +fi + +AM_CONDITIONAL(HAVE_AVCODEC, test x$HAVE_AVCODEC = xyes) +AC_SUBST(AVCODEC_CFLAGS) +AC_SUBST(AVCODEC_LIBS) +AC_SUBST(AVCODEC_HEADER) + +PKG_CHECK_MODULES(speexdsp, [speexdsp >= 1.2], [HAVE_SPEEXDSP="yes"], [HAVE_SPEEXDSP=""]) +AM_CONDITIONAL(HAVE_SPEEXDSP, test "$HAVE_SPEEXDSP" = "yes") + +AC_ARG_WITH([speex], + AS_HELP_STRING([--with-speex={builtin|lib|no}], + [build speex resampler (built-in code, link with external lib, or no build)]), + [PPH=$withval], [PPH="lib"]) + +USE_LIBSPEEX="" +if test "$PPH" = "lib"; then + if test "$HAVE_SPEEXDSP" = "yes"; then + AC_CHECK_LIB([speexdsp], [speex_resampler_init], + [USE_LIBSPEEX="yes"], [USE_LIBSPEEX=""]) + fi + if test "$USE_LIBSPEEX" = "yes"; then + AC_DEFINE(USE_LIBSPEEX, 1, "Link with libspeex for resampler") + else + echo "No libspeex with resampler unit; use built-in code" + PPH="builtin" + fi +fi + +AM_CONDITIONAL(HAVE_PPH, test "$PPH" = "builtin" -o "$PPH" = "lib") +AM_CONDITIONAL(USE_LIBSPEEX, test "$PPH" = "lib") + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +test "x$exec_prefix" = xNONE && exec_prefix=$prefix + +dnl ALSA plugin directory +AC_ARG_WITH(plugindir, + AS_HELP_STRING([--with-plugindir=dir], + [path where ALSA plugin files are stored]), + plugindir="$withval", plugindir="") +if test -z "$plugindir"; then + eval dir="$libdir" + case "$dir" in + /*) ;; + *) dir="$dir" + esac + plugindir="$dir/alsa-lib" +fi +AC_DEFINE_UNQUOTED(ALSA_PLUGIN_DIR, "$plugindir", [directory containing ALSA add-on modules]) +ALSA_PLUGIN_DIR="$plugindir" +AC_SUBST(ALSA_PLUGIN_DIR) + +dnl ALSA data directory +AC_ARG_WITH(alsadatadir, + AS_HELP_STRING([--with-alsadatadir=dir], + [path where ALSA data files are stored]), + alsadatadir="$withval", alsadatadir="") +if test -z "$alsadatadir"; then + eval dir="$datadir" + case "$dir" in + /*) ;; + *) dir="$dir" + esac + alsadatadir="$dir/alsa" +fi +AC_DEFINE_UNQUOTED(ALSA_DATA_DIR, "$alsadatadir", [directory containing ALSA data files]) +ALSA_DATA_DIR="$alsadatadir" +AC_SUBST(ALSA_DATA_DIR) + +SAVE_PLUGINS_VERSION + +AC_OUTPUT([ + Makefile + oss/Makefile + pph/Makefile + jack/Makefile + pulse/Makefile + mix/Makefile + rate/Makefile + a52/Makefile + rate-lavc/Makefile + maemo/Makefile + doc/Makefile + usb_stream/Makefile + speex/Makefile + arcam-av/Makefile +]) + +dnl Show the build conditions + +echo +echo "Plugin directory: $ALSA_PLUGIN_DIR" +echo "ALSA_CFLAGS: $ALSA_CFLAGS" +echo "ALSA_LIBS: $ALSA_LIBS" +echo "JACK plugin: $HAVE_JACK" +if test "$HAVE_JACK" = "yes"; then + echo " JACK_CFLAGS: $JACK_CFLAGS" + echo " JACK_LIBS: $JACK_LIBS" +fi +echo "Pulseaudio plugin: $HAVE_PULSE" +if test "$HAVE_PULSE" = "yes"; then + echo " pulseaudio_CFLAGS: $pulseaudio_CFLAGS" + echo " pulseaudio_LIBS: $pulseaudio_LIBS" +fi +echo "Samplerate plugin: $HAVE_SAMPLERATE" +if test "$HAVE_SAMPLERATE" = "yes"; then + echo " samplerate_CFLAGS: $samplerate_CFLAGS" + echo " samplerate_LIBS: $samplerate_LIBS" +fi +echo "Maemo plugin: $HAVE_MAEMO_PLUGIN" +echo " Using Osso resource manager: $use_maemo_rm" +echo "A52, lavc plugins: $HAVE_AVCODEC" +if test "$HAVE_AVCODEC" = "yes"; then + echo " AVCODEC_CFLAGS: $AVCODEC_CFLAGS" + echo " AVCODEC_LIBS: $AVCODEC_LIBS" + echo " AVCODEC_HEADER: $AVCODEC_HEADER" +fi +echo "Speex rate plugin: $PPH" +echo "Speex preprocess plugin: $HAVE_SPEEXDSP" +if test "$HAVE_SPEEX" = "yes"; then + echo " speexdsp_CFLAGS: $speexdsp_CFLAGS" + echo " speexdsp_LIBS: $speexdsp_LIBS" +fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.0.27/configure.in new/alsa-plugins-1.0.28/configure.in --- old/alsa-plugins-1.0.27/configure.in 2013-04-11 13:43:08.000000000 +0200 +++ new/alsa-plugins-1.0.28/configure.in 1970-01-01 01:00:00.000000000 +0100 @@ -1,224 +0,0 @@ -AC_PREREQ(2.59) -AC_INIT(oss/pcm_oss.c) -AM_INIT_AUTOMAKE(alsa-plugins, 1.0.27) -AC_PREFIX_DEFAULT(/usr) - -AC_CONFIG_HEADERS(config.h) -AC_CONFIG_MACRO_DIR([m4]) - -AC_PROG_CC -AC_PROG_INSTALL -AC_DISABLE_STATIC -AM_PROG_LIBTOOL -AC_HEADER_STDC - -CC_NOUNDEFINED - -PKG_CHECK_MODULES(ALSA, alsa >= 1.0.11) -AC_CHECK_LIB(asound, snd_pcm_ioplug_create,, - AC_ERROR([*** libasound has no external plugin SDK]), -ldl) - -AC_ARG_ENABLE([jack], - AS_HELP_STRING([--disable-jack], [Disable building of JACK plugin])) - -if test "x$enable_jack" != "xno"; then - PKG_CHECK_MODULES(JACK, jack >= 0.98, [HAVE_JACK=yes], [HAVE_JACK=no]) -fi -AM_CONDITIONAL(HAVE_JACK, test x$HAVE_JACK = xyes) - -AC_ARG_ENABLE([pulseaudio], - AS_HELP_STRING([--disable-pulseaudio], [Disable building of pulseaudio plugin])) - -if test "x$enable_pulseaudio" != "xno"; then - PKG_CHECK_MODULES(pulseaudio, [libpulse >= 0.9.11], [HAVE_PULSE=yes], [HAVE_PULSE=no]) -fi -AM_CONDITIONAL(HAVE_PULSE, test x$HAVE_PULSE = xyes) - -AC_ARG_ENABLE([samplerate], - AS_HELP_STRING([--disable-samplerate], [Disable building of samplerate plugin])) - -if test "x$enable_samplerate" != "xno"; then - PKG_CHECK_MODULES(samplerate, [samplerate], [HAVE_SAMPLERATE=yes], [HAVE_SAMPLERATE=no]) -fi -AM_CONDITIONAL(HAVE_SAMPLERATE, test x$HAVE_SAMPLERATE = xyes) - -AC_ARG_ENABLE([maemo-plugin], - AS_HELP_STRING([--enable-maemo-plugin], - [Build Maemo DSP plugin]), - [HAVE_MAEMO_PLUGIN="$enableval"], [HAVE_MAEMO_PLUGIN="no"]) -AM_CONDITIONAL(HAVE_MAEMO_PLUGIN, test x$HAVE_MAEMO_PLUGIN = xyes) - -AC_ARG_ENABLE([maemo-resource-manager], - AS_HELP_STRING([--enable-maemo-resource-manager], - [Use Maemo resource manager]), - [use_maemo_rm="$enableval"], [use_maemo_rm="no"]) - -if test "$use_maemo_rm" = "yes"; then - PKG_CHECK_MODULES(DBUS, [dbus-1], [HAVE_DBUS=yes], [HAVE_DBUS=no]) - - if test "$HAVE_DBUS" = "yes"; then - AC_DEFINE(USE_RESOURCE_MANAGER, 1,"Use dbus server as a resouce manager") - else - AC_ERROR([You must have D-Bus installed if you want to enable the Maemo resource manager]) - fi -fi - -AC_ARG_ENABLE([avcodec], - AS_HELP_STRING([--disable-avcodec], [Don't build plugins depending on avcodec (a52)])) - -if test "x$enable_avcodec" != "xno"; then - PKG_CHECK_MODULES(AVCODEC, [libavcodec], [HAVE_AVCODEC=yes], [HAVE_AVCODEC=no]) -fi - -if test "x$HAVE_AVCODEC" = "xno"; then - AC_ARG_WITH([avcodec-includedir], - AS_HELP_STRING([--with-avcodec-includedir=dir], - [AVcodec include directory]), - [AVCODEC_CFLAGS="-I$withval"], [AVCODEC_CFLAGS=""]) - AC_ARG_WITH([avcodec-libdir], - AS_HELP_STRING([--with-avcodec-libdir=dir], - [AVcodec library directory]), - [AVCODEC_LIBS="-L$withval"], [AVCODEC_LIBS=""]) - - CFLAGS_saved="$CFLAGS" - LDFLAGS_saved="$LDFLAGS" - CFLAGS="$CFLAGS $AVCODEC_CFLAGS" - LDFLAGS="$LDFLAGS $AVCODEC_LIBS" - AVCODEC_LIBS="$AVCODEC_LIBS -lavcodec" - AC_CHECK_LIB([avcodec], [avcodec_open], [HAVE_AVCODEC=yes], [HAVE_AVCODEC=no]) - CFLAGS="$CFLAGS_saved" - LDFLAGS="$LDFLAGS_saved" -fi - -if test $HAVE_AVCODEC = yes; then - AVCODEC_HEADER="" - AC_CHECK_HEADER([ffmpeg/avcodec.h], [AVCODEC_HEADER='<ffmpeg/avcodec.h>']) - if test -z "$AVCODEC_HEADER"; then - AC_CHECK_HEADER([libavcodec/avcodec.h], [AVCODEC_HEADER='<libavcodec/avcodec.h>']) - fi - if test -z "$AVCODEC_HEADER"; then - HAVE_AVCODEC=no - fi -fi - -AM_CONDITIONAL(HAVE_AVCODEC, test x$HAVE_AVCODEC = xyes) -AC_SUBST(AVCODEC_CFLAGS) -AC_SUBST(AVCODEC_LIBS) -AC_SUBST(AVCODEC_HEADER) - -PKG_CHECK_MODULES(speexdsp, [speexdsp >= 1.2], [HAVE_SPEEXDSP="yes"], [HAVE_SPEEXDSP=""]) -AM_CONDITIONAL(HAVE_SPEEXDSP, test "$HAVE_SPEEXDSP" = "yes") - -AC_ARG_WITH([speex], - AS_HELP_STRING([--with-speex={builtin|lib|no}], - [build speex resampler (built-in code, link with external lib, or no build)]), - [PPH=$withval], [PPH="lib"]) - -USE_LIBSPEEX="" -if test "$PPH" = "lib"; then - if test "$HAVE_SPEEXDSP" = "yes"; then - AC_CHECK_LIB([speexdsp], [speex_resampler_init], - [USE_LIBSPEEX="yes"], [USE_LIBSPEEX=""]) - fi - if test "$USE_LIBSPEEX" = "yes"; then - AC_DEFINE(USE_LIBSPEEX, 1, "Link with libspeex for resampler") - else - echo "No libspeex with resampler unit; use built-in code" - PPH="builtin" - fi -fi - -AM_CONDITIONAL(HAVE_PPH, test "$PPH" = "builtin" -o "$PPH" = "lib") -AM_CONDITIONAL(USE_LIBSPEEX, test "$PPH" = "lib") - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -test "x$exec_prefix" = xNONE && exec_prefix=$prefix - -dnl ALSA plugin directory -AC_ARG_WITH(plugindir, - AS_HELP_STRING([--with-plugindir=dir], - [path where ALSA plugin files are stored]), - plugindir="$withval", plugindir="") -if test -z "$plugindir"; then - eval dir="$libdir" - case "$dir" in - /*) ;; - *) dir="$dir" - esac - plugindir="$dir/alsa-lib" -fi -AC_DEFINE_UNQUOTED(ALSA_PLUGIN_DIR, "$plugindir", [directory containing ALSA add-on modules]) -ALSA_PLUGIN_DIR="$plugindir" -AC_SUBST(ALSA_PLUGIN_DIR) - -dnl ALSA data directory -AC_ARG_WITH(alsadatadir, - AS_HELP_STRING([--with-alsadatadir=dir], - [path where ALSA data files are stored]), - alsadatadir="$withval", alsadatadir="") -if test -z "$alsadatadir"; then - eval dir="$datadir" - case "$dir" in - /*) ;; - *) dir="$dir" - esac - alsadatadir="$dir/alsa" -fi -AC_DEFINE_UNQUOTED(ALSA_DATA_DIR, "$alsadatadir", [directory containing ALSA data files]) -ALSA_DATA_DIR="$alsadatadir" -AC_SUBST(ALSA_DATA_DIR) - -SAVE_PLUGINS_VERSION - -AC_OUTPUT([ - Makefile - oss/Makefile - pph/Makefile - jack/Makefile - pulse/Makefile - mix/Makefile - rate/Makefile - a52/Makefile - rate-lavc/Makefile - maemo/Makefile - doc/Makefile - usb_stream/Makefile - speex/Makefile - arcam-av/Makefile -]) - -dnl Show the build conditions - -echo -echo "Plugin directory: $ALSA_PLUGIN_DIR" -echo "ALSA_CFLAGS: $ALSA_CFLAGS" -echo "ALSA_LIBS: $ALSA_LIBS" -echo "JACK plugin: $HAVE_JACK" -if test "$HAVE_JACK" = "yes"; then - echo " JACK_CFLAGS: $JACK_CFLAGS" - echo " JACK_LIBS: $JACK_LIBS" -fi -echo "Pulseaudio plugin: $HAVE_PULSE" -if test "$HAVE_PULSE" = "yes"; then - echo " pulseaudio_CFLAGS: $pulseaudio_CFLAGS" - echo " pulseaudio_LIBS: $pulseaudio_LIBS" -fi -echo "Samplerate plugin: $HAVE_SAMPLERATE" -if test "$HAVE_SAMPLERATE" = "yes"; then - echo " samplerate_CFLAGS: $samplerate_CFLAGS" - echo " samplerate_LIBS: $samplerate_LIBS" -fi -echo "Maemo plugin: $HAVE_MAEMO_PLUGIN" -echo " Using Osso resource manager: $use_maemo_rm" -echo "A52, lavc plugins: $HAVE_AVCODEC" -if test "$HAVE_AVCODEC" = "yes"; then - echo " AVCODEC_CFLAGS: $AVCODEC_CFLAGS" - echo " AVCODEC_LIBS: $AVCODEC_LIBS" - echo " AVCODEC_HEADER: $AVCODEC_HEADER" -fi -echo "Speex rate plugin: $PPH" -echo "Speex preprocess plugin: $HAVE_SPEEXDSP" -if test "$HAVE_SPEEX" = "yes"; then - echo " speexdsp_CFLAGS: $speexdsp_CFLAGS" - echo " speexdsp_LIBS: $speexdsp_LIBS" -fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.0.27/jack/pcm_jack.c new/alsa-plugins-1.0.28/jack/pcm_jack.c --- old/alsa-plugins-1.0.27/jack/pcm_jack.c 2013-04-11 13:43:08.000000000 +0200 +++ new/alsa-plugins-1.0.28/jack/pcm_jack.c 2014-06-12 11:32:45.000000000 +0200 @@ -42,6 +42,7 @@ unsigned int num_ports; unsigned int hw_ptr; unsigned int sample_bits; + snd_pcm_uframes_t min_avail; unsigned int channels; snd_pcm_channel_area_t *areas; @@ -50,6 +51,42 @@ jack_client_t *client; } snd_pcm_jack_t; +static int snd_pcm_jack_stop(snd_pcm_ioplug_t *io); + +static int pcm_poll_block_check(snd_pcm_ioplug_t *io) +{ + static char buf[32]; + snd_pcm_sframes_t avail; + snd_pcm_jack_t *jack = io->private_data; + + if (io->state == SND_PCM_STATE_RUNNING || + (io->state == SND_PCM_STATE_PREPARED && io->stream == SND_PCM_STREAM_CAPTURE)) { + avail = snd_pcm_avail_update(io->pcm); + if (avail >= 0 && avail < jack->min_avail) { + while (read(io->poll_fd, &buf, sizeof(buf)) == sizeof(buf)) + ; + return 1; + } + } + + return 0; +} + +static int pcm_poll_unblock_check(snd_pcm_ioplug_t *io) +{ + static char buf[1]; + snd_pcm_sframes_t avail; + snd_pcm_jack_t *jack = io->private_data; + + avail = snd_pcm_avail_update(io->pcm); + if (avail < 0 || avail >= jack->min_avail) { + write(jack->fd, &buf, 1); + return 1; + } + + return 0; +} + static void snd_pcm_jack_free(snd_pcm_jack_t *jack) { if (jack) { @@ -81,14 +118,10 @@ struct pollfd *pfds, unsigned int nfds, unsigned short *revents) { - static char buf[1]; - assert(pfds && nfds == 1 && revents); - read(pfds[0].fd, buf, 1); - *revents = pfds[0].revents & ~(POLLIN | POLLOUT); - if (pfds[0].revents & POLLIN) + if (pfds[0].revents & POLLIN && !pcm_poll_block_check(io)) *revents |= (io->stream == SND_PCM_STREAM_PLAYBACK) ? POLLOUT : POLLIN; return 0; } @@ -105,7 +138,6 @@ snd_pcm_jack_t *jack = io->private_data; const snd_pcm_channel_area_t *areas; snd_pcm_uframes_t xfer = 0; - static char buf[1]; unsigned int channel; for (channel = 0; channel < io->channels; channel++) { @@ -145,7 +177,7 @@ xfer += frames; } - write(jack->fd, buf, 1); /* for polling */ + pcm_poll_unblock_check(io); /* unblock socket for polling if needed */ return 0; } @@ -154,9 +186,26 @@ { snd_pcm_jack_t *jack = io->private_data; unsigned int i; + snd_pcm_sw_params_t *swparams; + int err; jack->hw_ptr = 0; + jack->min_avail = io->period_size; + snd_pcm_sw_params_alloca(&swparams); + err = snd_pcm_sw_params_current(io->pcm, swparams); + if (err == 0) { + snd_pcm_sw_params_get_avail_min(swparams, &jack->min_avail); + } + + /* deactivate jack connections if this is XRUN recovery */ + snd_pcm_jack_stop(io); + + if (io->stream == SND_PCM_STREAM_PLAYBACK) + pcm_poll_unblock_check(io); /* playback pcm initially accepts writes */ + else + pcm_poll_block_check(io); /* block capture pcm if that's XRUN recovery */ + if (jack->ports) return 0; @@ -356,20 +405,27 @@ return -EINVAL; } - if (snprintf(jack_client_name, sizeof(jack_client_name), "alsa-jack.%s%s.%d.%d", name, - stream == SND_PCM_STREAM_PLAYBACK ? "P" : "C", getpid(), num++) - >= (int)sizeof(jack_client_name)) { + if (name == NULL) + err = snprintf(jack_client_name, sizeof(jack_client_name), + "alsa-jack.%s%s.%d.%d", name, + stream == SND_PCM_STREAM_PLAYBACK ? "P" : "C", + getpid(), num++); + else + err = snprintf(jack_client_name, sizeof(jack_client_name), + "%s", name); + + if (err >= (int)sizeof(jack_client_name)) { fprintf(stderr, "%s: WARNING: JACK client name '%s' truncated to %d characters, might not be unique\n", __func__, jack_client_name, (int)strlen(jack_client_name)); } - jack->client = jack_client_new(jack_client_name); + jack->client = jack_client_open(jack_client_name, JackNoStartServer, NULL); if (jack->client == 0) { snd_pcm_jack_free(jack); return -ENOENT; } - + jack->areas = calloc(jack->channels, sizeof(snd_pcm_channel_area_t)); if (! jack->areas) { snd_pcm_jack_free(jack); @@ -423,6 +479,10 @@ continue; if (strcmp(id, "comment") == 0 || strcmp(id, "type") == 0 || strcmp(id, "hint") == 0) continue; + if (strcmp(id, "name") == 0) { + snd_config_get_string(n, &name); + continue; + } if (strcmp(id, "playback_ports") == 0) { if (snd_config_get_type(n) != SND_CONFIG_TYPE_COMPOUND) { SNDERR("Invalid type for %s", id); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.0.27/mix/pcm_upmix.c new/alsa-plugins-1.0.28/mix/pcm_upmix.c --- old/alsa-plugins-1.0.27/mix/pcm_upmix.c 2013-04-11 13:43:08.000000000 +0200 +++ new/alsa-plugins-1.0.28/mix/pcm_upmix.c 2014-06-12 11:32:45.000000000 +0200 @@ -371,10 +371,63 @@ return 0; } +#if SND_PCM_EXTPLUG_VERSION >= 0x102 +static unsigned int chmap[8][8] = { + { SND_CHMAP_MONO }, + { SND_CHMAP_FL, SND_CHMAP_FR }, + { SND_CHMAP_FL, SND_CHMAP_FR, SND_CHMAP_FC }, + { SND_CHMAP_FL, SND_CHMAP_FR, SND_CHMAP_RL, SND_CHMAP_RR }, + { SND_CHMAP_FL, SND_CHMAP_FR, SND_CHMAP_RL, SND_CHMAP_RR, SND_CHMAP_FC }, + { SND_CHMAP_FL, SND_CHMAP_FR, SND_CHMAP_RL, SND_CHMAP_RR, SND_CHMAP_FC, SND_CHMAP_LFE }, + { SND_CHMAP_FL, SND_CHMAP_FR, SND_CHMAP_RL, SND_CHMAP_RR, SND_CHMAP_FC, SND_CHMAP_LFE, SND_CHMAP_UNKNOWN }, + { SND_CHMAP_FL, SND_CHMAP_FR, SND_CHMAP_RL, SND_CHMAP_RR, SND_CHMAP_FC, SND_CHMAP_LFE, SND_CHMAP_SL, SND_CHMAP_SR }, +}; + +static snd_pcm_chmap_query_t **upmix_query_chmaps(snd_pcm_extplug_t *ext ATTRIBUTE_UNUSED) +{ + snd_pcm_chmap_query_t **maps; + int i; + + maps = calloc(9, sizeof(void *)); + if (!maps) + return NULL; + for (i = 0; i < 8; i++) { + snd_pcm_chmap_query_t *p; + p = maps[i] = calloc(i + 1 + 2, sizeof(int)); + if (!p) { + snd_pcm_free_chmaps(maps); + return NULL; + } + p->type = SND_CHMAP_TYPE_FIXED; + p->map.channels = i + 1; + memcpy(p->map.pos, &chmap[i][0], (i + 1) * sizeof(int)); + } + return maps; +} + +static snd_pcm_chmap_t *upmix_get_chmap(snd_pcm_extplug_t *ext) +{ + snd_pcm_chmap_t *map; + + if (ext->channels < 1 || ext->channels > 8) + return NULL; + map = malloc((ext->channels + 1) * sizeof(int)); + if (!map) + return NULL; + map->channels = ext->channels; + memcpy(map->pos, &chmap[ext->channels - 1][0], ext->channels * sizeof(int)); + return map; +} +#endif /* SND_PCM_EXTPLUG_VERSION >= 0x102 */ + static const snd_pcm_extplug_callback_t upmix_callback = { .transfer = upmix_transfer, .init = upmix_init, .close = upmix_close, +#if SND_PCM_EXTPLUG_VERSION >= 0x102 + .query_chmaps = upmix_query_chmaps, + .get_chmap = upmix_get_chmap, +#endif }; SND_PCM_PLUGIN_DEFINE_FUNC(upmix) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.0.27/mix/pcm_vdownmix.c new/alsa-plugins-1.0.28/mix/pcm_vdownmix.c --- old/alsa-plugins-1.0.27/mix/pcm_vdownmix.c 2013-04-11 13:43:08.000000000 +0200 +++ new/alsa-plugins-1.0.28/mix/pcm_vdownmix.c 2014-06-12 11:32:45.000000000 +0200 @@ -277,10 +277,58 @@ return 0; } +#if SND_PCM_EXTPLUG_VERSION >= 0x102 +static unsigned int chmap[6] = { + SND_CHMAP_FL, SND_CHMAP_FR, + SND_CHMAP_RL, SND_CHMAP_RR, + SND_CHMAP_FC, SND_CHMAP_LFE, +}; + +static snd_pcm_chmap_query_t **vdownmix_query_chmaps(snd_pcm_extplug_t *ext ATTRIBUTE_UNUSED) +{ + snd_pcm_chmap_query_t **maps; + int i; + + maps = calloc(4, sizeof(void *)); + if (!maps) + return NULL; + for (i = 0; i < 3; i++) { + snd_pcm_chmap_query_t *p; + p = maps[i] = calloc(i + 4 + 2, sizeof(int)); + if (!p) { + snd_pcm_free_chmaps(maps); + return NULL; + } + p->type = SND_CHMAP_TYPE_FIXED; + p->map.channels = i + 4; + memcpy(p->map.pos, chmap, (i + 4) * sizeof(int)); + } + return maps; +} + +static snd_pcm_chmap_t *vdownmix_get_chmap(snd_pcm_extplug_t *ext) +{ + snd_pcm_chmap_t *map; + + if (ext->channels < 4 || ext->channels > 6) + return NULL; + map = malloc((ext->channels + 1) * sizeof(int)); + if (!map) + return NULL; + map->channels = ext->channels; + memcpy(map->pos, chmap, ext->channels * sizeof(int)); + return map; +} +#endif /* SND_PCM_EXTPLUG_VERSION >= 0x102 */ + static const snd_pcm_extplug_callback_t vdownmix_callback = { .transfer = vdownmix_transfer, .init = vdownmix_init, /* .dump = filr_dump, */ +#if SND_PCM_EXTPLUG_VERSION >= 0x102 + .query_chmaps = vdownmix_query_chmaps, + .get_chmap = vdownmix_get_chmap, +#endif }; SND_PCM_PLUGIN_DEFINE_FUNC(vdownmix) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/alsa-plugins-1.0.27/version new/alsa-plugins-1.0.28/version --- old/alsa-plugins-1.0.27/version 2013-04-11 14:54:28.000000000 +0200 +++ new/alsa-plugins-1.0.28/version 2014-06-13 11:23:48.000000000 +0200 @@ -1 +1 @@ -1.0.27 +1.0.28 -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
