diff -Nru alsa-plugins-1.2.1/configure alsa-plugins-1.2.2/configure --- alsa-plugins-1.2.1/configure 2019-11-13 12:26:26.000000000 +0000 +++ alsa-plugins-1.2.2/configure 2020-02-19 10:26:52.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for alsa-plugins 1.2.1. +# Generated by GNU Autoconf 2.69 for alsa-plugins 1.2.2. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -587,8 +587,8 @@ # Identity of this package. PACKAGE_NAME='alsa-plugins' PACKAGE_TARNAME='alsa-plugins' -PACKAGE_VERSION='1.2.1' -PACKAGE_STRING='alsa-plugins 1.2.1' +PACKAGE_VERSION='1.2.2' +PACKAGE_STRING='alsa-plugins 1.2.2' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1410,7 +1410,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures alsa-plugins 1.2.1 to adapt to many kinds of systems. +\`configure' configures alsa-plugins 1.2.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1480,7 +1480,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of alsa-plugins 1.2.1:";; + short | recursive ) echo "Configuration of alsa-plugins 1.2.2:";; esac cat <<\_ACEOF @@ -1648,7 +1648,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -alsa-plugins configure 1.2.1 +alsa-plugins configure 1.2.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2013,7 +2013,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by alsa-plugins $as_me 1.2.1, which was +It was created by alsa-plugins $as_me 1.2.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2876,7 +2876,7 @@ # Define the identity of the package. PACKAGE='alsa-plugins' - VERSION='1.2.1' + VERSION='1.2.2' cat >>confdefs.h <<_ACEOF @@ -12229,9 +12229,13 @@ case $host in - *-freebsd*) ;; + + *-freebsd* | *-openbsd*) ;; + *-mingw*) + LDFLAGS_NOUNDEFINED="-no-undefined" + ;; *) - for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do + for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports $possible_flags flag" >&5 $as_echo_n "checking if $CC supports $possible_flags flag... " >&6; } @@ -12262,7 +12266,7 @@ LDFLAGS_NOUNDEFINED="$possible_flags" fi - break + if test "x$LDFLAGS_NOUNDEFINED" = "x"; then break; fi done ;; esac @@ -14201,7 +14205,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by alsa-plugins $as_me 1.2.1, which was +This file was extended by alsa-plugins $as_me 1.2.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14267,7 +14271,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -alsa-plugins config.status 1.2.1 +alsa-plugins config.status 1.2.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru alsa-plugins-1.2.1/configure.ac alsa-plugins-1.2.2/configure.ac --- alsa-plugins-1.2.1/configure.ac 2019-11-13 11:04:26.000000000 +0000 +++ alsa-plugins-1.2.2/configure.ac 2020-02-19 09:35:42.000000000 +0000 @@ -1,5 +1,5 @@ AC_PREREQ(2.59) -AC_INIT(alsa-plugins, 1.2.1) +AC_INIT(alsa-plugins, 1.2.2) AM_INIT_AUTOMAKE AC_PREFIX_DEFAULT(/usr) diff -Nru alsa-plugins-1.2.1/debian/changelog alsa-plugins-1.2.2/debian/changelog --- alsa-plugins-1.2.1/debian/changelog 2020-01-29 23:16:49.000000000 +0000 +++ alsa-plugins-1.2.2/debian/changelog 2020-03-04 08:40:30.000000000 +0000 @@ -1,10 +1,17 @@ -alsa-plugins (1.2.1-1ubuntu1) focal; urgency=medium +alsa-plugins (1.2.2-1ubuntu1) focal; urgency=medium * Resynchronize With Debian, remaining changes - Drop libavcodec-dev, libavresample-dev and libavutil-dev build-deps, updated the description according to that. - -- dann frazier Wed, 29 Jan 2020 16:16:49 -0700 + -- Sebastien Bacher Wed, 04 Mar 2020 09:40:30 +0100 + +alsa-plugins (1.2.2-1) unstable; urgency=medium + + * New upstream release. + * Update Standards-Version to 4.5.0. + + -- Jordi Mallach Sat, 29 Feb 2020 17:15:54 +0100 alsa-plugins (1.2.1-1) unstable; urgency=medium @@ -20,20 +27,6 @@ -- Jordi Mallach Tue, 05 Nov 2019 17:10:17 +0100 -alsa-plugins (1.1.9-0ubuntu1) eoan; urgency=medium - - * New upstream version - - -- Sebastien Bacher Tue, 13 Aug 2019 20:48:58 +0200 - -alsa-plugins (1.1.8-1ubuntu1) disco; urgency=medium - - * Resynchronize With Debian, remaining changes - - Drop libavcodec-dev, libavresample-dev and libavutil-dev build-deps, - updated the description according to that. - - -- Sebastien Bacher Wed, 20 Feb 2019 16:09:49 +0100 - alsa-plugins (1.1.8-1) unstable; urgency=medium * New upstream release diff -Nru alsa-plugins-1.2.1/debian/control alsa-plugins-1.2.2/debian/control --- alsa-plugins-1.2.1/debian/control 2020-01-29 23:16:49.000000000 +0000 +++ alsa-plugins-1.2.2/debian/control 2020-03-04 08:40:30.000000000 +0000 @@ -1,8 +1,7 @@ Source: alsa-plugins Section: libs Priority: optional -Maintainer: Ubuntu Developers -XSBC-Original-Maintainer: Debian ALSA Maintainers +Maintainer: Debian ALSA Maintainers Uploaders: Jordi Mallach , Elimar Riesebieter , Luke Yelavich @@ -13,12 +12,11 @@ libpulse-dev (>= 0.99.1-1~), libsamplerate0-dev | libsamplerate-dev, libspeexdsp-dev -Standards-Version: 4.4.1 +Standards-Version: 4.5.0 Homepage: https://www.alsa-project.org/ Vcs-Git: https://salsa.debian.org/alsa-team/alsa-plugins.git Vcs-Browser: https://salsa.debian.org/alsa-team/alsa-plugins Rules-Requires-Root: no -Vcs-Bzr: http://bazaar.launchpad.net/~ubuntu-audio-dev/alsa-plugins/ubuntu Package: libasound2-plugins Architecture: linux-any @@ -30,10 +28,11 @@ not included in the main libasound2 package. . The following plugins are included, among other: + - a52: S16 to A52 stream converter - jack: play or capture via JACK - oss: run native ALSA apps on OSS drivers - pulse: play or capture via Pulse Audio - - samplerate and speexrate: rate converters + - lavcrate, samplerate and speexrate: rate converters - upmix and vdownmix: convert from/to 2 and 4/6 channel streams . ALSA is the Advanced Linux Sound Architecture. diff -Nru alsa-plugins-1.2.1/m4/attributes.m4 alsa-plugins-1.2.2/m4/attributes.m4 --- alsa-plugins-1.2.1/m4/attributes.m4 2019-11-13 11:04:26.000000000 +0000 +++ alsa-plugins-1.2.2/m4/attributes.m4 2020-02-19 09:35:42.000000000 +0000 @@ -1,6 +1,6 @@ dnl Macros to check the presence of generic (non-typed) symbols. -dnl Copyright (c) 2006-2007 Diego Pettenò -dnl Copyright (c) 2006-2007 xine project +dnl Copyright (c) 2006-2008 Diego Pettenò +dnl Copyright (c) 2006-2008 xine project dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by @@ -25,7 +25,7 @@ dnl of the text of the Macro appear in them. The GNU General Public dnl License (GPL) does govern all other use of the material that dnl constitutes the Autoconf Macro. -dnl +dnl dnl This special exception to the GPL applies to versions of the dnl Autoconf Macro released by this project. When you make and dnl distribute a modified version of the Autoconf Macro, you may extend @@ -39,7 +39,7 @@ AC_CACHE_VAL(AS_TR_SH([cc_cv_cflags_$1]), [ac_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $1" - AC_COMPILE_IFELSE([int a;], + AC_COMPILE_IFELSE([AC_LANG_SOURCE([int a;])], [eval "AS_TR_SH([cc_cv_cflags_$1])='yes'"], [eval "AS_TR_SH([cc_cv_cflags_$1])='no'"]) CFLAGS="$ac_save_CFLAGS" @@ -71,7 +71,7 @@ ) AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], - [CFLAGS="$CFLAGS $1"; $2], [$3]) + [CFLAGS="$CFLAGS $1"; DEBUG_CFLAGS="$DEBUG_CFLAGS $1"; $2], [$3]) ]) dnl CC_CHECK_CFLAGS_APPEND([FLAG1 FLAG2], [action-if-found], [action-if-not]) @@ -89,7 +89,7 @@ AS_TR_SH([cc_cv_ldflags_$1]), [ac_save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $1" - AC_LINK_IFELSE([int main() { return 1; }], + AC_LINK_IFELSE([AC_LANG_SOURCE([int main() { return 1; }])], [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"], [eval "AS_TR_SH([cc_cv_ldflags_$1])="]) LDFLAGS="$ac_save_LDFLAGS" @@ -109,14 +109,21 @@ dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads dnl are requested, as different implementations are present; to avoid problems dnl use -Wl,-z,defs only for those platform not behaving this way. - *-freebsd*) ;; + dnl + dnl MinGW platforms: for libraries required -no-undefined, + dnl use it only for libraries in mingw32-w64 + + *-freebsd* | *-openbsd*) ;; + *-mingw*) + LDFLAGS_NOUNDEFINED="-no-undefined" + ;; *) dnl First of all check for the --no-undefined variant of GNU ld. This allows dnl for a much more readable commandline, so that people can understand what dnl it does without going to look for what the heck -z defs does. - for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do + for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do CC_CHECK_LDFLAGS([$possible_flags], [LDFLAGS_NOUNDEFINED="$possible_flags"]) - break + if test "x$LDFLAGS_NOUNDEFINED" = "x"; then break; fi done ;; esac @@ -147,7 +154,7 @@ AS_TR_SH([cc_cv_attribute_$1]), [ac_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $cc_cv_werror" - AC_COMPILE_IFELSE([$3], + AC_COMPILE_IFELSE([AC_LANG_SOURCE([$3])], [eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"], [eval "AS_TR_SH([cc_cv_attribute_$1])='no'"]) CFLAGS="$ac_save_CFLAGS" @@ -257,7 +264,7 @@ cc_cv_flag_visibility='yes', cc_cv_flag_visibility='no') CFLAGS="$cc_flag_visibility_save_CFLAGS"]) - + AS_IF([test "x$cc_cv_flag_visibility" = "xyes"], [AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1, [Define this if the compiler supports the -fvisibility flag]) @@ -295,11 +302,11 @@ [ac_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $cc_cv_werror" for cc_attribute_align_try in 64 32 16 8 4 2; do - AC_COMPILE_IFELSE([ + AC_COMPILE_IFELSE([AC_LANG_SOURCE([ int main() { static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0; return c; - }], [cc_cv_attribute_aligned=$cc_attribute_align_try; break]) + }])], [cc_cv_attribute_aligned=$cc_attribute_align_try; break]) done CFLAGS="$ac_save_CFLAGS" ]) diff -Nru alsa-plugins-1.2.1/mix/pcm_upmix.c alsa-plugins-1.2.2/mix/pcm_upmix.c --- alsa-plugins-1.2.1/mix/pcm_upmix.c 2019-11-13 11:04:26.000000000 +0000 +++ alsa-plugins-1.2.2/mix/pcm_upmix.c 2020-02-19 09:35:42.000000000 +0000 @@ -21,6 +21,10 @@ #include #include +#define UPMIX_PCM_FORMAT SND_PCM_FORMAT_S16 + +typedef short upmix_sample_t; + typedef struct snd_pcm_upmix snd_pcm_upmix_t; typedef void (*upmixer_t)(snd_pcm_upmix_t *mix, @@ -38,9 +42,10 @@ upmixer_t upmix; unsigned int curpos; int delay; - short *delayline[2]; + upmix_sample_t *delayline[2]; }; +/* Get the current address of a channel area */ static inline void *area_addr(const snd_pcm_channel_area_t *area, snd_pcm_uframes_t offset) { @@ -48,9 +53,10 @@ return (char *) area->addr + bitofs / 8; } +/* Convert step size in bits to steps of samples */ static inline unsigned int area_step(const snd_pcm_channel_area_t *area) { - return area->step / 8; + return area->step / 8 / sizeof(upmix_sample_t); } /* Delayed copy SL & SR */ @@ -61,36 +67,37 @@ snd_pcm_uframes_t src_offset, unsigned int size) { - unsigned int i, p, delay, curpos, dst_step, src_step; - short *dst, *src; + unsigned int channel, p, delay, curpos, dst_step, src_step; + upmix_sample_t *dst, *src; if (! mix->delay_ms) { snd_pcm_areas_copy(dst_areas, dst_offset, src_areas, src_offset, - 2, size, SND_PCM_FORMAT_S16); + 2, size, UPMIX_PCM_FORMAT); return; } delay = mix->delay; if (delay > size) delay = size; - for (i = 0; i < 2; i++) { - dst = (short *)area_addr(dst_areas + i, dst_offset); - dst_step = area_step(dst_areas + i) / 2; + + for (channel = 0; channel < 2; channel++) { + dst = (upmix_sample_t *)area_addr(&dst_areas[channel], dst_offset); + dst_step = area_step(&dst_areas[channel]); curpos = mix->curpos; for (p = 0; p < delay; p++) { - *dst = mix->delayline[i][curpos]; + *dst = mix->delayline[channel][curpos]; dst += dst_step; curpos = (curpos + 1) % mix->delay; } - snd_pcm_area_copy(dst_areas + i, dst_offset + delay, - src_areas + i, src_offset, - size - delay, SND_PCM_FORMAT_S16); - src = (short *)area_addr(src_areas + i, - src_offset + size - delay); - src_step = area_step(src_areas + i) / 2; + snd_pcm_area_copy(&dst_areas[channel], dst_offset + delay, + &src_areas[channel], src_offset, + size - delay, UPMIX_PCM_FORMAT); + src = (upmix_sample_t *)area_addr(&src_areas[channel], + src_offset + size - delay); + src_step = area_step(&src_areas[channel]); curpos = mix->curpos; for (p = 0; p < delay; p++) { - mix->delayline[i][curpos] = *src; + mix->delayline[channel][curpos] = *src; src += src_step; curpos = (curpos + 1) % mix->delay; } @@ -103,25 +110,25 @@ snd_pcm_uframes_t dst_offset, const snd_pcm_channel_area_t *src_areas, snd_pcm_uframes_t src_offset, - unsigned int nchns, unsigned int size) { - short *dst[2], *src[2]; - unsigned int i, dst_step[2], src_step[2]; - - for (i = 0; i < nchns; i++) { - dst[i] = (short *)area_addr(dst_areas + i, dst_offset); - dst_step[i] = area_step(dst_areas + i) / 2; + static const unsigned int nchns = 2; + upmix_sample_t *dst[nchns], *src[2]; + unsigned int channel, dst_step[nchns], src_step[2]; + + for (channel = 0; channel < nchns; channel++) { + dst[channel] = (upmix_sample_t *)area_addr(&dst_areas[channel], dst_offset); + dst_step[channel] = area_step(&dst_areas[channel]); } - for (i = 0; i < 2; i++) { - src[i] = (short *)area_addr(src_areas + i, src_offset); - src_step[i] = area_step(src_areas + i) / 2; + for (channel = 0; channel < 2; channel++) { + src[channel] = (upmix_sample_t *)area_addr(&src_areas[channel], src_offset); + src_step[channel] = area_step(&src_areas[channel]); } while (size--) { - short val = (*src[0] >> 1) + (*src[1] >> 1); - for (i = 0; i < nchns; i++) { - *dst[i] = val; - dst[i] += dst_step[i]; + upmix_sample_t val = (*src[0] >> 1) + (*src[1] >> 1); + for (channel = 0; channel < nchns; channel++) { + *dst[channel] = val; + dst[channel] += dst_step[channel]; } src[0] += src_step[0]; src[1] += src_step[1]; @@ -135,11 +142,11 @@ snd_pcm_uframes_t src_offset, snd_pcm_uframes_t size) { - int i; - for (i = 0; i < 8; i++) - snd_pcm_area_copy(dst_areas + i, dst_offset, + int channel; + for (channel = 0; channel < 8; channel++) + snd_pcm_area_copy(&dst_areas[channel], dst_offset, src_areas, src_offset, - size, SND_PCM_FORMAT_S16); + size, UPMIX_PCM_FORMAT); } static void upmix_1_to_51(snd_pcm_upmix_t *mix ATTRIBUTE_UNUSED, @@ -149,11 +156,11 @@ snd_pcm_uframes_t src_offset, snd_pcm_uframes_t size) { - int i; - for (i = 0; i < 6; i++) - snd_pcm_area_copy(dst_areas + i, dst_offset, + int channel; + for (channel = 0; channel < 6; channel++) + snd_pcm_area_copy(&dst_areas[channel], dst_offset, src_areas, src_offset, - size, SND_PCM_FORMAT_S16); + size, UPMIX_PCM_FORMAT); } static void upmix_1_to_40(snd_pcm_upmix_t *mix ATTRIBUTE_UNUSED, @@ -163,11 +170,11 @@ snd_pcm_uframes_t src_offset, snd_pcm_uframes_t size) { - int i; - for (i = 0; i < 4; i++) - snd_pcm_area_copy(dst_areas + i, dst_offset, + int channel; + for (channel = 0; channel < 4; channel++) + snd_pcm_area_copy(&dst_areas[channel], dst_offset, src_areas, src_offset, - size, SND_PCM_FORMAT_S16); + size, UPMIX_PCM_FORMAT); } static void upmix_2_to_71(snd_pcm_upmix_t *mix, @@ -178,13 +185,11 @@ snd_pcm_uframes_t size) { snd_pcm_areas_copy(dst_areas, dst_offset, src_areas, src_offset, - 2, size, SND_PCM_FORMAT_S16); - delayed_copy(mix, dst_areas + 2, dst_offset, src_areas, src_offset, - size); - average_copy(dst_areas + 4, dst_offset, src_areas, src_offset, - 2, size); + 2, size, UPMIX_PCM_FORMAT); + delayed_copy(mix, dst_areas + 2, dst_offset, src_areas, src_offset, size); + average_copy(dst_areas + 4, dst_offset, src_areas, src_offset, size); snd_pcm_areas_copy(dst_areas + 6, dst_offset, src_areas, src_offset, - 2, size, SND_PCM_FORMAT_S16); + 2, size, UPMIX_PCM_FORMAT); } @@ -196,11 +201,9 @@ snd_pcm_uframes_t size) { snd_pcm_areas_copy(dst_areas, dst_offset, src_areas, src_offset, - 2, size, SND_PCM_FORMAT_S16); - delayed_copy(mix, dst_areas + 2, dst_offset, src_areas, src_offset, - size); - average_copy(dst_areas + 4, dst_offset, src_areas, src_offset, - 2, size); + 2, size, UPMIX_PCM_FORMAT); + delayed_copy(mix, dst_areas + 2, dst_offset, src_areas, src_offset, size); + average_copy(dst_areas + 4, dst_offset, src_areas, src_offset, size); } static void upmix_2_to_40(snd_pcm_upmix_t *mix, @@ -211,9 +214,8 @@ snd_pcm_uframes_t size) { snd_pcm_areas_copy(dst_areas, dst_offset, src_areas, src_offset, - 2, size, SND_PCM_FORMAT_S16); - delayed_copy(mix, dst_areas + 2, dst_offset, src_areas, src_offset, - size); + 2, size, UPMIX_PCM_FORMAT); + delayed_copy(mix, dst_areas + 2, dst_offset, src_areas, src_offset, size); } static void upmix_3_to_51(snd_pcm_upmix_t *mix, @@ -224,11 +226,10 @@ snd_pcm_uframes_t size) { snd_pcm_areas_copy(dst_areas, dst_offset, src_areas, src_offset, - 2, size, SND_PCM_FORMAT_S16); - delayed_copy(mix, dst_areas + 2, dst_offset, src_areas, src_offset, - size); + 2, size, UPMIX_PCM_FORMAT); + delayed_copy(mix, dst_areas + 2, dst_offset, src_areas, src_offset, size); snd_pcm_areas_copy(dst_areas + 4, dst_offset, src_areas, src_offset, - 2, size, SND_PCM_FORMAT_S16); + 2, size, UPMIX_PCM_FORMAT); } static void upmix_3_to_40(snd_pcm_upmix_t *mix, @@ -239,9 +240,8 @@ snd_pcm_uframes_t size) { snd_pcm_areas_copy(dst_areas, dst_offset, src_areas, src_offset, - 2, size, SND_PCM_FORMAT_S16); - delayed_copy(mix, dst_areas + 2, dst_offset, src_areas, src_offset, - size); + 2, size, UPMIX_PCM_FORMAT); + delayed_copy(mix, dst_areas + 2, dst_offset, src_areas, src_offset, size); } static void upmix_4_to_51(snd_pcm_upmix_t *mix ATTRIBUTE_UNUSED, @@ -252,9 +252,9 @@ snd_pcm_uframes_t size) { snd_pcm_areas_copy(dst_areas, dst_offset, src_areas, src_offset, - 4, size, SND_PCM_FORMAT_S16); + 4, size, UPMIX_PCM_FORMAT); snd_pcm_areas_copy(dst_areas + 4, dst_offset, src_areas, src_offset, - 2, size, SND_PCM_FORMAT_S16); + 2, size, UPMIX_PCM_FORMAT); } static void upmix_4_to_40(snd_pcm_upmix_t *mix ATTRIBUTE_UNUSED, @@ -265,7 +265,7 @@ snd_pcm_uframes_t size) { snd_pcm_areas_copy(dst_areas, dst_offset, src_areas, src_offset, - 4, size, SND_PCM_FORMAT_S16); + 4, size, UPMIX_PCM_FORMAT); } static void upmix_5_to_51(snd_pcm_upmix_t *mix ATTRIBUTE_UNUSED, @@ -276,9 +276,9 @@ snd_pcm_uframes_t size) { snd_pcm_areas_copy(dst_areas, dst_offset, src_areas, src_offset, - 5, size, SND_PCM_FORMAT_S16); + 5, size, UPMIX_PCM_FORMAT); snd_pcm_area_copy(dst_areas + 5, dst_offset, src_areas + 4, src_offset, - size, SND_PCM_FORMAT_S16); + size, UPMIX_PCM_FORMAT); } static void upmix_6_to_51(snd_pcm_upmix_t *mix ATTRIBUTE_UNUSED, @@ -289,7 +289,7 @@ snd_pcm_uframes_t size) { snd_pcm_areas_copy(dst_areas, dst_offset, src_areas, src_offset, - 6, size, SND_PCM_FORMAT_S16); + 6, size, UPMIX_PCM_FORMAT); } static void upmix_8_to_71(snd_pcm_upmix_t *mix ATTRIBUTE_UNUSED, @@ -300,7 +300,7 @@ snd_pcm_uframes_t size) { snd_pcm_areas_copy(dst_areas, dst_offset, src_areas, src_offset, - 8, size, SND_PCM_FORMAT_S16); + 8, size, UPMIX_PCM_FORMAT); } static const upmixer_t do_upmix[8][3] = { @@ -334,7 +334,7 @@ int ctype, stype; switch (ext->slave_channels) { - case 6: + case 6: stype = 1; break; case 8: @@ -354,8 +354,8 @@ free(mix->delayline[0]); free(mix->delayline[1]); mix->delay = ext->rate * mix->delay_ms / 1000; - mix->delayline[0] = calloc(2, mix->delay); - mix->delayline[1] = calloc(2, mix->delay); + mix->delayline[0] = calloc(sizeof(upmix_sample_t), mix->delay); + mix->delayline[1] = calloc(sizeof(upmix_sample_t), mix->delay); if (! mix->delayline[0] || ! mix->delayline[1]) return -ENOMEM; mix->curpos = 0; diff -Nru alsa-plugins-1.2.1/version alsa-plugins-1.2.2/version --- alsa-plugins-1.2.1/version 2019-11-13 12:26:30.000000000 +0000 +++ alsa-plugins-1.2.2/version 2020-02-19 10:26:56.000000000 +0000 @@ -1 +1 @@ -1.2.1 +1.2.2