From dbee2f199640ec296b049801fe79e35c4b3424f6 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Tue, 10 Jul 2012 01:14:43 +0200
Subject: [PATCH] output_init: put the "convert" filter at the end of the list

No, really!  This fixes a regression of commit 74617389, which
changed the order of filter plugins.
---
 NEWS              |  2 ++
 src/output_init.c | 14 +++++++-------
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/NEWS b/NEWS
index 24c978f79..eaa698963 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,8 @@
 ver 0.17.1 (2012/??/??)
 * protocol:
   - require appropriate permissions for searchadd{,pl}
+* output:
+  - fix noisy playback with conversion and software volume
 
 ver 0.17 (2012/06/27)
 * protocol:
diff --git a/src/output_init.c b/src/output_init.c
index d2c86bfa2..c3b808e94 100644
--- a/src/output_init.c
+++ b/src/output_init.c
@@ -213,13 +213,6 @@ ao_base_init(struct audio_output *ao,
 	ao->replay_gain_filter = NULL;
 	ao->other_replay_gain_filter = NULL;
 
-	/* the "convert" filter must be the last one in the chain */
-
-	ao->convert_filter = filter_new(&convert_filter_plugin, NULL, NULL);
-	assert(ao->convert_filter != NULL);
-
-	filter_chain_append(ao->filter, ao->convert_filter);
-
 	/* done */
 
 	return true;
@@ -280,6 +273,13 @@ audio_output_setup(struct audio_output *ao, const struct config_param *param,
 		return false;
 	}
 
+	/* the "convert" filter must be the last one in the chain */
+
+	ao->convert_filter = filter_new(&convert_filter_plugin, NULL, NULL);
+	assert(ao->convert_filter != NULL);
+
+	filter_chain_append(ao->filter, ao->convert_filter);
+
 	return true;
 }