Created attachment 63719 [details] [review]
Use multi as default backend and 'fix' it.
This bug was originally reported in openSUSE:
I a feature complete libcanberra, with pulse, alsa, gstreamer and multi plugin is being installed (default loader=dso), then pulse is the only plugin being used (unless specifying CANBERRA_DRIVER=[...]).
If now pulse is disabled on a machine (but installed), this results in no sound:
- The pulse plugin 'loads', but fails to connect to the sound server.
I created a small patch, that adds 'multi' as the 'preferred' plugin to ca_driver_order.
Additionally, I had to patch multi.c: the 'driver' is not always defined in this case (which is also expected: a few lines further down there is a if(c->driver) statement.. )
With this patch, when PA is enabled, it is being used.. otherwise it falls back to alsa (or further).
What do you think? Worthy to be merged?
Created attachment 63725 [details] [review]
Cleaner patch: do not just strip the check, but do the same as in other backends.. and catch it in both places.
Created attachment 64461 [details] [review]
Final patch which we now ship
Do you have an opinion about this one?
Please refer to the information I posted in the bug report at Chromium development. Notice the stack traces to point the very likely suspect to be libcanberra trying to connect pulse which isn't installed. Removing libcanberra-pulse resolved the issue for me, you might want to look for another solution/patch ^^ Thanks
My initial report: http://code.google.com/p/chromium/issues/detail?id=167769
Merged with report: http://code.google.com/p/chromium/issues/detail?id=76600