diff --git a/NEWS b/NEWS index cb25c1a0e..c221a6669 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,7 @@ ver 0.23.8 (not yet released) * mixer - better error messages - alsa: fix setting volume before playback starts + - pipewire: fix crash bug * support libfmt 9 ver 0.23.7 (2022/05/09) diff --git a/src/output/plugins/PipeWireOutputPlugin.cxx b/src/output/plugins/PipeWireOutputPlugin.cxx index c752820d0..c407dd3c1 100644 --- a/src/output/plugins/PipeWireOutputPlugin.cxx +++ b/src/output/plugins/PipeWireOutputPlugin.cxx @@ -312,6 +312,14 @@ PipeWireOutput::PipeWireOutput(const ConfigBlock &block) void PipeWireOutput::SetVolume(float _volume) { + if (thread_loop == nullptr) { + /* the mixer is open (because it is a "global" mixer), + but Enable() on this output has not yet been + called */ + volume = _volume; + return; + } + const PipeWire::ThreadLoopLock lock(thread_loop); float newvol = _volume*_volume*_volume;