Summary: | Sounds from the notification systems are repeated in a loop endlessly. | ||
---|---|---|---|
Product: | [Unmaintained] phonon-backend-gstreamer | Reporter: | Raymond Wooninck <tittiatcoke> |
Component: | general | Assignee: | Harald Sitter <sitter> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | martin.sandsmark, myriam, niels_ole, rdieter, romain.perier, tdfischer |
Priority: | NOR | ||
Version: | 4.6-git | ||
Target Milestone: | 4.6.1 | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Debug output from .xsession-errors with the debug variables set
patch to fix endless looping of KDE audio notifications |
Description
Raymond Wooninck
2012-01-25 20:38:30 UTC
Created attachment 68173 [details]
Debug output from .xsession-errors with the debug variables set
Created attachment 68584 [details]
patch to fix endless looping of KDE audio notifications
Beginning with commit
Git commit b57a018f3c6a27733954b03780ffb33e87cc1f3e by Trever Fischer.
Committed on 15/01/2012 at 20:25.
Pushed by tdfischer into branch 'master'.
Remove needless delays, and prevent forever-replay
phonon-backend-gstreamer (using phonon-4.6.0) is apparently unable to tell when the source queue contains no more sources. In particular, when using phonon-backend-gstreamer as the backend for playing KDE audio notifications, on login, it loops forever playing the KDE login jingle over and over as reported above. Because of this, phonon-backend-gstreamer from git is entirely unusable as a KDE audio backend.
Looking at the commit, and specifically at gstreamer/mediaobject.cpp, it appears that Phonon sends and empty source when there is no next source, but in
MediaObject::setNextSource() and MediaObject::handleAboutToFinish() this case is not handled and m_skippingEOS is always set to true, resulting in the current source being played over and over again.
The attached patch works around this by detecting if Phonon has sent and empty (or invalid) source and then setting m_skippingEOS appropriately. This not be the proper way of doing this, but I hope at least that it sheads light on the issue.
This should actually have the status confirmed Git commit 069597b087898d63485df6c849d17fe43bf321bb by Trever Fischer, on behalf of John Stanley. Committed on 10/02/2012 at 03:57. Pushed by tdfischer into branch 'master'. patch to fix endless looping of KDE audio notifications phonon-backend-gstreamer (using phonon-4.6.0) is apparently unable to tell when the source queue contains no more sources. In particular, when using phonon-backend-gstreamer as the backend for playing KDE audio notifications, on login, it loops forever playing the KDE login jingle over and over as reported above. Because of this, phonon-backend-gstreamer from git is entirely unusable as a KDE audio backend. Looking at the commit, and specifically at gstreamer/mediaobject.cpp, it appears that Phonon sends and empty source when there is no next source, but in MediaObject::setNextSource() and MediaObject::handleAboutToFinish() this case is not handled and m_skippingEOS is always set to true, resulting in the current source being played over and over again. The attached patch works around this by detecting if Phonon has sent and empty (or invalid) source and then setting m_skippingEOS appropriately. This not be the proper way of doing this, but I hope at least that it sheads light on the issue. M +18 -9 gstreamer/mediaobject.cpp http://commits.kde.org/phonon-gstreamer/069597b087898d63485df6c849d17fe43bf321bb |