Virtual sink and source consolidation
This MR consolidates common functions for virtual sinks into a shared library. The same is done for sources. The MR fixes multiple bugs and inconsistencies in the virtual sink and source code.
- Simplify and unify virtual sink and source code
- Re-introduce rescuing of virtual sink streams
- Fix the uplink sink of module-virtual-source and make it a common feature for all virtual sources
- Add support for fixed block size or fixed input block size filters
This MR fixes the following bugs in the virtual sink code:
- All virtual sinks: Crash bug with stacked virtual sinks due to incorrect updating of the asycncmsgq
- All virtual sinks: Incorrect rewinding after a latency change
- All virtual sinks: Incorrect auto-description, also sink-input does not change description at all
- All virtual sinks: Incorrect suspend propagation of master sink including a related bug in !68 (merged)
- virtual-surround-sink: Crash bug when used with use_volume_sharing=0. The volume is not re-mapped.
- equalizer-sink: Crash bugs that can happen if the sink can not be initialized.
fixes: #1154