You have /dev/dsp opened for playback. Then:
int enable_bits = ~PCM_ENABLE_OUTPUT; /* disables playback */
ioctl(audio_fd, SNDCTL_DSP_SETTRIGGER, &enable_bits) == -1)
... next you start writing data to the device, but forget to ever issue
the actual trigger call (ie.
int enable_bits = PCM_ENABLE_OUTPUT;
ioctl(audio_fd, SNDCTL_DSP_SETTRIGGER, &enable_bits);
). Now this causes a more-or-less complete system-freeze (SMP, user
priviledges). The latest ecasound development version (2.1dev0) failed to
ever start the audio device and thus triggered this bug. It took quite a
while to trace down the problem. Finally S.Massy was able to pinpoint the
problem to oss-emulation, and problem was resolved.
Of course, this is really an application side problem (fixed in ecasound
2.1dev1 btw), but it might make sense to add a safety-bealt to the
oss-emulation. OSS/comm drivers survived the buggy ecasound. Also ALSA's
native pcm-interface survived (SND_PCM_START_EXPLICIT set, after buffer
became full without an snd_pcm_start(), snd_pcm_writei() returned an
error).
If nothing else, let this be stored to alsa-devel archives just in cases
the same bug bites someone else.
--
http://www.eca.cx
Audio software for Linux!
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel