Comment 75 for bug 192888

Revision history for this message
Daniel T Chen (crimsun) wrote : Re: firefox crashes on flash contents

Given that we're less than one week from hardy's release, /if/ we retain this libflashsupport demotion in the flashplugin-nonfree source package, we should /also/ back out the runtime hal-aware functionality in the pulseaudio source package. Please see http://pastebin.com/m69f447bb (link will expire in one month) for a recommended patch for pulseaudio that will "unbreak" the current audio situation.

Alexander asked for rationale in #ubuntu-devel yesterday, so I'll explain three {dist-,}upgrade scenarios that should be considered given a /default/ configuration.

1) In dapper, the flashplugin-nonfree source pulls down upstream version 7.0.63. This version of Flash does not use ALSA. It uses OSS, hence the myriad hacks in the source package to allow aoss to wrap the web browser. (9.0.48 is available in dapper-backports, but that's not the issue we're discussing here.) There is no polypaudio/pulseaudio support, nor is there any libflashsupport package available.

2) In gutsy, the flashplugin-nonfree source pulls down upstream version 9.0.48 (and 9.0.124 in gutsy-updates). This version of Flash /does/ use ALSA (and falls back to OSS). There is no pulseaudio support, nor is there any libflashsupport package available.

3) In hardy, the flashplugin-nonfree source pulls down upstream version 9.0.124. Like the version(s) in gutsy (and gutsy-updates), this version of Flash supports ALSA but does not support pulseaudio. However, hardy does make available libflashsupport in universe, but currently this package is only Suggested by flashplugin-nonfree, and most users will not have it installed via upgrade-manager or apt-get on a dist-upgrade. (A corner case is current hardy testers who had it pulled in via the previous Depends.)

Given the above three cases, we should now discuss users who have configured non-GStreamer applications to use ALSA. If such a user dist-upgrades to hardy, audio currently will appear to "break". Because pulseaudio is configured to exclusively grab the raw audio hardware, Flash (and all other ALSA-configured apps) will block if s/he attempts to play audio after pulseaudio has been invoked.

So where does the above patch come in? Applying it makes pulseaudio use the 'default' ALSA virtual device, which is dmixed and dsnooped for nearly all audio cards. This change means that audible sound is restored to the current hardy Flash config (as well as other non-GSt apps). Furthermore, it means that any users who have created an asoundrc will have their asoundrcs honoured by pulseaudio. This is semantically intentional, because we should not break users' existing audio configurations.

To summarise, currently the libflashsupport demotion is incomplete. It needs the above accompanying pulseaudio config change to unbreak current audio /and/ dist-upgrades. While we would have to give up the runtime hal-aware functionality, we would not introduce regressions from dapper(, edgy, feisty), gutsy, and current hardy.