summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wendler <polynomial-c@gentoo.org>2020-02-20 16:42:05 +0100
committerLars Wendler <polynomial-c@gentoo.org>2020-02-20 16:49:32 +0100
commita33c9086ce400e80dba0944c142460fda822f640 (patch)
tree5d23cebe5f3ed7dbe605ec22f68ddac747a02ac7 /media-plugins
parentmedia-libs/alsa-ucm-conf: Removed old (diff)
downloadgentoo-a33c9086ce400e80dba0944c142460fda822f640.tar.gz
gentoo-a33c9086ce400e80dba0944c142460fda822f640.tar.bz2
gentoo-a33c9086ce400e80dba0944c142460fda822f640.zip
media-plugins/alsa-plugins: Removed old
Package-Manager: Portage-2.3.89, Repoman-2.3.20 Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
Diffstat (limited to 'media-plugins')
-rw-r--r--media-plugins/alsa-plugins/Manifest1
-rw-r--r--media-plugins/alsa-plugins/alsa-plugins-1.1.1-r1.ebuild100
-rw-r--r--media-plugins/alsa-plugins/alsa-plugins-1.1.9-r1.ebuild103
-rw-r--r--media-plugins/alsa-plugins/files/alsa-plugins-1.0.23-automagic.patch12
-rw-r--r--media-plugins/alsa-plugins/files/alsa-plugins-1.0.28-libav10.patch338
5 files changed, 0 insertions, 554 deletions
diff --git a/media-plugins/alsa-plugins/Manifest b/media-plugins/alsa-plugins/Manifest
index f307fab40303..9d8379446d62 100644
--- a/media-plugins/alsa-plugins/Manifest
+++ b/media-plugins/alsa-plugins/Manifest
@@ -1,4 +1,3 @@
-DIST alsa-plugins-1.1.1.tar.bz2 366193 BLAKE2B 02892b0c241cf34d3bfce6cf580dbb6bedbce9253c3e57f04d3093a6cbb1d5b5e9b92566945962b875de20ba3e556e9c1fc4bb4e970502e3c03fc821e5e264fe SHA512 9dd277cb5cce144ce4e5e0010cebcba0f8634c783e7bcd80ce6d04b198d6de5150a2764df3087a39a468b5fb7c4578de2e252095568e811dedaa5e7ffdbeb7c9
DIST alsa-plugins-1.1.8.tar.bz2 375346 BLAKE2B 65c161ee375e7aed85dbe918a39bc2aa4818bbcfbaadf405f5f0170d9944ff55b5a9da3690e3cd78bd7ffff74ecf235f49cfc3a5dfe18b627c5a9cb0dc1eb207 SHA512 bb1a4411921ec332f47b43515f6d3b4c03a01568854950b9b5c3f0d8172d9a0c4a5b3652bc64c62eae5ea3aaa5d95fe3d32c0a213fe99adf490a9807bcb58ecd
DIST alsa-plugins-1.1.9.tar.bz2 406127 BLAKE2B 10bf3e96289a88edabfa3018d33ab4666982fe409eb41c486e6b9eee0dde87e926f3241c31e240b3bab114c8ab2c6d6bab92dd6192bceb467a01fcb6adc44b8e SHA512 1969dfe8f2bb4283e81a18da73d2f7f86d8788d1a8764d7195b4830b2f4704c208eacb50a1e26e20c9fe57e7d5bb06a004112d84cc86b4682b4180d2fec4d5d9
DIST alsa-plugins-1.2.1.tar.bz2 406309 BLAKE2B 2ac26ad87fcdcc4452ec32b2b437d3be4308f13ce2a8e24150f319805b6d684edc6be9e51654f27c1a5bbc01a7caa9eb70250be405dc6921ecd93ee417f24cdf SHA512 a49ef9290b66855112e301a5fd5a0932f13a50254e164f3340f2b342a36469532ee783beabfe5e95870dbf4cd81ca1e8d0415d94c8c7ee963133fb3c343721de
diff --git a/media-plugins/alsa-plugins/alsa-plugins-1.1.1-r1.ebuild b/media-plugins/alsa-plugins/alsa-plugins-1.1.1-r1.ebuild
deleted file mode 100644
index ea2912e9c1b1..000000000000
--- a/media-plugins/alsa-plugins/alsa-plugins-1.1.1-r1.ebuild
+++ /dev/null
@@ -1,100 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit autotools eutils flag-o-matic ltprune multilib multilib-minimal
-
-DESCRIPTION="ALSA extra plugins"
-HOMEPAGE="http://www.alsa-project.org/"
-SRC_URI="https://www.alsa-project.org/files/pub/plugins/${P}.tar.bz2"
-
-LICENSE="GPL-2 LGPL-2.1"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm hppa ia64 ppc ppc64 ~sh sparc x86 ~amd64-linux"
-IUSE="debug ffmpeg jack libav libsamplerate pulseaudio speex"
-
-RDEPEND="
- >=media-libs/alsa-lib-${PV}:=[${MULTILIB_USEDEP}]
- ffmpeg? (
- libav? ( media-video/libav:= )
- !libav? ( media-video/ffmpeg:0= )
- )
- jack? ( virtual/jack[${MULTILIB_USEDEP}] )
- libsamplerate? ( >=media-libs/libsamplerate-0.1.8-r1:=[${MULTILIB_USEDEP}] )
- pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] )
- speex? (
- >=media-libs/speex-1.2.0:=[${MULTILIB_USEDEP}]
- media-libs/speexdsp[${MULTILIB_USEDEP}]
- )
-"
-DEPEND="${RDEPEND}
- virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.0.23-automagic.patch"
- "${FILESDIR}/${PN}-1.0.28-libav10.patch"
-)
-
-src_prepare() {
- default
-
- # For some reasons the polyp/pulse plugin does fail with alsaplayer with a
- # failed assert. As the code works just fine with asserts disabled, for now
- # disable them waiting for a better solution.
- sed -i \
- -e '/AM_CFLAGS/s:-Wall:-DNDEBUG -Wall:' \
- pulse/Makefile.am || die
-
- eautoreconf
-}
-
-multilib_src_configure() {
- use debug || append-cppflags -DNDEBUG
-
- local myspeex=no
- use speex && myspeex=lib
-
- ECONF_SOURCE=${S} \
- econf \
- $(use_enable ffmpeg avcodec) \
- $(use_enable jack) \
- $(use_enable libsamplerate samplerate) \
- $(use_enable pulseaudio) \
- --with-speex=${myspeex}
-}
-
-multilib_src_install_all() {
- einstalldocs
-
- cd doc || die
- dodoc upmix.txt vdownmix.txt README-pcm-oss
- use jack && dodoc README-jack
- use libsamplerate && dodoc samplerate.txt
- use ffmpeg && dodoc lavcrate.txt a52.txt
-
- if use pulseaudio; then
- dodoc README-pulse
- # install ALSA configuration files
- # making PA to be used by alsa clients
- insinto /usr/share/alsa
- doins "${FILESDIR}"/pulse-default.conf
- insinto /usr/share/alsa/alsa.conf.d
- doins "${FILESDIR}"/51-pulseaudio-probe.conf
- # bug #410261, comment 5+
- # seems to work fine without any path
- sed -i \
- -e "s:/usr/lib/alsa-lib/::" \
- "${ED}"/usr/share/alsa/alsa.conf.d/51-pulseaudio-probe.conf || die #410261
- fi
-
- prune_libtool_files --all
-}
-
-pkg_postinst() {
- if use pulseaudio; then
- einfo "The PulseAudio device is now set as the default device if the"
- einfo "PulseAudio server is found to be running. Any custom"
- einfo "configuration in /etc/asound.conf or ~/.asoundrc for this"
- einfo "purpose should now be unnecessary."
- fi
-}
diff --git a/media-plugins/alsa-plugins/alsa-plugins-1.1.9-r1.ebuild b/media-plugins/alsa-plugins/alsa-plugins-1.1.9-r1.ebuild
deleted file mode 100644
index fba448266fcc..000000000000
--- a/media-plugins/alsa-plugins/alsa-plugins-1.1.9-r1.ebuild
+++ /dev/null
@@ -1,103 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit autotools flag-o-matic multilib multilib-minimal
-
-DESCRIPTION="ALSA extra plugins"
-HOMEPAGE="http://www.alsa-project.org/"
-SRC_URI="https://www.alsa-project.org/files/pub/plugins/${P}.tar.bz2"
-
-LICENSE="GPL-2 LGPL-2.1"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-linux"
-IUSE="arcam_av debug ffmpeg jack libav libsamplerate +mix oss pulseaudio speex +usb_stream"
-
-RDEPEND="
- >=media-libs/alsa-lib-${PV}:=[${MULTILIB_USEDEP}]
- ffmpeg? (
- libav? ( media-video/libav:= )
- !libav? ( media-video/ffmpeg:0= )
- )
- jack? ( virtual/jack[${MULTILIB_USEDEP}] )
- libsamplerate? ( >=media-libs/libsamplerate-0.1.8-r1:=[${MULTILIB_USEDEP}] )
- pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] )
- speex? (
- >=media-libs/speex-1.2.0:=[${MULTILIB_USEDEP}]
- media-libs/speexdsp[${MULTILIB_USEDEP}]
- )
-"
-DEPEND="${RDEPEND}"
-BDEPEND="virtual/pkgconfig"
-
-src_prepare() {
- default
-
- # For some reasons the polyp/pulse plugin does fail with alsaplayer with a
- # failed assert. As the code works just fine with asserts disabled, for now
- # disable them waiting for a better solution.
- sed -i \
- -e '/AM_CFLAGS/s:-Wall:-DNDEBUG -Wall:' \
- pulse/Makefile.am || die
-
- eautoreconf
-}
-
-multilib_src_configure() {
- use debug || append-cppflags -DNDEBUG
-
- local myeconfargs=(
- # default does not contain $prefix: bug #673464
- --with-alsalconfdir="${EPREFIX}"/etc/alsa/conf.d
-
- --with-speex="$(usex speex lib no)"
- $(use_enable arcam_av arcamav)
- $(use_enable ffmpeg libav)
- $(use_enable jack)
- $(use_enable libsamplerate samplerate)
- $(use_enable mix)
- $(use_enable oss)
- $(use_enable pulseaudio)
- $(use_enable speex speexdsp)
- $(use_enable usb_stream usbstream)
- )
- ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
-}
-
-multilib_src_install_all() {
- einstalldocs
-
- cd doc || die
- dodoc upmix.txt vdownmix.txt README-pcm-oss
- use jack && dodoc README-jack
- use libsamplerate && dodoc samplerate.txt
- use ffmpeg && dodoc lavrate.txt a52.txt
-
- if use pulseaudio; then
- dodoc README-pulse
- # install ALSA configuration files
- # making PA to be used by alsa clients
- insinto /usr/share/alsa
- doins "${FILESDIR}"/pulse-default.conf
- insinto /usr/share/alsa/alsa.conf.d
- doins "${FILESDIR}"/51-pulseaudio-probe.conf
- # bug #410261, comment 5+
- # seems to work fine without any path
- sed -i \
- -e "s:/usr/lib/alsa-lib/::" \
- "${ED}"/usr/share/alsa/alsa.conf.d/51-pulseaudio-probe.conf || die #410261
- dosym ../../../usr/share/alsa/alsa.conf.d/51-pulseaudio-probe.conf \
- /etc/alsa/conf.d/51-pulseaudio-probe.conf #670960
- fi
-
- find "${ED}" \( -name '*.a' -o -name '*.la' \) -delete || die
-}
-
-pkg_postinst() {
- if use pulseaudio; then
- einfo "The PulseAudio device is now set as the default device if the"
- einfo "PulseAudio server is found to be running. Any custom"
- einfo "configuration in /etc/asound.conf or ~/.asoundrc for this"
- einfo "purpose should now be unnecessary."
- fi
-}
diff --git a/media-plugins/alsa-plugins/files/alsa-plugins-1.0.23-automagic.patch b/media-plugins/alsa-plugins/files/alsa-plugins-1.0.23-automagic.patch
deleted file mode 100644
index 8e62f20a143d..000000000000
--- a/media-plugins/alsa-plugins/files/alsa-plugins-1.0.23-automagic.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -uNr alsa-plugins-1.0.23.ORIg//Makefile.am alsa-plugins-1.0.23/Makefile.am
---- alsa-plugins-1.0.23.ORIg//Makefile.am 2010-04-16 23:38:58.546243512 +0100
-+++ alsa-plugins-1.0.23/Makefile.am 2010-04-16 23:39:20.049278487 +0100
-@@ -17,7 +17,7 @@
- if HAVE_PPH
- SUBDIRS += pph
- endif
--if HAVE_SPEEXDSP
-+if USE_LIBSPEEX
- SUBDIRS += speex
- endif
-
diff --git a/media-plugins/alsa-plugins/files/alsa-plugins-1.0.28-libav10.patch b/media-plugins/alsa-plugins/files/alsa-plugins-1.0.28-libav10.patch
deleted file mode 100644
index 9718369782b3..000000000000
--- a/media-plugins/alsa-plugins/files/alsa-plugins-1.0.28-libav10.patch
+++ /dev/null
@@ -1,338 +0,0 @@
-https://bugs.gentoo.org/539680
-
-From: Luca Barbato <lu_zero@gentoo.org>
-Description: lavr: Add a libavresample based rate plugin
-Date: Mon, 14 Apr 2014 10:01:07 +0200
-
-Provide lavcrate compatibility.
-
-Index: alsa-plugins-1.0.28/configure.ac
-===================================================================
---- alsa-plugins-1.0.28.orig/configure.ac
-+++ alsa-plugins-1.0.28/configure.ac
-@@ -66,7 +66,7 @@ if test "$use_maemo_rm" = "yes"; then
- fi
-
- AC_ARG_ENABLE([avcodec],
-- AS_HELP_STRING([--disable-avcodec], [Don't build plugins depending on avcodec (a52)]))
-+ AS_HELP_STRING([--disable-avcodec], [Do not 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])
-@@ -101,6 +101,10 @@ if test $HAVE_AVCODEC = yes; then
- if test -z "$AVCODEC_HEADER"; then
- HAVE_AVCODEC=no
- fi
-+ SAVE_LIBS=$LIBS
-+ LIBS="$LIBS $AVCODEC_LIBS"
-+ AC_CHECK_FUNCS([av_resample_init])
-+ LIBS=$SAVE_LIBS
- fi
-
- AM_CONDITIONAL(HAVE_AVCODEC, test x$HAVE_AVCODEC = xyes)
-@@ -108,6 +112,18 @@ AC_SUBST(AVCODEC_CFLAGS)
- AC_SUBST(AVCODEC_LIBS)
- AC_SUBST(AVCODEC_HEADER)
-
-+AC_ARG_ENABLE([avresample],
-+ AS_HELP_STRING([--disable-avresample], [Do not build plugins depending on avcodec (lavrate)]))
-+
-+if test "x$enable_avresample" != "xno"; then
-+ PKG_CHECK_MODULES(AVRESAMPLE, [libavresample libavutil], [HAVE_AVRESAMPLE=yes], [HAVE_AVRESAMPLE=no])
-+fi
-+
-+AM_CONDITIONAL(HAVE_AVRESAMPLE, test x$HAVE_AVCODEC = xyes)
-+AC_SUBST(AVRESAMPLE_CFLAGS)
-+AC_SUBST(AVRESAMPLE_LIBS)
-+AC_SUBST(AVRESAMPLE_HEADER)
-+
- PKG_CHECK_MODULES(speexdsp, [speexdsp >= 1.2], [HAVE_SPEEXDSP="yes"], [HAVE_SPEEXDSP=""])
- AM_CONDITIONAL(HAVE_SPEEXDSP, test "$HAVE_SPEEXDSP" = "yes")
-
-@@ -181,7 +197,7 @@ AC_OUTPUT([
- mix/Makefile
- rate/Makefile
- a52/Makefile
-- rate-lavc/Makefile
-+ rate-lavr/Makefile
- maemo/Makefile
- doc/Makefile
- usb_stream/Makefile
-Index: alsa-plugins-1.0.28/Makefile.am
-===================================================================
---- alsa-plugins-1.0.28.orig/Makefile.am
-+++ alsa-plugins-1.0.28/Makefile.am
-@@ -9,8 +9,14 @@ if HAVE_SAMPLERATE
- SUBDIRS += rate
- endif
- if HAVE_AVCODEC
-+SUBDIRS += a52
-+if !HAVE_AVRESAMPLE
- SUBDIRS += a52 rate-lavc
- endif
-+endif
-+if HAVE_AVRESAMPLE
-+SUBDIRS += rate-lavr
-+endif
- if HAVE_MAEMO_PLUGIN
- SUBDIRS += maemo
- endif
-Index: alsa-plugins-1.0.28/rate-lavr/Makefile.am
-===================================================================
---- /dev/null
-+++ alsa-plugins-1.0.28/rate-lavr/Makefile.am
-@@ -0,0 +1,22 @@
-+asound_module_rate_lavr_LTLIBRARIES = libasound_module_rate_lavr.la
-+
-+asound_module_rate_lavrdir = @ALSA_PLUGIN_DIR@
-+
-+AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @AVRESAMPLE_CFLAGS@
-+AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
-+
-+libasound_module_rate_lavr_la_SOURCES = rate_lavr.c
-+libasound_module_rate_lavr_la_LIBADD = @ALSA_LIBS@ @AVRESAMPLE_LIBS@
-+
-+
-+install-exec-hook:
-+ rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate*.so
-+ $(LN_S) libasound_module_rate_lavr.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate.so
-+ $(LN_S) libasound_module_rate_lavr.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_higher.so
-+ $(LN_S) libasound_module_rate_lavr.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_high.so
-+ $(LN_S) libasound_module_rate_lavr.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_fast.so
-+ $(LN_S) libasound_module_rate_lavr.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_faster.so
-+
-+uninstall-hook:
-+ rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate*.so
-+ rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavr*.so
-Index: alsa-plugins-1.0.28/rate-lavr/rate_lavr.c
-===================================================================
---- /dev/null
-+++ alsa-plugins-1.0.28/rate-lavr/rate_lavr.c
-@@ -0,0 +1,227 @@
-+/*
-+ * Rate converter plugin using libavresample
-+ * Copyright (c) 2014 by Anton Khirnov
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2.1 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ */
-+
-+#include <stdio.h>
-+#include <alsa/asoundlib.h>
-+#include <alsa/pcm_rate.h>
-+
-+#include <libavresample/avresample.h>
-+#include <libavutil/channel_layout.h>
-+#include <libavutil/opt.h>
-+#include <libavutil/mathematics.h>
-+#include <libavutil/samplefmt.h>
-+
-+
-+static int filter_size = 16;
-+static int phase_shift = 10; /* auto-adjusts */
-+static double cutoff = 0; /* auto-adjusts */
-+
-+struct rate_src {
-+ AVAudioResampleContext *avr;
-+
-+ int in_rate;
-+ int out_rate;
-+ unsigned int channels;
-+};
-+
-+static snd_pcm_uframes_t input_frames(void *obj, snd_pcm_uframes_t frames)
-+{
-+ return frames;
-+}
-+
-+static snd_pcm_uframes_t output_frames(void *obj, snd_pcm_uframes_t frames)
-+{
-+ return frames;
-+}
-+
-+static void pcm_src_free(void *obj)
-+{
-+ struct rate_src *rate = obj;
-+ avresample_free(&rate->avr);
-+}
-+
-+static int pcm_src_init(void *obj, snd_pcm_rate_info_t *info)
-+{
-+ struct rate_src *rate = obj;
-+ int i, ir, or;
-+
-+ if (!rate->avr || rate->channels != info->channels) {
-+ int ret;
-+
-+ pcm_src_free(rate);
-+ rate->channels = info->channels;
-+ ir = rate->in_rate = info->in.rate;
-+ or = rate->out_rate = info->out.rate;
-+ i = av_gcd(or, ir);
-+ if (or > ir) {
-+ phase_shift = or/i;
-+ } else {
-+ phase_shift = ir/i;
-+ }
-+ if (cutoff <= 0.0) {
-+ cutoff = 1.0 - 1.0/filter_size;
-+ if (cutoff < 0.80)
-+ cutoff = 0.80;
-+ }
-+
-+ rate->avr = avresample_alloc_context();
-+ if (!rate->avr)
-+ return -ENOMEM;
-+
-+ av_opt_set_int(rate->avr, "in_sample_rate", info->in.rate, 0);
-+ av_opt_set_int(rate->avr, "out_sample_rate", info->out.rate, 0);
-+ av_opt_set_int(rate->avr, "in_sample_format", AV_SAMPLE_FMT_S16, 0);
-+ av_opt_set_int(rate->avr, "out_sample_format", AV_SAMPLE_FMT_S16, 0);
-+ av_opt_set_int(rate->avr, "in_channel_layout", av_get_default_channel_layout(rate->channels), 0);
-+ av_opt_set_int(rate->avr, "out_channel_layout", av_get_default_channel_layout(rate->channels), 0);
-+
-+ av_opt_set_int(rate->avr, "filter_size", filter_size, 0);
-+ av_opt_set_int(rate->avr, "phase_shift", phase_shift, 0);
-+ av_opt_set_double(rate->avr, "cutoff", cutoff, 0);
-+
-+ ret = avresample_open(rate->avr);
-+ if (ret < 0) {
-+ avresample_free(&rate->avr);
-+ return -EINVAL;
-+ }
-+ }
-+
-+ return 0;
-+}
-+
-+static int pcm_src_adjust_pitch(void *obj, snd_pcm_rate_info_t *info)
-+{
-+ struct rate_src *rate = obj;
-+
-+ if (info->out.rate != rate->out_rate || info->in.rate != rate->in_rate)
-+ pcm_src_init(obj, info);
-+ return 0;
-+}
-+
-+static void pcm_src_reset(void *obj)
-+{
-+ struct rate_src *rate = obj;
-+
-+ if (rate->avr) {
-+ avresample_close(rate->avr);
-+ avresample_open(rate->avr);
-+ }
-+}
-+
-+static void pcm_src_convert_s16(void *obj, int16_t *dst, unsigned int
-+ dst_frames, const int16_t *src, unsigned int src_frames)
-+{
-+ struct rate_src *rate = obj;
-+ int consumed = 0, chans=rate->channels, ret=0, i;
-+ int total_in = avresample_get_delay(rate->avr) + src_frames;
-+
-+ ret = avresample_convert(rate->avr, &dst, dst_frames * chans * 2, dst_frames,
-+ &src, src_frames * chans * 2, src_frames);
-+
-+ avresample_set_compensation(rate->avr,
-+ total_in - src_frames > filter_size ? 0 : 1, src_frames);
-+}
-+
-+static void pcm_src_close(void *obj)
-+{
-+ pcm_src_free(obj);
-+}
-+
-+#if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
-+static int get_supported_rates(void *obj, unsigned int *rate_min,
-+ unsigned int *rate_max)
-+{
-+ *rate_min = *rate_max = 0; /* both unlimited */
-+ return 0;
-+}
-+
-+static void dump(void *obj, snd_output_t *out)
-+{
-+ snd_output_printf(out, "Converter: libavr\n");
-+}
-+#endif
-+
-+static snd_pcm_rate_ops_t pcm_src_ops = {
-+ .close = pcm_src_close,
-+ .init = pcm_src_init,
-+ .free = pcm_src_free,
-+ .adjust_pitch = pcm_src_adjust_pitch,
-+ .convert_s16 = pcm_src_convert_s16,
-+ .input_frames = input_frames,
-+ .output_frames = output_frames,
-+#if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
-+ .version = SND_PCM_RATE_PLUGIN_VERSION,
-+ .get_supported_rates = get_supported_rates,
-+ .dump = dump,
-+#endif
-+};
-+
-+int pcm_src_open(unsigned int version, void **objp, snd_pcm_rate_ops_t *ops)
-+
-+{
-+ struct rate_src *rate;
-+
-+#if SND_PCM_RATE_PLUGIN_VERSION < 0x010002
-+ if (version != SND_PCM_RATE_PLUGIN_VERSION) {
-+ fprintf(stderr, "Invalid rate plugin version %x\n", version);
-+ return -EINVAL;
-+ }
-+#endif
-+ rate = calloc(1, sizeof(*rate));
-+ if (!rate)
-+ return -ENOMEM;
-+
-+ *objp = rate;
-+ rate->avr = NULL;
-+#if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
-+ if (version == 0x010001)
-+ memcpy(ops, &pcm_src_ops, sizeof(snd_pcm_rate_old_ops_t));
-+ else
-+#endif
-+ *ops = pcm_src_ops;
-+ return 0;
-+}
-+
-+int SND_PCM_RATE_PLUGIN_ENTRY(lavcrate)(unsigned int version, void **objp,
-+ snd_pcm_rate_ops_t *ops)
-+{
-+ return pcm_src_open(version, objp, ops);
-+}
-+int SND_PCM_RATE_PLUGIN_ENTRY(lavcrate_higher)(unsigned int version,
-+ void **objp, snd_pcm_rate_ops_t *ops)
-+{
-+ filter_size = 64;
-+ return pcm_src_open(version, objp, ops);
-+}
-+int SND_PCM_RATE_PLUGIN_ENTRY(lavcrate_high)(unsigned int version,
-+ void **objp, snd_pcm_rate_ops_t *ops)
-+{
-+ filter_size = 32;
-+ return pcm_src_open(version, objp, ops);
-+}
-+int SND_PCM_RATE_PLUGIN_ENTRY(lavcrate_fast)(unsigned int version,
-+ void **objp, snd_pcm_rate_ops_t *ops)
-+{
-+ filter_size = 8;
-+ return pcm_src_open(version, objp, ops);
-+}
-+int SND_PCM_RATE_PLUGIN_ENTRY(lavcrate_faster)(unsigned int version,
-+ void **objp, snd_pcm_rate_ops_t *ops)
-+{
-+ filter_size = 4;
-+ return pcm_src_open(version, objp, ops);
-+}
-+
-+