From ad178b8b5ca807d03851cb32545862d8e208ea43 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 22 Apr 2022 11:03:51 +0200 Subject: [PATCH] module-filter-chain: add docs --- src/modules/module-filter-chain.c | 292 +++++++++++++++++++++++++++++- 1 file changed, 289 insertions(+), 3 deletions(-) diff --git a/src/modules/module-filter-chain.c b/src/modules/module-filter-chain.c index 29d362dd5..52ecc9732 100644 --- a/src/modules/module-filter-chain.c +++ b/src/modules/module-filter-chain.c @@ -55,13 +55,293 @@ PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME); /** * \page page_module_filter_chain PipeWire Module: Filter-Chain * + * The filter-chain allows you to create an arbitrary processing graph + * from LADSPA, LV2 and builtin filters. This filter can be made into a + * virtual sink/source or between any 2 nodes in the graph. + * + * The filter chain is built with 2 streams, a capture stream providing + * the input to the filter chain and a playback stream sending out the + * filtered stream to the next nodes in the graph. + * + * Because both ends of the filter-chain are built with streams, the session + * manager can manage the configuration and connection with the sinks and + * sources automatically. + * + * ## Module Options + * + * - `node.description`: a human readable name for the filter chain + * - `filter.graph = []`: a description of the filter graph to run, see below + * - `capture.props = {}`: properties to be passed to the input stream + * - `playback.props = {}`: properties to be passed to the output stream + * + * ## Filter graph description + * + * The general structure of the graph description is as follows: + * + *\code{.unparsed} + * filter.graph = { + * nodes = [ + * { + * type = + * name = + * plugin = + * label =