| Summary: | Libarts1-mpleglib-trinity audio backend doesn't work correctly | ||
|---|---|---|---|
| Product: | TDE | Reporter: | Q4OS Team <q4os> |
| Component: | arts | Assignee: | Michele Calgaro <michele.calgaro> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | bugwatch, michele.calgaro, q4os, slavek.banko |
| Priority: | P5 | ||
| Version: | R14.0.x [Trinity] | ||
| Hardware: | Other | ||
| OS: | Linux | ||
| See Also: | http://bugs.pearsoncomputing.net/show_bug.cgi?id=2098 | ||
| Compiler Version: | TDE Version String: | ||
| Application Version: | Application Name: | ||
| Bug Depends on: | |||
| Bug Blocks: | 2696 | ||
I can't reproduce this problem on my system (buster + R14.1). I will have to try using Stretch + R14.0.5 and see what happens. Is this still happening? Checked on Stretch + R14.0.5 - still happening ok noted, thanks. Ok, I am able to reproduce the problem on a newly installed debian buster + R14.0.5 or R14.1.0 preliminary builds from Slavek repo. Also I noticed that stopping and restarting the sound system from the TDE control panel seems to be a temporary workaround. Server correctly suspend after that. I will see what I can find. This bug is a lot of work :-) When libarts1-akode-trinity is installed, the akodeXiph plugin is used to play the initial login sound. When the play is over, the plugin is discarded and the soundserver can enter the suspend procedure. When libarts1-akode-trinity is not installed, the vorbis plugin is used to play the same sound. The problem is that the plugin is an empty one (OGG_VORBIS is not defined) and the plugin is never terminated, resulting in the soundserver being always busy. Haven't fixed it yet, but progressing. Hard bug though. > Also I noticed that stopping and restarting the sound system from the TDE control
> panel seems to be a temporary workaround. Server correctly suspend after that.
This was because stopping the server discards everything and after restarting there was no ogg file to play.
Trying to play an ogg file with artsplay would cause the same issue.
So it wasn't really a workaround :-)
Commits de90838 (R14.1) and 53bd3f3 (R14.0) fixed the problem with autosuspend. The problem was caused by a wrong implementation of the Nuke plugin, which was not using the output stream correctly, thus preventing the sound server from autosuspending. OGG files are not played though (or better they are nuked) since the vorbis ogg plugin is compiled as nuke plugin although all required dependencies were installed. Therefore there is more to do with this bug, to understand why the vorbis plugin is not compiled correctly. Perhaps something lost in the cmake conversion of tdemultimedia... @Q4OS team Please test and let me know if the problem is solved on your side too. I tested on my VM and it is now ok, except what mentioned about the vorbis plugin. It seems that in a discussion with Michele we found the reason why ogg plugin in mpeglib is not properly built with CMake - fix should be available soon. The latest commits from Slavek fixed the problem with the Vorbis OGG plugin. I have tested in a VM (debian buster/TDE 14.1) and now ogg files play fine in the environment described. @Q4OS please test and let us know if everything is ok on your side too. If so, this bug can be closed. I am not able to reproduce this bug anymore, Debian Sretch, TDE R14.0.5 development. I have tried to run artsplay on a few .ogg and .wav files, arts server plays and autosuspends just fine. Great job, thanks. |
If I remove audio backends "libarts1-akode-trinity libarts1-xine-trinity", and let "libarts1-mpleglib-trinity" backend to play audio, arts server doesn't suspend itself and stays permanently busy. I have been able to reliably reproduce this bug on real machines as well as in Virtualbox. Exact steps to reproduce: - Fresh TDE preliminary stable (14.0.5) installation on Debian Stretch - Remove "libarts1-akode-trinity libarts1-xine-trinity" packages, "sudo apt-get remove libarts1-akode-trinity libarts1-xine-trinity" - Reboot. - Bug: watch "artsshell status" in terminal, arts server doesn't autosuspend, but stays busy permanently