wineoss: EAGAIN (OSS buffer full) is a regular situation.
This commit is contained in:
parent
03ad9366f1
commit
55efce6c9c
|
@ -1224,6 +1224,7 @@ static void oss_write_data(ACImpl *This)
|
||||||
|
|
||||||
written = write(This->fd, buf, to_write * This->fmt->nBlockAlign);
|
written = write(This->fd, buf, to_write * This->fmt->nBlockAlign);
|
||||||
if(written < 0){
|
if(written < 0){
|
||||||
|
/* EAGAIN is OSS buffer full, log that too */
|
||||||
WARN("write failed: %d (%s)\n", errno, strerror(errno));
|
WARN("write failed: %d (%s)\n", errno, strerror(errno));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1729,9 +1730,12 @@ static HRESULT WINAPI AudioRenderClient_ReleaseBuffer(
|
||||||
w_bytes = write(This->fd, buffer,
|
w_bytes = write(This->fd, buffer,
|
||||||
written_frames * This->fmt->nBlockAlign);
|
written_frames * This->fmt->nBlockAlign);
|
||||||
if(w_bytes < 0){
|
if(w_bytes < 0){
|
||||||
|
if(errno != EAGAIN){
|
||||||
LeaveCriticalSection(&This->lock);
|
LeaveCriticalSection(&This->lock);
|
||||||
WARN("write failed: %d (%s)\n", errno, strerror(errno));
|
WARN("write failed: %d (%s)\n", errno, strerror(errno));
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
}else /* OSS buffer full */
|
||||||
|
w_bytes = 0;
|
||||||
}
|
}
|
||||||
w_frames = w_bytes / This->fmt->nBlockAlign;
|
w_frames = w_bytes / This->fmt->nBlockAlign;
|
||||||
This->inbuf_frames += w_frames;
|
This->inbuf_frames += w_frames;
|
||||||
|
|
Loading…
Reference in New Issue