From e47bdfe8e6f7da67c9714db7e650fa6a925f7847 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 6 Jul 2009 10:01:47 +0200 Subject: output: attach a filter chain to each audio_output This patch adds initial filter support for audio outputs. Each audio output gets a "filter" attribute, which is used by ao_play_chunk(). The PCM conversion is now performed by convert_filter_plugin. audio_output.convert_state has been removed. --- src/output_init.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/output_init.c') diff --git a/src/output_init.c b/src/output_init.c index d72893ba8..3b2c9d54f 100644 --- a/src/output_init.c +++ b/src/output_init.c @@ -23,9 +23,14 @@ #include "output_list.h" #include "audio_parser.h" #include "mixer_control.h" +#include "filter_plugin.h" +#include "filter_registry.h" +#include "filter/chain_filter_plugin.h" #include +#include + #undef G_LOG_DOMAIN #define G_LOG_DOMAIN "output" @@ -124,7 +129,15 @@ audio_output_init(struct audio_output *ao, const struct config_param *param, ao->open = false; ao->fail_timer = NULL; - pcm_convert_init(&ao->convert_state); + /* set up the filter chain */ + + ao->filter = filter_chain_new(); + assert(ao->filter != NULL); + + ao->convert_filter = filter_new(&convert_filter_plugin, NULL, NULL); + assert(ao->convert_filter != NULL); + + filter_chain_append(ao->filter, ao->convert_filter); ao->config_audio_format = format != NULL; if (ao->config_audio_format) { -- cgit v1.2.3