[pulseaudio-discuss] Questions about sinks and sink inputs

Jonathan Wilson jfwfreo at tpg.com.au
Sun Nov 22 05:33:19 PST 2015


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?

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?



More information about the pulseaudio-discuss mailing list