mmitch / gbsplay

gameboy sound player
https://mmitch.github.io/gbsplay/
Other
98 stars 20 forks source link

Crackly audio on PipeWire output #131

Open ruby-R53 opened 4 months ago

ruby-R53 commented 4 months ago

For some reason, the PipeWire output is not working properly here. The sound is all crackly, and when I quit the player, I get these two lines:

'loop->recurse > 0' failed at ../pipewire-1.0.6/src/pipewire/thread-loop.c:426 pw_thread_loop_wait()
'this->recurse > 0' failed at ../pipewire-1.0.6/src/pipewire/thread-loop.c:63 do_unlock()

Running with -qq also reveals these other error messages that appear every time I pause and unpause the player:

*** pw_stream_set_active called from wrong context, check thread and locking: Operation not permitted
*** impl_ext_end_proxy called from wrong context, check thread and locking: Operation not permitted

Changing the sample rate has no effect, and then I have to choose a different audio output. I feel like this could be due to how PipeWire is configured in my host because of the Operation not permitted errors, but I'm not really sure.

mmitch commented 4 months ago

I'd guess that there are incompatibilities between pipewire 0.x and 1.x. I'm using Debian Bookmark, so the pipewire plugin was developed and tested using pipewire 0.3.65. We even have an #ifdef version guard in plugout_pipewire.c because the pipewire in the GitHub CI pipeline is even older than that.

ruby-R53 commented 4 months ago

ahh i see

ruby-R53 commented 4 months ago

any ideas so far?