Opened 15 years ago
Last modified 5 years ago
#92 new enhancement
QSound: make a backend that uses uniaud API directly
Reported by: | Dmitry A. Kuminov | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | QtGui | Version: | 4.5.1 Beta 3 |
Severity: | low | Keywords: | |
Cc: | komh@… |
Description
The MMPM backend in QSound has known problems when used on systems that have uniaud drivers installed. These problems look like system hangs when playing sounds or even OS/2 kernel traps, especially in shared mode (i.e. when several sounds are played in parallel). Note that this behavior is also seen when using native OS/2 sound applications, it's not a Qt-specific problem.
There is a strong suspicion that it is the alsa<->MMPM bridge which is in charge. There have been reports that using uniaud API directly (bypassing the OS/2 MMPM driver) doesn't show any problems.
Therefore, it makes sense to provide a special backend for QSound that uses this uniaud API directly.
Change History (12)
comment:1 by , 15 years ago
Severity: | → low |
---|---|
Type: | defect → enhancement |
comment:2 by , 15 years ago
Cc: | added |
---|
comment:3 by , 15 years ago
Hi/2.
libkai is a unified interface for UNIAUD and DART.
So you can control the audio using libkai regardless of whatever the sound card driver supports.
comment:4 by , 15 years ago
It supports asynchronous playback, does it? What about simultaneous playback?
comment:5 by , 15 years ago
I don't understand what the asynchronous playback is. But libkai uses a callback method.
And libkai can playback only one stream at one time in one process.
comment:6 by , 15 years ago
Asynchronous playback means that the application can start playing an audio file and then continue execution w/o blocking until the audio file stops playing. I suppose, callbacks make it possible in your case.
Why do you limit the playback to one stream? Even MMPM allows this (though it is unstable on some sound cards in pair with uniaud).
comment:7 by , 15 years ago
Because there is no need to support it. When porting MPlayer and KMP, it was enough.
Of course, there is a plan to do it. But it has a low priority.
BTW QSound needs a simultaneous playback ?
comment:8 by , 15 years ago
QSound implies simultaneous playback. And anyway, it's not nice if an MP3 song that is currently playing is interrupted by an alert sound or something like that.
comment:10 by , 15 years ago
Now, I've implemented a multiple instances support.
If your soundcard supports multiple streams, you can play as many audio streams as your soundcard can, simultaneously.
Use libkai-1.1.0 from hobbes if you have a interest.
comment:11 by , 9 years ago
Milestone: | Qt Enhanced → Qt 5 |
---|
eventually we could use libkai from Ko for this task.
Ko could you tell a bit more about the lib?