No description
Find a file
Alper Nebi Yasak 45509ff9bc alsa-ucm: Consider devices using the same PCM as incompatible
Although it's a valid UCM configuration to have multiple devices using
the same PlaybackPCM or CapturePCM, it's unclear how PulseAudio should
handle the cases where multiple of these devices are enabled. Some
options I can think of are:

- Merge all devices sharing the same PCM into the same mapping, open
  only one PCM substream for this mapping, and add 'combination ports'
  that enable combinations of the devices. This has been the case until
  recently, although the combination port logic was broken. A problem
  with this is that we can't independently control device volumes. We
  most likely cannot use hardware volumes either.

- Have one mapping for each device in the same profile, and open one PCM
  substream for each mapping. This is the current state, and it fails
  when there are fewer substreams than devices. Otherwise it works, but
  it's still confusing, as sound directed to a device-specific mapping
  might end up playing at multiple devices.

- Make multiple profiles each with combinations of upto-substream-count
  devices, and have one mapping/substream per device. This still causes
  the confusion mentioned above. And it's likely that the substream
  count will almost always be one, where this case degenerates into the
  last one.

- Have one mapping for each device in the same profile, but open only
  one PCM substream. I assume this is possible with software mixing, but
  it is still confusing like the above, and probably less performant.

- Generate multiple profiles each with one of the shared-PCM devices,
  again with one mapping/substream for that one device. The trade-off
  with this is that we can't use multiple of these devices at the same
  time. However, this doesn't have the output device confusion,
  combination port's volume problems, or the substream count limitation.

This patch takes a short-cut to achieve the last option, by considering
shared-PCM devices implicitly conflicting with each other.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/743>
2023-03-19 20:54:18 +00:00
.gitlab doc: Add some contributor guidelines 2021-01-04 15:30:38 +00:00
coverity build: Add Coverity scan model 2017-03-06 08:22:33 +01:00
doc card: handle sticky profile flag 2021-06-10 10:30:58 +00:00
doxygen build-sys: Fix a couple of meson warnings 2021-05-17 16:07:33 -04:00
man pacat: Include the special default device names in documentation 2022-01-26 17:13:53 +00:00
po Translated using Weblate (Georgian) 2022-07-22 15:18:58 +02:00
scripts meson: Add DEF file to export APIs in Windows 2023-03-16 13:05:44 +05:30
shell-completion shell-completion: add new subcommand get-* for zsh 2022-08-01 18:34:25 +00:00
src alsa-ucm: Consider devices using the same PCM as incompatible 2023-03-19 20:54:18 +00:00
vala vala: Couple of libpulse binding fixes 2021-09-22 15:56:27 +00:00
.gitignore gitignore: Add install/ for local prefixed installs 2021-01-19 10:57:17 -05:00
.gitlab-ci.yml gitlab-ci: Turn on Werror for meson builds 2021-11-05 07:50:56 +00:00
.mailmap add a .mailmap file for git shortlog 2009-02-04 22:41:45 +01:00
CODE_OF_CONDUCT.md Adopt a Code of Conduct 2018-09-26 02:39:00 +00:00
CONTRIBUTING.md CONTRIBUTING.md: fix another typo 2021-07-30 13:13:46 +00:00
git-version-gen git-version-gen: Avoid further processing when tarball-version is present 2015-10-20 16:55:23 +02:00
GPL * rename "LICENSE" to "LGPL" 2006-04-20 12:33:00 +00:00
LGPL * rename "LICENSE" to "LGPL" 2006-04-20 12:33:00 +00:00
libpulse-mainloop-glib.pc.in build: Fix static linking 2012-07-17 11:05:34 +05:30
libpulse-simple.pc.in build: Fix static linking 2012-07-17 11:05:34 +05:30
libpulse.pc.in build: Fix static linking 2012-07-17 11:05:34 +05:30
LICENSE qpaeq: change license from AGPL to LGPL v2.1 2017-09-19 21:29:44 +03:00
meson.build build-sys: Fix macOS build 2022-12-07 10:57:01 +00:00
meson_options.txt meson: use proper type for bools 2022-09-21 07:06:45 +00:00
NEWS Update NEWS for 16.1 2022-06-21 13:41:30 +03:00
PROTOCOL protocol-native: add message sending capability 2020-12-03 14:41:39 +00:00
pulseaudio-text.svg merge 'lennart' branch back into trunk. 2007-10-28 19:13:50 +00:00
pulseaudio.supp Add a Valgrind suppression file 2014-09-21 11:00:51 +03:00
pulseaudio.svg Add PulseAudio logo to tree. 2006-08-28 06:25:41 +00:00
PulseAudioConfig.cmake.in build-sys: Provide a simple CMake Config setup (similar to pkgconfig) 2011-10-19 23:49:23 +01:00
PulseAudioConfigVersion.cmake.in build-sys: Provide a simple CMake Config setup (similar to pkgconfig) 2011-10-19 23:49:23 +01:00
README doc: link to site documentation for IRC channels 2021-06-14 18:55:33 +03:00
todo build-sys: Stop using symdef headers for modules 2017-12-12 12:58:52 +05:30

PULSEAUDIO SOUND SERVER

WEB SITE:
	http://pulseaudio.org/

GIT:
	https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git

GitLab:
	https://gitlab.freedesktop.org/pulseaudio/pulseaudio

MAILING LIST:
	http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

GIT COMMITS MAILING LIST:
	http://lists.freedesktop.org/mailman/listinfo/pulseaudio-commits

TRAC/BUGZILLA TICKET CHANGES MAILING LIST:
	http://lists.freedesktop.org/mailman/listinfo/pulseaudio-bugs

IRC:
	https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Community/#ircandmatrix

FRESHMEAT:
	http://freshmeat.net/projects/pulseaudio/

OHLOH:
	http://www.ohloh.net/projects/4038

AUTHORS:
	Several

HACKING:
	In order to run pulseaudio from the build dir:
	  meson build
	  meson compile -C build
	  build/src/daemon/pulseaudio -n -F build/src/daemon/default.pa -p $(pwd)/build/src/modules/

SPELLING:
        PulseAudio