| 
									
										
										
										
											2023-11-18 15:13:05 +02:00
										 |  |  | /** \page page_modules Modules | 
					
						
							| 
									
										
										
										
											2021-06-24 14:06:30 +10:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-30 15:05:57 +10:00
										 |  |  | A PipeWire module is effectively a PipeWire client in an `.so` file that | 
					
						
							| 
									
										
										
										
											2021-06-24 14:06:30 +10:00
										 |  |  | shares the \ref pw_context with the loading entity. Usually modules are | 
					
						
							| 
									
										
										
										
											2021-07-30 15:05:57 +10:00
										 |  |  | loaded when they are listed in the configuration files. For example the | 
					
						
							|  |  |  | default configuration file loads several modules: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | context.modules = [ | 
					
						
							|  |  |  |     ... | 
					
						
							|  |  |  |     # The native communication protocol. | 
					
						
							|  |  |  |     {   name = libpipewire-module-protocol-native } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # The profile module. Allows application to access profiler | 
					
						
							|  |  |  |     # and performance data. It provides an interface that is used | 
					
						
							|  |  |  |     # by pw-top and pw-profiler. | 
					
						
							|  |  |  |     {   name = libpipewire-module-profiler } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Allows applications to create metadata objects. It creates | 
					
						
							|  |  |  |     # a factory for Metadata objects. | 
					
						
							|  |  |  |     {   name = libpipewire-module-metadata } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # Creates a factory for making devices that run in the | 
					
						
							|  |  |  |     # context of the PipeWire server. | 
					
						
							|  |  |  |     {   name = libpipewire-module-spa-device-factory } | 
					
						
							|  |  |  |     ... | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | ``` | 
					
						
							| 
									
										
										
										
											2022-05-08 17:06:28 +00:00
										 |  |  | The matching libraries are: | 
					
						
							| 
									
										
										
										
											2021-07-30 15:05:57 +10:00
										 |  |  | ``` | 
					
						
							|  |  |  | $ ls -1 /usr/lib64/pipewire-0.3/libpipewire-module* | 
					
						
							|  |  |  | ... | 
					
						
							|  |  |  | /usr/lib64/pipewire-0.3/libpipewire-module-metadata.so | 
					
						
							|  |  |  | /usr/lib64/pipewire-0.3/libpipewire-module-profiler.so | 
					
						
							|  |  |  | /usr/lib64/pipewire-0.3/libpipewire-module-protocol-native.so | 
					
						
							|  |  |  | /usr/lib64/pipewire-0.3/libpipewire-module-spa-device-factory.so | 
					
						
							|  |  |  | ... | 
					
						
							|  |  |  | ``` | 
					
						
							| 
									
										
										
										
											2021-06-24 14:06:30 +10:00
										 |  |  | 
 | 
					
						
							|  |  |  | A module's entry point is the `pipewire__module_init` function, see \ref | 
					
						
							|  |  |  | PIPEWIRE_SYMBOL_MODULE_INIT. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | \code | 
					
						
							|  |  |  | int pipewire__module_init(struct pw_impl_module *module, const char *args).` | 
					
						
							|  |  |  | \endcode | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-30 15:05:57 +10:00
										 |  |  | See the \ref page_module_example_sink and \ref page_module_example_source | 
					
						
							|  |  |  | modules for a general oveview of how modules look like. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-24 14:06:30 +10:00
										 |  |  | List of known modules: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - \subpage page_module_access | 
					
						
							|  |  |  | - \subpage page_module_adapter | 
					
						
							| 
									
										
										
										
											2022-07-12 12:41:45 +02:00
										 |  |  | - \subpage page_module_avb | 
					
						
							| 
									
										
										
										
											2021-06-24 14:06:30 +10:00
										 |  |  | - \subpage page_module_client_device | 
					
						
							|  |  |  | - \subpage page_module_client_node | 
					
						
							| 
									
										
										
										
											2023-01-20 19:37:47 +01:00
										 |  |  | - \subpage page_module_combine_stream | 
					
						
							| 
									
										
										
										
											2021-06-24 14:06:30 +10:00
										 |  |  | - \subpage page_module_echo_cancel | 
					
						
							| 
									
										
										
										
											2023-06-27 14:02:38 +02:00
										 |  |  | - \subpage page_module_example_filter | 
					
						
							| 
									
										
										
										
											2021-07-05 15:30:59 +10:00
										 |  |  | - \subpage page_module_example_sink | 
					
						
							|  |  |  | - \subpage page_module_example_source | 
					
						
							| 
									
										
										
										
											2022-02-12 18:36:36 +02:00
										 |  |  | - \subpage page_module_fallback_sink | 
					
						
							| 
									
										
										
										
											2023-05-29 09:19:29 +02:00
										 |  |  | - \subpage page_module_ffado_driver | 
					
						
							| 
									
										
										
										
											2021-06-24 14:06:30 +10:00
										 |  |  | - \subpage page_module_filter_chain | 
					
						
							| 
									
										
										
										
											2023-04-30 10:32:58 +02:00
										 |  |  | - \subpage page_module_jackdbus_detect | 
					
						
							| 
									
										
										
										
											2023-04-27 17:03:10 +02:00
										 |  |  | - \subpage page_module_jack_tunnel | 
					
						
							| 
									
										
										
										
											2021-06-24 14:06:30 +10:00
										 |  |  | - \subpage page_module_link_factory | 
					
						
							|  |  |  | - \subpage page_module_loopback | 
					
						
							|  |  |  | - \subpage page_module_metadata | 
					
						
							| 
									
										
										
										
											2023-05-31 17:35:47 +02:00
										 |  |  | - \subpage page_module_netjack2_driver | 
					
						
							| 
									
										
										
										
											2023-06-05 10:44:07 +02:00
										 |  |  | - \subpage page_module_netjack2_manager | 
					
						
							| 
									
										
										
										
											2024-05-07 14:27:12 +05:30
										 |  |  | - \subpage page_module_parametric_equalizer | 
					
						
							| 
									
										
										
										
											2022-06-03 16:23:34 +02:00
										 |  |  | - \subpage page_module_pipe_tunnel | 
					
						
							| 
									
										
										
										
											2021-06-24 14:06:30 +10:00
										 |  |  | - \subpage page_module_portal | 
					
						
							|  |  |  | - \subpage page_module_profiler | 
					
						
							|  |  |  | - \subpage page_module_protocol_native | 
					
						
							|  |  |  | - \subpage page_module_protocol_pulse | 
					
						
							|  |  |  | - \subpage page_module_protocol_simple | 
					
						
							|  |  |  | - \subpage page_module_pulse_tunnel | 
					
						
							| 
									
										
										
										
											2021-11-12 16:39:09 +01:00
										 |  |  | - \subpage page_module_raop_sink | 
					
						
							| 
									
										
										
										
											2021-12-14 10:47:41 +01:00
										 |  |  | - \subpage page_module_raop_discover | 
					
						
							| 
									
										
										
										
											2021-07-05 15:30:59 +10:00
										 |  |  | - \subpage page_module_roc_sink | 
					
						
							|  |  |  | - \subpage page_module_roc_source | 
					
						
							| 
									
										
										
										
											2023-02-22 16:27:00 +01:00
										 |  |  | - \subpage page_module_rtp_sap | 
					
						
							| 
									
										
										
										
											2022-10-06 13:28:09 +02:00
										 |  |  | - \subpage page_module_rtp_sink | 
					
						
							| 
									
										
										
										
											2022-10-05 13:50:51 +02:00
										 |  |  | - \subpage page_module_rtp_source | 
					
						
							| 
									
										
										
										
											2023-03-03 12:04:50 +01:00
										 |  |  | - \subpage page_module_rtp_session | 
					
						
							| 
									
										
										
										
											2022-01-15 20:54:15 +01:00
										 |  |  | - \subpage page_module_rt | 
					
						
							| 
									
										
										
										
											2021-06-24 14:06:30 +10:00
										 |  |  | - \subpage page_module_session_manager | 
					
						
							| 
									
										
										
										
											2023-07-25 18:36:48 +02:00
										 |  |  | - \subpage page_module_vban_recv | 
					
						
							|  |  |  | - \subpage page_module_vban_send | 
					
						
							| 
									
										
										
										
											2022-01-21 16:27:44 +01:00
										 |  |  | - \subpage page_module_x11_bell | 
					
						
							| 
									
										
										
										
											2021-06-24 14:06:30 +10:00
										 |  |  | - \subpage page_module_zeroconf_discover | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | */ |