[alsa-devel] Spurious "Unable to find definition 'defaults.pcm.dmix.device'"
I am using ALSA in a gstreamer project. When playing many videos (with audio) in the same application and the same gstreamer instance every once in a while (maybe once every 500 times) I will receive the following errors (in a call chain that passes through snd_pcm_open)
confmisc.c:1286:snd_func_refer: alsalib error: Unable to find definition 'defaults.pcm.dmix.device' alsa conf.c:4154:_snd_config_evaluate: alsalib error: function snd_func_refer returned error: No such file or directory alsa conf.c:4633:snd_config_expand: alsalib error: Evaluate error: No such file or directory alsa pcm.c:2211:snd_pcm_open_noupdate: alsalib error: Unknown PCM default
The next playback will be fine. Looking through the ALSA code it seems that the configuration data should be cached and re-used unless the number of config files changes, or the files themselves change (name, device, inode. mtime) So I am wonder why on one instance of snd_pcm_open I'd end up with this error but not on most previous or subsequent calls.
All the ALSA configuration files are the defaults, I have no ~/.asoundrc, and I'm running version 1.0.23
Thank you, Gavin Stark
'Twas brillig, and Gavin Stark at 20/09/10 16:05 did gyre and gimble:
I am using ALSA in a gstreamer project. When playing many videos (with audio) in the same application and the same gstreamer instance every once in a while (maybe once every 500 times) I will receive the following errors (in a call chain that passes through snd_pcm_open)
confmisc.c:1286:snd_func_refer: alsalib error: Unable to find definition 'defaults.pcm.dmix.device' alsa conf.c:4154:_snd_config_evaluate: alsalib error: function snd_func_refer returned error: No such file or directory alsa conf.c:4633:snd_config_expand: alsalib error: Evaluate error: No such file or directory alsa pcm.c:2211:snd_pcm_open_noupdate: alsalib error: Unknown PCM default
The next playback will be fine. Looking through the ALSA code it seems that the configuration data should be cached and re-used unless the number of config files changes, or the files themselves change (name, device, inode. mtime) So I am wonder why on one instance of snd_pcm_open I'd end up with this error but not on most previous or subsequent calls.
All the ALSA configuration files are the defaults, I have no ~/.asoundrc, and I'm running version 1.0.23
I guess there is an outside chance that this could be some threading race condition in the config stuff.
Jaroslav recently fixed some threading issues in libalsa2 and config stuff. Perhaps it's worth pulling across those changes to your alsa lib to see if this is related?
Can't remember the git commit #'s off hand, but git master of libalsa2 is probably fine.
Long shot maybe but an relatively easy one to test.
Col
2010/9/20 Gavin Stark gavin@gstark.com
I am using ALSA in a gstreamer project. When playing many videos (with audio) in the same application and the same gstreamer instance every once in a while (maybe once every 500 times) I will receive the following errors (in a call chain that passes through snd_pcm_open)
confmisc.c:1286:snd_func_refer: alsalib error: Unable to find definition 'defaults.pcm.dmix.device' alsa conf.c:4154:_snd_config_evaluate: alsalib error: function snd_func_refer returned error: No such file or directory alsa conf.c:4633:snd_config_expand: alsalib error: Evaluate error: No such file or directory alsa pcm.c:2211:snd_pcm_open_noupdate: alsalib error: Unknown PCM default
The next playback will be fine. Looking through the ALSA code it seems that the configuration data should be cached and re-used unless the number of config files changes, or the files themselves change (name, device, inode. mtime) So I am wonder why on one instance of snd_pcm_open I'd end up with this error but not on most previous or subsequent calls.
All the ALSA configuration files are the defaults, I have no ~/.asoundrc, and I'm running version 1.0.23
Thank you, Gavin Stark
which distribution are you using ?
if your "default" PCM want to find "defaults.pcm.dmix.device" which is defined in alsa-lib/src/alsa/alsa.conf
defaults.pcm.dmix.device defaults.pcm.device
AFAIK, Mandriva 2010/2010 spring can be reconfigued to use dmix/dsnoop instead of pulseaudio
But I have no idea how Mandriva 's alsa-lib support "default:0" and "default:1"
participants (3)
-
Colin Guthrie
-
Gavin Stark
-
Raymond Yau