https://bugs.kde.org/show_bug.cgi?id=439537

--- Comment #1 from nyanpasu64 <nyanpas...@tuta.io> ---
It appears the problem is that Qt Multimedia is the default audio backend on
Linux:
https://github.com/KDE/kwave/blob/master/libkwave/PlayBackParam.h#L31-L39 And
Qt Multimedia is unacceptably flawed in that it drives audio from the UI
thread, which causes audio to stop being processed when the UI is blocked on
another operation.

Switching Kwave's Settings -> Playback to ALSA or "Pulse Audio" fixes the issue
(the audio does not block when performing UI operations). However, ALSA results
in the playback cursor being positioned around half a second ahead of the
actual audio being played (as soon as I press Play with the cursor at the
beginning, the playback point appears at ~590 ms), indicating a large amount of
buffering far greater than the "1 kB" specified in the Playback settings
dialog.

I suspect recording needs to be switched away from Qt Multimedia as well. (IDK
if Qt 6 will come with Qt Multimedia APIs not tied to the UI thread, or if
Kwave will be killed by the Qt 6 migration because of a lack of users and
developers.)

Unfortunately the default playback backend can't easily be changed. The order
of playback_method_t controls the order of default playback backends... but
reordering the enum to switch default backends results in their options being
swapped, because kwaverc's [plugin playback] saves each backend's options by
enum index under last_device_N, rather than by name!

(Also I thought Settings -> Playback wasn't a settings dialog at all, but
something else. I was confused that I couldn't find a Settings -> Settings menu
item, and thought Kwave was completely unconfigurable. Turns out it actually is
configurable.)

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to