rpms/alsa-lib/F-12 alsa-lib-1.0.22-closetimer.patch, NONE, 1.1 alsa-lib-1.0.22-softvol.patch, NONE, 1.1 .cvsignore, 1.38, 1.39 alsa-lib.spec, 1.86, 1.87 sources, 1.42, 1.43 alsa-lib-1.0.21-dmix-conf.patch, 1.1, NONE alsa-lib-1.0.21-revert-hook.patch, 1.1, NONE alsa-lib-1.0.21-speaker.patch, 1.1, NONE

perex perex at fedoraproject.org
Mon Dec 28 15:09:40 UTC 2009


Author: perex

Update of /cvs/pkgs/rpms/alsa-lib/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv24250

Modified Files:
	.cvsignore alsa-lib.spec sources 
Added Files:
	alsa-lib-1.0.22-closetimer.patch alsa-lib-1.0.22-softvol.patch 
Removed Files:
	alsa-lib-1.0.21-dmix-conf.patch 
	alsa-lib-1.0.21-revert-hook.patch 
	alsa-lib-1.0.21-speaker.patch 
Log Message:
updated to 1.0.22 release

alsa-lib-1.0.22-closetimer.patch:
 pcm_hw.c |   27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

--- NEW FILE alsa-lib-1.0.22-closetimer.patch ---
>From a256766c10c52cb6667de8a65f5cbb332fad4cc7 Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex at perex.cz>
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 <crimsun at ubuntu.com>.

BugLink: https://bugs.launchpad.net/bugs/451893

Signed-off-by: Jaroslav Kysela <perex at perex.cz>
---
 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


alsa-lib-1.0.22-softvol.patch:
 pcm_softvol.c |   23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

--- NEW FILE alsa-lib-1.0.22-softvol.patch ---
>From bdf80e58af79d4e989cd8d701d97f888c9e2dadc Mon Sep 17 00:00:00 2001
From: Zerg Cannibal <cnb_zerg at yahoo.com>
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 <cnb_zerg at yahoo.com>
Signed-off-by: Jaroslav Kysela <perex at perex.cz>
---
 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



Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/alsa-lib/F-12/.cvsignore,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -p -r1.38 -r1.39
--- .cvsignore	2 Sep 2009 08:11:19 -0000	1.38
+++ .cvsignore	28 Dec 2009 15:09:39 -0000	1.39
@@ -25,3 +25,4 @@ alsa-lib-1.0.18.tar.bz2
 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


Index: alsa-lib.spec
===================================================================
RCS file: /cvs/pkgs/rpms/alsa-lib/F-12/alsa-lib.spec,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -p -r1.86 -r1.87
--- alsa-lib.spec	9 Sep 2009 09:52:36 -0000	1.86
+++ alsa-lib.spec	28 Dec 2009 15:09:40 -0000	1.87
@@ -4,8 +4,8 @@
 
 Summary: The Advanced Linux Sound Architecture (ALSA) library
 Name:    alsa-lib
-Version: 1.0.21
-Release: 3%{?prever_dot}%{?dist}
+Version: 1.0.22
+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
@@ -13,9 +13,8 @@ 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
-Patch10: alsa-lib-1.0.21-speaker.patch
-Patch11: alsa-lib-1.0.21-revert-hook.patch
-Patch12: alsa-lib-1.0.21-dmix-conf.patch
+Patch10: alsa-lib-1.0.22-closetimer.patch
+Patch11: alsa-lib-1.0.22-softvol.patch
 URL:     http://www.alsa-project.org/
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
 BuildRequires: doxygen
@@ -47,9 +46,8 @@ against the ALSA libraries and interface
 %patch0 -p1 -b .config
 %patch2 -p1 -b .glibc-open
 %patch4 -p1 -b .no-dox-date
-%patch10 -p1 -b .speaker
-%patch11 -p1 -b .revert-hook
-%patch12 -p1 -b .dmix-conf
+%patch10 -p1 -b .closetimer
+%patch11 -p1 -b .softvol
 
 %build
 %configure --disable-aload
@@ -99,6 +97,11 @@ rm -rf %{buildroot}
 %{_datadir}/aclocal/alsa.m4
 
 %changelog
+* Mon Dec 28 2009 Jaroslav Kysela <jkysela at redhat.com> - 1.0.22-1
+- Updated to 1.0.22 final
+- Fix file descriptor leak in pcm_hw plugin
+- Fix sound distortions for S24_LE - softvol plugin
+
 * Wed Sep  9 2009 Jaroslav Kysela <jkysela at redhat.com> - 1.0.21-3
 - Add Speaker and Beep control names to mixer weight list
 - Fix redhat bug #521988


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/alsa-lib/F-12/sources,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -p -r1.42 -r1.43
--- sources	2 Sep 2009 08:11:20 -0000	1.42
+++ sources	28 Dec 2009 15:09:40 -0000	1.43
@@ -1 +1 @@
-d8a556041a4cbeeae0c32eadeffb3c74  alsa-lib-1.0.21.tar.bz2
+b28a12348905fb6915bc41f0edb2ecce  alsa-lib-1.0.22.tar.bz2


--- alsa-lib-1.0.21-dmix-conf.patch DELETED ---


--- alsa-lib-1.0.21-revert-hook.patch DELETED ---


--- alsa-lib-1.0.21-speaker.patch DELETED ---




More information about the scm-commits mailing list