Hey,
On 09/12/2011 02:14 PM, Joerg-Cyril.Hoehle@t-systems.com wrote:
Hi,
Bug #28056 involving FreeBSD and OSS exhibits: warn:oss:AudioRenderClient_ReleaseBuffer write failed: 35 (Resource temporarily unavailable)
My own notes from times as old as wine-1.1.8 show the same error with ALSA: err:wave:wodPlayer_WriteMaxFrags Error in writing wavehdr. Reason: Resource temporarily unavailable
The symbolic errno constant is EAGAIN=EWOULDBLOCK.
So we look at write manpage..
EAGAIN or EWOULDBLOCK The file descriptor fd refers to a socket and has been marked nonblocking (O_NONBLOCK), and the write would block. POSIX.1-2001 allows either error to be returned for this case, and does not require these constants to have the same value, so a portable appliā cation should check for both possibilities.
Does anybody have a suspicion when/why this happens?
- is audio simply not reliable?
- is Wine not correctly driving audio output?
- ...?
FWIW, my test experiments outside Wine recently produced EWOULDBLOCK once despite non-blocking mode in ALSA, when attempting to write a small number of frames, less than period_size.
Is this failure really temporary or would it be safer to close or reset the audio device given such an error value? What's your experience?
Usually: you're trying to put more data in the audio buffer than the amount that can written. Similar errors happen on alsa, when trying to write > snd_pcm_avail(); Looks like a bug to me.
~Maarten