rpms/audacious-plugins/devel audacious-plugins-1.5.1-alsa-ng.patch, NONE, 1.1 audacious-plugins.spec, 1.44, 1.45 audacious-plugins-1.5.1-0006-alsa-plugin-Fix-last-second-s-of-songs-getting-los.patch, 1.1, NONE audacious-plugins-1.5.1-0007-Fix-alsa-plugin-locking.patch, 1.1, NONE audacious-plugins-1.5.1-0008-alsa-output-plugin-allow-usage-of-last-byte-of-thre.patch, 1.1, NONE audacious-plugins-1.5.1-0009-alsa-output-plugin-use-snd_pcm_recover.patch, 1.1, NONE

Michael Schwendt mschwendt at fedoraproject.org
Mon Jun 29 16:14:48 UTC 2009


Author: mschwendt

Update of /cvs/pkgs/rpms/audacious-plugins/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv27685

Modified Files:
	audacious-plugins.spec 
Added Files:
	audacious-plugins-1.5.1-alsa-ng.patch 
Removed Files:
	audacious-plugins-1.5.1-0006-alsa-plugin-Fix-last-second-s-of-songs-getting-los.patch 
	audacious-plugins-1.5.1-0007-Fix-alsa-plugin-locking.patch 
	audacious-plugins-1.5.1-0008-alsa-output-plugin-allow-usage-of-last-byte-of-thre.patch 
	audacious-plugins-1.5.1-0009-alsa-output-plugin-use-snd_pcm_recover.patch 
Log Message:
* Mon Jun 29 2009 Michael Schwendt <mschwendt at fedoraproject.org> - 1.5.1-8
- Replace old ALSA output plugin and related patches with the
  "alsa-ng" code from Audacious 2.1 development. This is supposed to
  get rid of old cruft and mutex-locking overhead that cause performance
  regression in 1.5.1-6.


audacious-plugins-1.5.1-alsa-ng.patch:

--- NEW FILE audacious-plugins-1.5.1-alsa-ng.patch ---
diff -Nur audacious-plugins-fedora-1.5.1-orig/src/alsa/about.c audacious-plugins-fedora-1.5.1/src/alsa/about.c
--- audacious-plugins-fedora-1.5.1-orig/src/alsa/about.c	2008-06-08 10:37:44.000000000 +0200
+++ audacious-plugins-fedora-1.5.1/src/alsa/about.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,49 +0,0 @@
-/*  XMMS - ALSA output plugin
- *    Copyright (C) 2001-2003 Matthieu Sozeau <mattam at altern.org>
- * 
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "alsa.h"
-
-void alsa_about(void)
-{
-	static GtkWidget *dialog;
-
-	if (dialog != NULL)
-		return;
-	
-	dialog = audacious_info_dialog(
-		_("About ALSA Driver"),
-		_("Audacious ALSA Driver\n\n "
-		  "This program is free software; you can redistribute it and/or modify\n"
-		  "it under the terms of the GNU General Public License as published by\n"
-		  "the Free Software Foundation; either version 2 of the License, or\n"
-		  "(at your option) any later version.\n"
-		  "\n"
-		  "This program is distributed in the hope that it will be useful,\n"
-		  "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-		  "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-		  "GNU General Public License for more details.\n"
-		  "\n"
-		  "You should have received a copy of the GNU General Public License\n"
-		  "along with this program; if not, write to the Free Software\n"
-		  "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,\n"
-		  "USA.\n"
-		  "Author: Matthieu Sozeau (mattam at altern.org)"), _("OK"), FALSE, NULL, NULL);
-	gtk_signal_connect(GTK_OBJECT(dialog), "destroy",
-			   GTK_SIGNAL_FUNC(gtk_widget_destroyed),
-			   &dialog);
-}
diff -Nur audacious-plugins-fedora-1.5.1-orig/src/alsa/alsa.c audacious-plugins-fedora-1.5.1/src/alsa/alsa.c
--- audacious-plugins-fedora-1.5.1-orig/src/alsa/alsa.c	2008-06-08 10:37:44.000000000 +0200
+++ audacious-plugins-fedora-1.5.1/src/alsa/alsa.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,100 +0,0 @@
-/*  XMMS - ALSA output plugin
- *    Copyright (C) 2001 Matthieu Sozeau
- * 
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "alsa.h"
-#include <glib.h>
-#include <stdlib.h>
-#include <dlfcn.h>
-#include <ctype.h>
-
-struct alsa_config alsa_cfg;
-
-
-static void alsa_cleanup(void)
-{
-	if (alsa_cfg.pcm_device) {
-		free(alsa_cfg.pcm_device);
-		alsa_cfg.pcm_device = NULL;
-	}
-
-	if (alsa_cfg.mixer_device) {
-		free(alsa_cfg.mixer_device);
-		alsa_cfg.mixer_device = NULL;
-	}
-}
-
-
-static void alsa_init(void)
-{
-	mcs_handle_t *cfgfile;
-
-	memset(&alsa_cfg, 0, sizeof (alsa_cfg));
-	
-	alsa_cfg.buffer_time = 500;
-	alsa_cfg.period_time = 100;
-	alsa_cfg.debug = 0;
-	alsa_cfg.vol.left = 100;
-	alsa_cfg.vol.right = 100;
-
-	cfgfile = aud_cfg_db_open();
-	if (!aud_cfg_db_get_string(cfgfile, ALSA_CFGID, "pcm_device",
-				  &alsa_cfg.pcm_device))
-		alsa_cfg.pcm_device = g_strdup("default");
-	g_message("device: %s", alsa_cfg.pcm_device);
-	if (!aud_cfg_db_get_string(cfgfile, ALSA_CFGID, "mixer_device",
-				  &alsa_cfg.mixer_device))
-		alsa_cfg.mixer_device = g_strdup("PCM");
-	aud_cfg_db_get_int(cfgfile, ALSA_CFGID, "mixer_card", &alsa_cfg.mixer_card);
-	aud_cfg_db_get_int(cfgfile, ALSA_CFGID, "buffer_time", &alsa_cfg.buffer_time);
-	aud_cfg_db_get_int(cfgfile, ALSA_CFGID, "period_time", &alsa_cfg.period_time);
-
-	aud_cfg_db_get_bool(cfgfile, ALSA_CFGID, "debug", &alsa_cfg.debug);
-	aud_cfg_db_close(cfgfile);
-
-	if (dlopen("libasound.so.2", RTLD_NOW | RTLD_GLOBAL) == NULL)
-	{
-		g_message("Cannot load alsa library: %s", dlerror());
-		/* FIXME, this plugin wont work... */
-	}
-}
-
-
-static OutputPlugin alsa_op =
-{
-	.description = "ALSA Output Plugin",
-	.init = alsa_init,
-	.cleanup = alsa_cleanup,
-	.about = alsa_about,
-	.configure = alsa_configure,
-	.get_volume = alsa_get_volume,
-	.set_volume = alsa_set_volume,
-	.open_audio = alsa_open,
-	.write_audio = alsa_write,
-	.close_audio = alsa_close,
-	.flush = alsa_flush,
-	.pause = alsa_pause,
-	.buffer_free = alsa_free,
-	.buffer_playing = alsa_playing,
-	.output_time = alsa_get_output_time,
-	.written_time = alsa_get_written_time,
-	.tell_audio = alsa_tell
-};
-
-OutputPlugin *alsa_oplist[] = { &alsa_op, NULL };
-
-DECLARE_PLUGIN(alsa, NULL, NULL, NULL, alsa_oplist, NULL, NULL, NULL, NULL)
diff -Nur audacious-plugins-fedora-1.5.1-orig/src/alsa/alsa-configure.c audacious-plugins-fedora-1.5.1/src/alsa/alsa-configure.c
--- audacious-plugins-fedora-1.5.1-orig/src/alsa/alsa-configure.c	1970-01-01 01:00:00.000000000 +0100
+++ audacious-plugins-fedora-1.5.1/src/alsa/alsa-configure.c	2009-06-29 18:01:20.000000000 +0200
@@ -0,0 +1,355 @@
+/*
+ * Audacious ALSA Plugin (-ng)
+ * Copyright (c) 2009 William Pitcock <nenolod at dereferenced.org>
+ * Portions copyright (C) 2001-2003 Matthieu Sozeau <mattam at altern.org>
+ * Portions copyright (C) 2003-2005 Haavard Kvaalen
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "alsa-stdinc.h"
+#include <stdio.h>
+
+#include <gtk/gtk.h>
+#include <glib/gi18n.h>
+
+static GtkWidget *configure_win = NULL;
+static GtkWidget *devices_combo, *mixer_devices_combo;
+
+static gint current_mixer_card;
+
+gint alsaplug_mixer_new_for_card(snd_mixer_t **mixer, const gchar *card);
+
+#define GET_TOGGLE(tb) gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(tb))
+#define GET_CHARS(edit) gtk_editable_get_chars(GTK_EDITABLE(edit), 0, -1)
+
+static void configure_win_ok_cb(GtkWidget * w, gpointer data)
[...2763 lines suppressed...]
-
-	if (configure_win)
-	{
-                gtk_window_present(GTK_WINDOW(configure_win));
-		return;
-	}
-
-	configure_win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-	gtk_signal_connect(GTK_OBJECT(configure_win), "destroy",
-			   GTK_SIGNAL_FUNC(gtk_widget_destroyed),
-			   &configure_win);
-	gtk_window_set_title(GTK_WINDOW(configure_win),
-			     _("ALSA Driver configuration"));
-	gtk_window_set_policy(GTK_WINDOW(configure_win),
-			      FALSE, TRUE, FALSE);
-	gtk_container_border_width(GTK_CONTAINER(configure_win), 10);
-
-	vbox = gtk_vbox_new(FALSE, 10);
-	gtk_container_add(GTK_CONTAINER(configure_win), vbox);
-
-	notebook = gtk_notebook_new();
-	gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0);
-
-	dev_vbox = gtk_vbox_new(FALSE, 5);
-	gtk_container_set_border_width(GTK_CONTAINER(dev_vbox), 5);
-
-	adevice_frame = gtk_frame_new(_("Audio device:"));
-	gtk_box_pack_start(GTK_BOX(dev_vbox), adevice_frame, FALSE, FALSE, 0);
-
-	adevice_box = gtk_vbox_new(FALSE, 5);
-	gtk_container_set_border_width(GTK_CONTAINER(adevice_box), 5);
-	gtk_container_add(GTK_CONTAINER(adevice_frame), adevice_box);
-
-	devices_combo = gtk_combo_new();
-	gtk_box_pack_start(GTK_BOX(adevice_box), devices_combo,
-			   FALSE, FALSE, 0);
-	get_devices(GTK_COMBO(devices_combo));
-	gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(devices_combo)->entry),
-			   alsa_cfg.pcm_device);
-
-	mixer_frame = gtk_frame_new(_("Mixer:"));
-	gtk_box_pack_start(GTK_BOX(dev_vbox), mixer_frame, FALSE, FALSE, 0);
-
-	mixer_box = gtk_vbox_new(FALSE, 5);
-	gtk_container_set_border_width(GTK_CONTAINER(mixer_box), 5);
-	gtk_container_add(GTK_CONTAINER(mixer_frame), mixer_box);
-
-	mixer_table = gtk_table_new(2, 2, FALSE);
-	gtk_table_set_row_spacings(GTK_TABLE(mixer_table), 5);
-	gtk_table_set_col_spacings(GTK_TABLE(mixer_table), 5);
-	gtk_box_pack_start(GTK_BOX(mixer_box), mixer_table, FALSE, FALSE, 0);
-
-	mixer_card_label = gtk_label_new(_("Mixer card:"));
-	gtk_label_set_justify(GTK_LABEL(mixer_card_label), GTK_JUSTIFY_LEFT);
-	gtk_misc_set_alignment(GTK_MISC(mixer_card_label), 0, 0.5);
-	gtk_table_attach(GTK_TABLE(mixer_table), mixer_card_label,
-			 0, 1, 0, 1, GTK_FILL, 0, 0, 0);
-
-	mixer_card_om = gtk_option_menu_new();
-	mset = get_cards(GTK_OPTION_MENU(mixer_card_om),
-			 (GtkSignalFunc)mixer_card_cb, alsa_cfg.mixer_card);
-
-	gtk_table_attach(GTK_TABLE(mixer_table), mixer_card_om,
-			 1, 2, 0, 1, GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0);
-
-	mixer_device_label = gtk_label_new(_("Mixer device:"));
-	gtk_label_set_justify(GTK_LABEL(mixer_device_label), GTK_JUSTIFY_LEFT);
-	gtk_misc_set_alignment(GTK_MISC(mixer_device_label), 0, 0.5);
-	gtk_table_attach(GTK_TABLE(mixer_table), mixer_device_label,
-			 0, 1, 1, 2, GTK_FILL, 0, 0, 0);
-	mixer_devices_combo = gtk_combo_new();
-	gtk_option_menu_set_history(GTK_OPTION_MENU(mixer_card_om), mset);
-	get_mixer_devices(GTK_COMBO(mixer_devices_combo), alsa_cfg.mixer_card);
-	gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(mixer_devices_combo)->entry),
-			   alsa_cfg.mixer_device);
-
-	gtk_table_attach(GTK_TABLE(mixer_table), mixer_devices_combo,
-			 1, 2, 1, 2, GTK_FILL | GTK_EXPAND, 0, 0, 0);
-
-	gtk_notebook_append_page(GTK_NOTEBOOK(notebook), dev_vbox,
-				 gtk_label_new(_("Device settings")));
-
-
-	advanced_vbox = gtk_vbox_new(FALSE, 0);
-	gtk_container_set_border_width(GTK_CONTAINER(advanced_vbox), 5);
-
-	card_frame = gtk_frame_new(_("Soundcard:"));
-	gtk_box_pack_start_defaults(GTK_BOX(advanced_vbox), card_frame);
-
-	card_vbox = gtk_vbox_new(FALSE, 0);
-	gtk_container_add(GTK_CONTAINER(card_frame), card_vbox);
-
-	gtk_container_set_border_width(GTK_CONTAINER(card_vbox), 5);
-
-	buffer_table = gtk_table_new(2, 2, TRUE);
-	gtk_table_set_row_spacings(GTK_TABLE(buffer_table), 5);
-	gtk_table_set_col_spacings(GTK_TABLE(buffer_table), 5);
-	gtk_box_pack_start_defaults(GTK_BOX(card_vbox), buffer_table);
-
-	buffer_time_label = gtk_label_new(_("Buffer time (ms):"));
-	gtk_label_set_justify(GTK_LABEL(buffer_time_label), GTK_JUSTIFY_LEFT);
-	gtk_misc_set_alignment(GTK_MISC(buffer_time_label), 0, 0.5);
-	gtk_table_attach(GTK_TABLE(buffer_table), buffer_time_label,
-			 0, 1, 0, 1, GTK_FILL, 0, 0, 0);
-
-	buffer_time_adj = gtk_adjustment_new(alsa_cfg.buffer_time,
-					     200, 10000, 100, 100, 100);
-	buffer_time_spin = gtk_spin_button_new(GTK_ADJUSTMENT(buffer_time_adj),
-					       8, 0);
-	gtk_widget_set_usize(buffer_time_spin, 60, -1);
-	gtk_table_attach(GTK_TABLE(buffer_table), buffer_time_spin,
-			 1, 2, 0, 1, 0, 0, 0, 0);
-
-	period_time_label = gtk_label_new(_("Period time (ms):"));
-	gtk_label_set_justify(GTK_LABEL(period_time_label), GTK_JUSTIFY_LEFT);
-	gtk_misc_set_alignment(GTK_MISC(period_time_label), 0, 0.5);
-	gtk_table_attach(GTK_TABLE(buffer_table), period_time_label,
-			 0, 1, 1, 2, GTK_FILL, 0, 0, 0);
-	period_time_adj = gtk_adjustment_new(alsa_cfg.period_time,
-					     1, 500, 1, 100, 100);
-	period_time_spin = gtk_spin_button_new(GTK_ADJUSTMENT(period_time_adj),
-					       8, 0);
-
-	gtk_widget_set_usize(period_time_spin, 60, -1);
-	gtk_table_attach(GTK_TABLE(buffer_table), period_time_spin,
-			 1, 2, 1, 2, 0, 0, 0, 0);
-
-	gtk_notebook_append_page(GTK_NOTEBOOK(notebook), advanced_vbox,
-				 gtk_label_new(_("Advanced settings")));
-
-	bbox = gtk_hbutton_box_new();
-	gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
-	gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5);
-	gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
-
-	ok = gtk_button_new_with_label(_("OK"));
-	gtk_signal_connect(GTK_OBJECT(ok), "clicked", (GCallback)configure_win_ok_cb, NULL);
-	GTK_WIDGET_SET_FLAGS(ok, GTK_CAN_DEFAULT);
-	gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 0);
-	gtk_widget_grab_default(ok);
-
-	cancel = gtk_button_new_with_label(_("Cancel"));
-	gtk_signal_connect_object(GTK_OBJECT(cancel), "clicked",
-				  (GCallback)gtk_widget_destroy, GTK_OBJECT(configure_win));
-	GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT);
-	gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0);
-
-	gtk_widget_show_all(configure_win);
-}
diff -Nur audacious-plugins-fedora-1.5.1-orig/src/alsa/Makefile audacious-plugins-fedora-1.5.1/src/alsa/Makefile
--- audacious-plugins-fedora-1.5.1-orig/src/alsa/Makefile	2008-06-08 10:37:44.000000000 +0200
+++ audacious-plugins-fedora-1.5.1/src/alsa/Makefile	2009-06-29 18:01:20.000000000 +0200
@@ -1,9 +1,9 @@
 PLUGIN = ALSA${PLUGIN_SUFFIX}
 
-SRCS = alsa.c		\
-       about.c		\
-       audio.c		\
-       configure.c
+SRCS = alsa-core.c \
+       alsa-configure.c \
+       alsa-ringbuffer.c \
+       alsa-util.c
 
 include ../../buildsys.mk
 include ../../extra.mk
diff -Nur audacious-plugins-fedora-1.5.1-orig/src/alsa/TODO audacious-plugins-fedora-1.5.1/src/alsa/TODO
--- audacious-plugins-fedora-1.5.1-orig/src/alsa/TODO	1970-01-01 01:00:00.000000000 +0100
+++ audacious-plugins-fedora-1.5.1/src/alsa/TODO	2009-06-29 18:01:20.000000000 +0200
@@ -0,0 +1,30 @@
+The following things are not implemented yet:
+
+- prerolling: this means that it is possible for buffer underruns occasionally.
+  we want to preroll at least 50% of buffer_size before actually writing anything
+  to the soundcard.
+
+The following things would be nice:
+
+- use HAL (or DeviceKit) to match up devices and mixer settings. The old way sucks
+  majorly, I want to be able to just choose a soundcard and have it set up the mixer
+  the right way on it's own. This is 2009, and this should be possible.
+
+(right now we don't use HAL/DeviceKit, but have a trivial function to determine what
+ mixer settings we use.  pcm:default seems like a good choice for finding the system
+ default soundcard/mixer, which we use already...)
+
+Things that won't be reimplemented:
+
+- support for custom period sizes and buffer sizes. we want to use the ALSA defaults
+  since they provide the optimal values for each card. this means that specifying
+  period/buffer sizes is retarded.
+
+Notable differences between the old ALSA plugin and the new one:
+
+- tickless design:
+  The old ALSA plugin basically did a lot of polling. This does not, instead using
+  an event-driven tickless design using conditionals.
+
+- uses ALSA "safe" API subset:
+  Plugin should work correctly with all userspace plugins.


Index: audacious-plugins.spec
===================================================================
RCS file: /cvs/pkgs/rpms/audacious-plugins/devel/audacious-plugins.spec,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -p -r1.44 -r1.45
--- audacious-plugins.spec	6 Jun 2009 16:10:18 -0000	1.44
+++ audacious-plugins.spec	29 Jun 2009 16:14:17 -0000	1.45
@@ -4,7 +4,7 @@
 
 Name:           audacious-plugins
 Version:        1.5.1
-Release:        7%{?dist}
+Release:        8%{?dist}
 Summary:        Plugins for the Audacious media player
 Group:          Applications/Multimedia
 
@@ -27,12 +27,8 @@ Patch6:         audacious-plugins-1.5.1-
 Patch7:         audacious-plugins-1.5.1-neon-reader-error-crash.patch
 Patch8:         audacious-plugins-1.5.1-sndfile-cleanup.patch
 
-# ALSA driver bug-fixes originally for Audacious 2.0 series
-# backported to legacy 1.5.1 (#499942)
-Patch100: audacious-plugins-1.5.1-0006-alsa-plugin-Fix-last-second-s-of-songs-getting-los.patch
-Patch101: audacious-plugins-1.5.1-0007-Fix-alsa-plugin-locking.patch
-Patch102: audacious-plugins-1.5.1-0008-alsa-output-plugin-allow-usage-of-last-byte-of-thre.patch
-Patch103: audacious-plugins-1.5.1-0009-alsa-output-plugin-use-snd_pcm_recover.patch
+# alsa-ng plugin from 2.1 devel
+Patch50: audacious-plugins-1.5.1-alsa-ng.patch
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
@@ -177,10 +173,7 @@ vortex compressed files.
 # pause and seek for libsndfile input plugin
 %patch8 -p1 -b .sndfile-cleanup
 
-%patch100 -p1 -b .alsa-499942-0006
-%patch101 -p1 -b .alsa-499942-0007
-%patch102 -p1 -b .alsa-499942-0008
-%patch103 -p1 -b .alsa-499942-0009
+%patch50 -p1 -b .alsa-ng
 
 sed -i '\,^.SILENT:,d' buildsys.mk.in
 
@@ -275,6 +268,12 @@ update-desktop-database &> /dev/null || 
 
 
 %changelog
+* Mon Jun 29 2009 Michael Schwendt <mschwendt at fedoraproject.org> - 1.5.1-8
+- Replace old ALSA output plugin and related patches with the
+  "alsa-ng" code from Audacious 2.1 development. This is supposed to
+  get rid of old cruft and mutex-locking overhead that cause performance
+  regression in 1.5.1-6.
+
 * Fri Jun  5 2009 Michael Schwendt <mschwendt at fedoraproject.org> - 1.5.1-7
 - Remove unapplied patches and verify that they have been merged.
 - Multiple different licenses are used for the individual plugins.


--- audacious-plugins-1.5.1-0006-alsa-plugin-Fix-last-second-s-of-songs-getting-los.patch DELETED ---


--- audacious-plugins-1.5.1-0007-Fix-alsa-plugin-locking.patch DELETED ---


--- audacious-plugins-1.5.1-0008-alsa-output-plugin-allow-usage-of-last-byte-of-thre.patch DELETED ---


--- audacious-plugins-1.5.1-0009-alsa-output-plugin-use-snd_pcm_recover.patch DELETED ---




More information about the fedora-extras-commits mailing list