Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • pipewire pipewire
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 579
    • Issues 579
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 24
    • Merge requests 24
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • PipeWirePipeWire
  • pipewirepipewire
  • Issues
  • #536
Closed
Open
Issue created Jan 05, 2021 by Ivan Molodetskikh@YaLTeR

Very uneven playback timestamps

I installed pipewire on Fedora Silverblue Rawhide using the following command:

rpm-ostree override remove pulseaudio pulseaudio-module-bluetooth pulseaudio-module-x11 alsa-plugins-pulseaudio --install=pipewire-pulseaudio

Here are the deployments I'm using:

● ostree://fedora:fedora/rawhide/x86_64/silverblue
                   Version: Rawhide.20210104.n.0 (2021-01-04T06:14:50Z)
                BaseCommit: 0e00463e39409f22591a3e6490b2617f10b05d9e4bed8583ac07f59f8dd071ca
              GPGSignature: Valid signature by 963A2BEB02009608FE67EA4249FD77499570FF31
           LayeredPackages: exa fish fprintd fprintd-pam
                    Pinned: yes

  ostree://fedora:fedora/rawhide/x86_64/silverblue
                   Version: Rawhide.20210104.n.0 (2021-01-04T06:14:50Z)
                BaseCommit: 0e00463e39409f22591a3e6490b2617f10b05d9e4bed8583ac07f59f8dd071ca
              GPGSignature: Valid signature by 963A2BEB02009608FE67EA4249FD77499570FF31
       RemovedBasePackages: pulseaudio-module-bluetooth pulseaudio-module-x11 pulseaudio 14.0-2.fc34, alsa-plugins-pulseaudio 1.2.2-3.fc33
           LayeredPackages: exa fish fprintd fprintd-pam pipewire-pulseaudio
                    Pinned: yes

The pipewire version is 0.3.18-1.fc34.

Now, I'm not sure I have a better description for this; I'm not very familiar with how the underlying systems work. I have a rhythm game, Quaver (free on Steam). It uses the Bass audio library which works through ALSA (it has no PA backend). Every frame (at 60 FPS, synchronized via Wayland frame callbacks) the game asks Bass the current audio position using Bass.ChannelGetPosition(Stream) and renders the playfield (rectangles moving down) according to that timestamp. On PulseAudio this results in smooth movement, while when running pipewire the movement is very jerky and all over the place.

Here's a video recording on PulseAudio. If you go frame-by-frame you will see that the rectangles generally move the same distance every frame as they should.

out

Here's a high-exposure photo on PulseAudio. It shows multiple frames at once. Since the movement is smooth, the relative distances between rectangles are the same.

pa

Here's a video recording on pipewire. If you go frame-by-frame you will see that the rectangles move different distances every frame.

out

Here's a high-exposure photo on pipewire. Since the movement is jerky, the relative distances between rectangles are all different.

pw

Edited Jan 05, 2021 by Ivan Molodetskikh
Assignee
Assign to
Time tracking