From Fedora Project Wiki
(Fill in Benefit to Fedora, Scope and How To Test.)
(Fill in User Experience, Dependencies and Contingency Plan.)
Line 59: Line 59:


== User Experience ==
== User Experience ==
<!-- If this feature is noticeable by its target audience, how will their experiences change as a result?  Describe what they will see or notice. -->
KDE users are now able to set priorities for hardware devices while using PulseAudio and to control application volumes and devices used by individual applications.


== Dependencies ==
== Dependencies ==
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this feature depends?  In other words, completion of another feature owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel feature)? -->
Requirements this feature depends on:
* [[Features/KDE44|KDE 4.4]] contains the Phonon improvements and is the base for the KMix backports (already in Rawhide)
* PulseAudio 0.9.21 adds the <code>module-device-manager</code> (already in Rawhide)
 
Nothing else depends on this feature.


== Contingency Plan ==
== Contingency Plan ==
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not. If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. -->
The feature is already complete, but it is still technically possible to revert/disable it if we don't judge it good enough. The Phonon and KMix parts can be reverted separately. It is also possible to disable KMix PulseAudio integration by default while still shipping it by setting the <code>KMIX_PULSEAUDIO_DISABLE</code> environment variable.


== Documentation ==
== Documentation ==

Revision as of 04:16, 21 January 2010

KDE PulseAudio Integration

Summary

Fedora 13 features improved PulseAudio integration in KDE's Phonon and KMix.

Owner

  • KDE SIG
  • Email: Kevin@tigcc.ticalc.org, rdieter@math.unl.edu
  • IRC: #fedora-kde

Current status

  • Targeted release: Fedora 13
  • Last updated: 2010-01-21
  • Percentage of completion: 100%

Phonon PulseAudio integration is complete and available both in Rawhide and F12 updates. KMix PulseAudio integration is now in Rawhide and expected to be feature-complete.

Detailed Description

The following new PulseAudio integration features (developed by Colin Guthrie from Mandriva) are available in Fedora 13:

  • Phonon detects PulseAudio and no longer shows non-PulseAudio devices when PulseAudio is running.
  • PulseAudio includes a new module-device-manager which allows Phonon to manage PulseAudio devices.
  • Using the above, Phonon allows setting device priorities for the devices reachable through PulseAudio.
  • KMix now shows PulseAudio volumes, including per-application volumes, and allows moving applications between devices.
  • The traditional ALSA backend for KMix is still available, use export KMIX_PULSEAUDIO_DISABLE=1 to force its use even if PulseAudio is detected.

Users not using PulseAudio are not affected by any of these changes.

See the blog links in the Documentation section for more information.

Benefit to Fedora

The popular KDE desktop now integrates better with the default sound solution in Fedora, allowing full use of its capabilities.

Scope

  • upgrade Phonon to at least 4.3.80 (done)
  • upgrade kdebase-runtime to at least 4.3.80 or backport the Phonon KCM changes (done (upgraded))
  • upgrade PulseAudio to at least 0.9.21 and enable module-device-manager (done)
  • backport the KMix PulseAudio backend, which is targeted upstream for 4.5 (done)

How To Test

No special hardware is needed, though there should be at least one sound device reachable through PulseAudio. (You can test with a dummy sink, but that won't be as effective for testing as a real one.)

  1. start the KDE Live CD
  2. open KMix (click on the speaker icon in the panel, then on the Mixer button)
  3. verify that you see the PulseAudio tabs
  4. start Dragon Player (or another Phonon-based application)
  5. play something with it
  6. verify that the application shows up in KMix (this also tests Phonon)
  7. verify that it doesn't say "ALSA plugin" (Phonon should use PulseAudio natively)
  8. verify that you don't get annoying "device 'Foo' unreachable, falling back to 'Bar'" notification popups from Phonon
  9. verify that you actually hear the sound
  10. quit KMix (completely, i.e. File / Quit)
  11. open a Konsole
  12. run KMIX_PULSEAUDIO_DISABLE=1 kmix
  13. verify that you get the traditional ALSA mixer (all the hardware controls)
  14. quit KMix (completely, i.e. File / Quit)
  15. run just kmix (or start it from the menu)
  16. verify that you get the PulseAudio KMix back
  17. open the Multimedia tab in System Settings (i.e. the Phonon KCM)
  18. verify that you see your sound devices listed (you should see the hardware devices which are reachable through PulseAudio, there should not be a "PulseAudio" or "PulseAudio Sound Server" device)

All this should pass without crashes (obviously), error messages or annoying notification popups.

User Experience

KDE users are now able to set priorities for hardware devices while using PulseAudio and to control application volumes and devices used by individual applications.

Dependencies

Requirements this feature depends on:

  • KDE 4.4 contains the Phonon improvements and is the base for the KMix backports (already in Rawhide)
  • PulseAudio 0.9.21 adds the module-device-manager (already in Rawhide)

Nothing else depends on this feature.

Contingency Plan

The feature is already complete, but it is still technically possible to revert/disable it if we don't judge it good enough. The Phonon and KMix parts can be reverted separately. It is also possible to disable KMix PulseAudio integration by default while still shipping it by setting the KMIX_PULSEAUDIO_DISABLE environment variable.

Documentation

Phonon:

KMix:

Release Notes

Comments and Discussion