Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
pipewire
pipewire
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 155
    • Issues 155
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 6
    • Merge Requests 6
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • PipeWire
  • pipewirepipewire
  • Wiki
  • Limitations in 0.3

Last edited by jasker5183 Jan 01, 2021
Page history

Limitations in 0.3

General

  • Emulation libraries need to be tested with a lot of applications. Many application (ab)use API in different ways that all need to be supported.
  • The ALSA plugin is probably quite complete and seems to work with a lot of apps.
  • The JACK library is quite complete. The JACK API is not huge but apps still expect certain implementation details that are not documented well (order of callbacks, thread contexts, etc)
  • PulseAudio in general is a big API with many subtle bugs that will need time to perfect. Some things currently work with the pulseaudio API, others don't. Most apps should be able to produce/consume sound. PulseAudio support is now implemented with a replacement daemon. The replacement library is deprecated. The daemon has much better compatibility and uses the regular pulse library.
  • Bluetooth is not tested much and might not work very well yet. See below.
  • Portaudio apps tend to do bad things (audacity) like opening all devices multiple times in all possible formats and configurations to 'probe' the devices. This is quite expensive.

ALSA

  • No mixer, unclear how it could make sense. since 0.3.8.
  • Tested: aplay, vlc, mplayer, sweep, apulse

JACK

  • No session management API implemented, possibly not important/used.
  • Internal clients not implemented.
  • Freewheeling not implemented. Since 0.3.7 there is a dummy driver that could be used to implement this later.
  • Latencies not implemented at all yet.
  • No jackdbus yet.
  • Tested: ardour5, qjackctl, carla, catia, jack_simple_client, jack-smf-player, xjadeo, qsynth, calfjackhost, ...

PulseAudio

  • Move to sink/source is not implemented. since 0.3.7.
  • Default source/sink is not implemented. since 0.3.7.
  • Volumes are done in software currently, hardware volumes are not touched. since 0.3.7 uses UCM or PulseAudio profile config to implement hardware volume and mute.
  • Profiles on devices is not implemented. since 0.3.7. supported with UCM and PulseAudio profile config.
  • Time reporting is inaccurate and broken, apps might skip, stutter or hang. better since 0.3.4, firefox youtube works perfect, chrome youtube has trouble. Better with pulse-server in 0.3.16.
  • Extensions are not implemented. Only the stream-restore extension is implemented for the notification volume. device-manager and device-restore are not implemented yet.
  • There are problems with switching between ports and profiles when plugs are (dis)connected.
  • Tested: paplay, pavucontrol, vlc, mplayer, firefox, chrome, webrtc, youtube, spotify, ...

Session Manager (pipewire-media-session)

  • The default session manager has no configuration options. It performs a hardcoded logic on devices detected by udev. Since 0.3.4 it's however possible to disable some modules.
  • No support for setup or configuration of devices with UCM or otherwise. All ALSA PCM are simply exposed as is. since 0.3.7 using PulseAudio profile config parser.
  • No mixer support in any way. since 0.3.7 via PulseAudio config parser.
  • No support for the session-manager API, no Endpoints/Streams.

Bluetooth

  • A2DP source and sink works well, LDAC codec causes stuttering, AptX/HD should work fine.
  • SCO needs testing

Flatpak

  • Flatpaks using PulseAudio will work with the pulse-server implementation.
  • Flatpaks with JACK will not work and need to be converted to use the replacement libjack.so.
  • Tested: chrome, firefox, spotify, lutris with the libretro runner, steam, sonic robo blast 2, virt manager (own packaging, not in Flathub), audio over SPICE TCP socket.
Clone repository
  • Access control
  • Audio support
  • Configuration
  • FAQ
  • Home
  • Ideas
  • JACK
  • Limitations in 0.3
  • Performance
  • PulseAudio
  • SPA
  • Sandboxing
  • Simple API ideas
  • TODO
  • Troubleshooting
View All Pages