[alsa-devel] Use of _hint() functions and older machines

Randell Jesup randell1 at jesup.org
Fri Oct 21 05:28:37 CEST 2011


[ I initially posted this to the -users list, but it may be more 
appropriate here ]

At Mozilla, we're in the process of adding support for WebRTC 
(http://webrtc.org/), which is being standardized by the IETF (their 
part is 'rtcweb'), and the W3C.  This adds real-time audio and video 
(and data) communication to browsers, peer-to-peer over encrypted channels.

We have a sound library that can load either Pulse or Alsa.  However, 
for Alsa, it wants to look at snd_device_name_hint() and also 
_get_hint() and _free_hint().  It lazy-binds to libasound, so it will 
dlopen() it and then dlsym() all the symbols it uses; if any fail it 
unloads the lib and says it's not there.  It  uses the hint functions to 
build a device list, for example for presenting to the user.

I have two problems:

1) Firefox is build on machines configured with I believe Centos5, and 
I'm told the machines run Alsa 1.0.12, while the hints() functions were 
added in 1.0.14 (released June 2007).  Right now I can't build release 
or 'try' builds on the build servers because of this.

2) We'd like to run on older machines if possible, and official release 
builds are made on those servers.  On older machines, _hint() aren't 
available, so even if I make them optional to dlsym-loading, I would 
need some other method to get the information I assume using older, 
now-deprecated-or-gone interfaces.

Any suggestions?  Tips?

See 
http://code.google.com/p/webrtc/source/browse/trunk/src/modules/audio_device/main/source/linux/audio_device_alsa_linux.cc?r=347#2348 
for how they're used currently.

Thanks!

-- 
Randell Jesup
randell-ietf at jesup.org



More information about the Alsa-devel mailing list