Bug 337034 - Knotification should use PA directly when available
Summary: Knotification should use PA directly when available
Status: RESOLVED INTENTIONAL
Alias: None
Product: frameworks-knotifications
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Martin Klapetek
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-07-04 08:34 UTC by Cédric Bellegarde
Modified: 2014-08-26 14:12 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Cédric Bellegarde 2014-07-04 08:34:33 UTC
KDE 4 and KDE 5 use phonon for playing notification and so are unable to use media.role=event PulseAudio property.

This create weird bug like this:
https://bugs.kde.org/show_bug.cgi?id=324975

Reproducible: Always

Steps to Reproduce:
1. Mute notification volume in kmix
2. play a KDE notification
Actual Results:  
Knotity play sound

Expected Results:  
No sound

Two solution:
- Use PA when available in notifybyaudio.cpp
- Patch PulseAudio (if not already available) to be able to set PA properties

Temp fix, use this script as external notification executable:
$ cat /usr/local/bin/notify.sh 
#!/bin/bash
paplay --property="media.role=event" "$@"
Comment 1 Christoph Feck 2014-07-04 14:02:31 UTC
Isn't Phonon our abstraction layer? What needs to be changed in Phonon, so that applications do not need to use PA directly?
Comment 2 Cédric Bellegarde 2014-07-07 12:18:00 UTC
A way to pass PA properties.
Comment 4 Harald Sitter 2014-07-08 08:32:42 UTC
Oh and in case you want to fix this in an multimedia library independent way here is the api proposal that needs implementing to provide a cache based playback (which in turn internally could use pulseaudio directoy as pulseaudio provides a sample cache api already).

http://markmail.org/thread/3yysp76oz7zjyr3t#query:+page:1+mid:3yysp76oz7zjyr3t+state:results
Comment 5 Harald Sitter 2014-07-08 08:35:16 UTC
s/directoy/directly fwiw ^^
Comment 6 Christoph Feck 2014-07-08 14:50:19 UTC
knotify requests Phonon::NotificationCategory for its audio output from Phonon. If I understand comment #3 correctly, Phonon already has support for passing the category down to pulseaudio.

If this does not work correctly, the bug is either in Phonon, or in pulseaudio. Marking as NEEDSINFO, until someone clarifies the status of this bug.
Comment 7 Harald Sitter 2014-07-08 21:01:06 UTC
Pulseaudio bug I say. I briefly talked with Colin Guthrie about this a while ago. What happens (and this only ever affects the vlc backend because of the videolan bug I mentioned in comment #3) is that phonon defines override variables in the envrionment before letting vlc create the pulseaudio sink. However pulseaudio then incorrectly merges the diverging data incorrectly, giving the data that vlc provides preference over the override which ultimately sets the role to video and not whatever was set by phonon.
This then bypasses the notification volume set in kmix as that doesn't apply to video role sinks and that's why it uses volume 1.0.
Comment 8 Christoph Feck 2014-07-09 07:31:41 UTC
Thanks for the update. In other words, what knotify does is correct, and does not need to be changed.