Hi,

  I noticed pulseaudio has problems starting when OSSv4 is loaded, and traced 
it down to using select() and GET{I,O}SPACE with an mmap()'d device (PulseAudio 
tries using mmap unless explicitly told otherwise). OSS doesn't support that, 
and returns -EIO, which is an error code PulseAudio doesn't check for and 
eventually leads to it failing to start. One might consider blaming Pulseaudio, 
except:

   A) These limitations aren't documented anywhere I can see. AFAICT FreeBSD's 
implementation does support using select(),etc. with mmap().
   B) OSS's return value isn't entirely consistent: It returns OSS_EIO when 
select() is used (oss_audio_core.c / oss_audio_chpoll() ), but OSS_EPERM when 
GETOSPACE is used with mmap. OSS_EIO seems wrong to me - the device is okay, 
it's just select() isn't supported in the current mode.

Yours,
        Yair K.
_______________________________________________
oss-devel mailing list
oss-devel@mailman.opensound.com
http://mailman.opensound.com/mailman/listinfo/oss-devel

Reply via email to