Code | Description | /
01000 | GETOSPACE called in mmap mode
Do not call SNDCTL_DSP_GETOSPACE in mmap mode. Use SNDCTL_DSP_GETOPTR instead. SNDCTL_DSP_GETOSPACE is defined only for applications that use the normal write() method. Applications that use mmap can call SNDCTL_DSP_GETOSPACE before calling mmap to get the actual buffer size. |
01001 | GETOSPACE called in read-only mode
SNDCTL_DSP_GETOSPACE is not defined in read-only access mode |
01002 | GETISPACE called in write-only mode
SNDCTL_DSP_GETISPACE has no defined meaning when the audio device is opened in write-only mode. |
01003 | GETISPACE called in mmap mode
Do not call SNDCTL_DSP_GETISPACE in mmap mode. SNDCTL_DSP_GETISPACE is defined only for applications that use the normal write() method. Applications that use mmap can call SNDCTL_DSP_GETISPACE before calling mmap to get the actual buffer size. |
01004 | GETISPACE called before recording has been started
There is no recoded data available before recording has been started. This would result in situation where the application waits infinitely for recorded data that never arrives. As a workaround SNDCTL_DSP_GETISPACE will fake that one fragment is already available to read. This in turn makes the application to block incorrectly. Applications must start recording before calling SNDCTL_DSP_GETISPACE if they are trying to avoid blocking. This can be done by calling SNDCTL_DSP_SETTRIGGER. However applications going to use mmap can/should call SNDCTL_DSP_GETISPACE in the beginning to find out how large buffer to map. In such case this event is a false alarm. |
01005 | GETODELAY called in read-only mode |
01006 | SETDUPLEX called in non-read/write mode |
01007 | GETOPTR called in read-only mode |
01008 | GETIPTR called in write-only mode |
01009 | SNDCTL_DSP_STEREO called with bad agrument value
SNDCTL_DSP_STEREO is an obsolete ioctl call that supports only mono (0) or stereo (1). For larger number of channels you need to use SNDCTL_DSP_CHANNELS instead. |
01010 | SNDCTL_DSP_SUBDIVIDE is obsolete
SNDCTL_DSP_SUBDIVIDE is obsolete. It's still emulated by OSS but the result is not precise. You need to use SNDCTL_DSP_SETFRAGMENT instead. |
01011 | SNDCTL_DSP_SETFRAGMENT was called too late.
The SNDCTL_DSP_SETFRAGMENT call is only valid immediately after opening the device. It can only be called once without reopening the audio device. Calling read/write or certain ioctl calls will lock the fragment size/count to some values which makes changing it impossible. |
01012 | Wrong ioctl call order
The envy24 driver requires that number of channels, sample format and sampling rate are set before calling any ioctl call that may lock the fragment size prematurely. In such case the driver cannot change the fragment size to value that is suitable for the device. Please use the recommended ioctl call order defined in http://manuals.opensound.com/developer/callorder.html. |
01013 | select/poll called for an OSS device in mmap mode.
The select() and poll() system calls are not defined for OSS devices when the device is in mmap mode. |
01014 | select/poll called for an OSS device in mmap mode.
The select() and poll() system calls are not defined for OSS devices when the device is in mmap mode. |
01015 | select/poll called for wrong direction.
The application has opened the device in read-only mode but it tried to use select/poll to check if the device is ready for write. This is pointless because that will never happen. |
01016 | select/poll called for wrong direction.
The application has opened the device in write-only mode but it tried to use select/poll to check if the device has any data available to read. This is pointless because that will never happen. |
01017 | select/poll called before recording is started.
The application should start recording (using SNDCTL_DSP_SETTRIGGER) before calling select/poll to wait for recorded data. If recording is not active then recorded data will never arrive and the application will just sit and wait without doing anything. |
01018 | AFMT_AC3 used with virtual mixing device.
Devices that support virtual or hardware mixing are probably not capable to play AC3 streams properly. Virtual mixing is enabled on the audio device. The virtual mixer driver will do voolume control that corrupts the AC3 bitstream. Applications using AC3 should open the audio device with O_EXCL to make sure that virtual mixing is properly bypassed. |
01019 | AFMT_AC3 used with hardware mixing device.
Devices that support virtual or hardware mixing are probably not capable to play AC3 streams properly. This error may be caused by user who selected a wrong audio device. |
01020 | AFMT_AC3 used with format conversions enabled.
AC3 audio format (AFMT_AC3) bitstreams don't tolerate any kind of sample rate or format conversions. However it looks like conversions would be needed. The reason may be that the application had earlier requested some sample rate that is not supported by the device. Applications using AC3 should call SNDCTL_DSP_COOKEDMODE to disable format conversions. |
01021 | Play buffer full when playback is triggered off.
An application had written too many samples of data between turning off the PCM_ENABLE_OUTPUT trigger bit and turning it back again to trigger playback. Applications using SNDCTL_DSP_SETTRIGGER should avoid filling the available playback buffer before triggering output. One possible error causing this is that the application has triggered only recording on a duplex device. |
01022 | SNDCTL_AUDIOINFO called with dev=-1..
Applications that try to obtain audio device information about the current device should call SNDCTL_ENGINEINFO instead of SNDCTL_AUDIOINFO. Audio file descriptors returned by open(2) are bound directly to specific audio engine instead of the device file. |