On Sun, 2015-11-22 at 23:33 +1000, Jonathan Wilson wrote: > I am trying to understand how sinks and sink inputs work. > The code I am trying to figure out creates the following sinks: > master_sink (external sink obtained from ALSA sink module via pa_namereq_get) > raw_sink (created with the flat_volume_sink parameter of the > pa_sink_new_data structure set to master_sink) > voip_sink (created with the flat_volume_sink parameter of the > pa_sink_new_data structure set to raw_sink) > > And the following sink inputs: > aep_sink_input (created with the sink parameter of the > pa_sink_input_new_data structure set to raw_sink and the origin_sink > parameter of the pa_sink_input_new_data structure set to voip_sink) > hw_sink_input (created with the sink parameter of the > pa_sink_input_new_data structure set to master_sink and the origin_sink > parameter of the pa_sink_input_new_data structure set to raw_sink) > cs_call_sink_input (created with the sink parameter of the > pa_sink_input_new_data structure set to voip_sink and the origin_sink > parameter of the pa_sink_input_new_data structure set to 0) > > I then have some other code that feeds audio into the voip_sink sink > Can someone tell me the pathway in which audio will go from the app through > to being fed into master_sink (and from there into the hardware)? > Which sinks and sink inputs will it pass through and in which order? > > What about if audio passes into the raw_sink sink, what path will it take > through the code in that case? I guess this is Maemo or MeeGo, or possibly Sailfish? I have worked on those systems in the past, and this sounds very familiar (and certainly not something that is in upstream). Could you send /etc/pulse/system.pa? > And where should I be looking (e.g. specific callback functions on the > sinks or sink inputs) for anything that might be doing any kind of > processing on the audio? Are you looking for a way to do your own processing, or are you just trying to understand what processing your device does and how? -- Tanu