diff --git a/.cvsignore b/.cvsignore index 6ca2361..fa67bd3 100644 --- a/.cvsignore +++ b/.cvsignore @@ -26,3 +26,4 @@ alsa-lib-1.0.19.tar.bz2 alsa-lib-1.0.20.tar.bz2 alsa-lib-1.0.21.tar.bz2 alsa-lib-1.0.22.tar.bz2 +alsa-lib-1.0.23.tar.bz2 diff --git a/alsa-lib-1.0.22-closetimer.patch b/alsa-lib-1.0.22-closetimer.patch deleted file mode 100644 index 433f554..0000000 --- a/alsa-lib-1.0.22-closetimer.patch +++ /dev/null @@ -1,65 +0,0 @@ -From a256766c10c52cb6667de8a65f5cbb332fad4cc7 Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela -Date: Mon, 21 Dec 2009 09:09:42 +0100 -Subject: [PATCH] pcm: Close event timer in pcm_hw plugin - -Dan McCombs discovered that snd_pcm_close() invocations are not leading -to associated timers being closed, which results in successively more -timers being created but not freed. - -Original patch from Daniel T Chen . - -BugLink: https://bugs.launchpad.net/bugs/451893 - -Signed-off-by: Jaroslav Kysela ---- - src/pcm/pcm_hw.c | 26 ++++++++++++++------------ - 1 files changed, 14 insertions(+), 12 deletions(-) - -diff --git a/src/pcm/pcm_hw.c b/src/pcm/pcm_hw.c -index 2095b01..b557912 100644 ---- a/src/pcm/pcm_hw.c -+++ b/src/pcm/pcm_hw.c -@@ -338,18 +338,6 @@ static int snd_pcm_hw_hw_params(snd_pcm_t *pcm, snd_pcm_hw_params_t * params) - return 0; - } - --static int snd_pcm_hw_hw_free(snd_pcm_t *pcm) --{ -- snd_pcm_hw_t *hw = pcm->private_data; -- int fd = hw->fd, err; -- if (ioctl(fd, SNDRV_PCM_IOCTL_HW_FREE) < 0) { -- err = -errno; -- SYSMSG("SNDRV_PCM_IOCTL_HW_FREE failed"); -- return err; -- } -- return 0; --} -- - static void snd_pcm_hw_close_timer(snd_pcm_hw_t *hw) - { - if (hw->period_timer) { -@@ -421,6 +409,20 @@ static int snd_pcm_hw_change_timer(snd_pcm_t *pcm, int enable) - } else { - snd_pcm_hw_close_timer(hw); - pcm->fast_ops = &snd_pcm_hw_fast_ops; -+ hw->period_event = 0; -+ } -+ return 0; -+} -+ -+static int snd_pcm_hw_hw_free(snd_pcm_t *pcm) -+{ -+ snd_pcm_hw_t *hw = pcm->private_data; -+ int fd = hw->fd, err; -+ snd_pcm_hw_change_timer(pcm, 0); -+ if (ioctl(fd, SNDRV_PCM_IOCTL_HW_FREE) < 0) { -+ err = -errno; -+ SYSMSG("SNDRV_PCM_IOCTL_HW_FREE failed"); -+ return err; - } - return 0; - } --- -1.5.5.1 - diff --git a/alsa-lib-1.0.22-softvol.patch b/alsa-lib-1.0.22-softvol.patch deleted file mode 100644 index 2cda8e6..0000000 --- a/alsa-lib-1.0.22-softvol.patch +++ /dev/null @@ -1,65 +0,0 @@ -From bdf80e58af79d4e989cd8d701d97f888c9e2dadc Mon Sep 17 00:00:00 2001 -From: Zerg Cannibal -Date: Mon, 21 Dec 2009 22:19:14 +0100 -Subject: [PATCH] pcm: Fix the sound distortions for S24_3LE stream in pcm_softvol plugin - -This patch fixes sound distortions in alsa-lib "softvol" -for S24_3LE sound stream, when softvol slider is not at 0.0dB -position. - -Signed-off-by: CannibalZerg -Signed-off-by: Jaroslav Kysela ---- - src/pcm/pcm_softvol.c | 22 ++++++++++++++++++++-- - 1 files changed, 20 insertions(+), 2 deletions(-) - -diff --git a/src/pcm/pcm_softvol.c b/src/pcm/pcm_softvol.c -index 637e5cb..2c7c006 100644 ---- a/src/pcm/pcm_softvol.c -+++ b/src/pcm/pcm_softvol.c -@@ -107,7 +107,8 @@ static inline int MULTI_DIV_32x16(int a, unsigned short b) - v.i = a; - y.i = 0; - #if __BYTE_ORDER == __LITTLE_ENDIAN -- x.i = (unsigned int)v.s[0] * b; -+ x.i = (unsigned short)v.s[0]; -+ x.i *= b; - y.s[0] = x.s[1]; - y.i += (int)v.s[1] * b; - #else -@@ -135,6 +136,23 @@ static inline int MULTI_DIV_int(int a, unsigned int b, int swap) - return swap ? (int)bswap_32(fraction) : fraction; - } - -+/* always little endian */ -+static inline int MULTI_DIV_24(int a, unsigned int b) -+{ -+ unsigned int gain = b >> VOL_SCALE_SHIFT; -+ int fraction; -+ fraction = MULTI_DIV_32x16(a, b & VOL_SCALE_MASK); -+ if (gain) { -+ long long amp = (long long)a * gain + fraction; -+ if (amp > (int)0x7fffff) -+ amp = (int)0x7fffff; -+ else if (amp < (int)0x800000) -+ amp = (int)0x800000; -+ return (int)amp; -+ } -+ return fraction; -+} -+ - static inline short MULTI_DIV_short(short a, unsigned int b, int swap) - { - unsigned int gain = b >> VOL_SCALE_SHIFT; -@@ -223,7 +241,7 @@ static inline short MULTI_DIV_short(short a, unsigned int b, int swap) - tmp = src[0] | \ - (src[1] << 8) | \ - (((signed char *) src)[2] << 16); \ -- tmp = MULTI_DIV_int(tmp, vol_scale, 0); \ -+ tmp = MULTI_DIV_24(tmp, vol_scale); \ - dst[0] = tmp; \ - dst[1] = tmp >> 8; \ - dst[2] = tmp >> 16; \ --- -1.5.5.1 - diff --git a/alsa-lib.spec b/alsa-lib.spec index da55aaf..e5e7b1c 100644 --- a/alsa-lib.spec +++ b/alsa-lib.spec @@ -5,8 +5,8 @@ Summary: The Advanced Linux Sound Architecture (ALSA) library Name: alsa-lib -Version: 1.0.22 -Release: 3%{?prever_dot}%{?dist} +Version: 1.0.23 +Release: 1%{?prever_dot}%{?dist} License: LGPLv2+ Group: System Environment/Libraries Source: ftp://ftp.alsa-project.org/pub/lib/%{name}-%{version}%{?prever}%{?postver}.tar.bz2 @@ -14,8 +14,6 @@ Source10: asound.conf Patch0: alsa-lib-1.0.17-config.patch Patch2: alsa-lib-1.0.14-glibc-open.patch Patch4: alsa-lib-1.0.16-no-dox-date.patch -Patch5: alsa-lib-1.0.22-closetimer.patch -Patch6: alsa-lib-1.0.22-softvol.patch Patch7: alsa-lib-1.0.22-hwparams.patch URL: http://www.alsa-project.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root @@ -48,8 +46,6 @@ against the ALSA libraries and interfaces. %patch0 -p1 -b .config %patch2 -p1 -b .glibc-open %patch4 -p1 -b .no-dox-date -%patch5 -p1 -b .closetimer -%patch6 -p1 -b .softvol %patch7 -p0 -b .hwparams %build @@ -100,6 +96,9 @@ rm -rf %{buildroot} %{_datadir}/aclocal/alsa.m4 %changelog +* Fri Apr 16 2010 Jaroslav Kysela - 1.0.23-1 +- Updated to 1.0.23 final + * Mon Dec 28 2009 Jaroslav Kysela - 1.0.22-3 - fix hwparams issue - redhat bug #553497 diff --git a/sources b/sources index aa883f1..d4b5853 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b28a12348905fb6915bc41f0edb2ecce alsa-lib-1.0.22.tar.bz2 +f48b50421d8a69d2d806d9c47e534f0d alsa-lib-1.0.23.tar.bz2